Morse is een gecodeerde communicatievorm bestaande uit signalen die met tussenpozen worden uitgezonden. Vastgelegde combinaties van deze signalen stellen dan de verschillende letters, leestekens en cijfers voor. Deze morsecode werd in 1835 uitgevonden en ontwikkeld door Samuel Morse, met als doel ze te gebruiken voor het verzenden van telegrafische berichten. Met een telegraaf (zie figuur) kon men namelijk enkel kiezen tussen twee toestanden: sleutel naar beneden (= stroom) of sleutel naar boven (= geen stroom) en tijdsduur (kort of lang). Telegrafie wordt algemeen beschouwd als een voorloper van de latere digitale communicatie. Merk op dat in snelheidswedstrijden tussen ervaren morsecodeoperatoren en experts in het verzenden van SMS berichten, morsecode steevast als overwinnaar1 uit de bus komt.

telegraaf

In de internationale morsecode worden korte signalen genoteerd met een punt (.) en lange signalen met een koppelteken (-). Elk karakter wordt dan voorgesteld als een unieke opeenvolging van punten en koppeltekens. Zo wordt de letter S in morsecode voorgesteld als ... en de letter O als ---.  Het is dan ook algemeen bekend dat ... --- ... de voorstelling in morsecode is van het SOS signaal.

Opgave

Het tekstbestand morse.txt2 bevat een lijst van karakters (eerste kolom) en hun corresponderende voorstelling in morsecode (tweede kolom). De kolommen worden gescheiden door een tab. In dit bestand zie je bijvoorbeeld dat de letter C in morsecode wordt voorgesteld als -.-. en dat een komma wordt voorgesteld als --..--.

Bij het versturen van berichten in morsecode wordt tussen elke twee opeenvolgende karakters normaal gezien een korte pauze ingelast (letterspatie) die wordt genoteerd met een spatie, en wordt tussen verschillende woorden telkens een langere pauze ingelast (woordspatie) die wordt genoteerd met een slash (/). Zo wordt het woord EARN bijvoorbeeld voorgesteld als

. .- .-. -.

en het woord URN als

..- .-. -.

Als we de tussenpauzes (spaties) echter negeren, dan worden deze twee woorden in morsecode voorgesteld door hetzelfde patroon. We zeggen dan dat de twee woorden isomorse zijn. Merk op dat deze twee woorden ook homofoon zijn: ze zijn opgebouwd uit dezelfde klanken, maar hebben een verschillende betekenis. Gevraagd wordt:

Voorbeeld

Bij onderstaande voorbeeldsessie gaan we ervan uit dat de tekstbestanden morse.txt3 en woorden.txt4 zich in de huidige directory bevinden.

>>> codes = morsecodes('morse.txt')
>>> codes['C']
'-.-.'
>>> codes['U']
'..-'
>>> codes['N']
'-.'

>>> patroon('TAIPAN', codes)
'-.-...--..--.'
>>> patroon('TAIPAN', codes, complement=True)
'.-.---..--..-'
>>> patroon('TAIPAN', codes, spiegel=True)
'.--..--...-.-'
>>> patroon('TAIPAN', codes, complement=True, spiegel=True)
'-..--..---.-.'

>>> isomorse('TAIPAN', 'CUNETTE', codes)
True
>>> isomorse('TAIPAN', 'PYTHON', codes)
False
>>> isomorse('TAIPAN', 'ROUX', codes, complement=True)
True
>>> isomorse('TAIPAN', 'PATIENT', codes, spiegel=True)
True
>>> isomorse('TAIPAN', 'TUDOR', codes, complement=True, spiegel=True)
True
>>> isomorse('EDOMITE', 'EDOMITE', codes, spiegel=True)
True

>>> groepen('woorden.txt', 'morse.txt')
{'.--...-...-..': {'WILL', 'PITIED', 'PERINE', 'ADENINE'}, '.--.-.---....----.': {'PYTHON'}, '-.-...--..--.': {'TREPAN', 'CUNETTE', 'TAIPAN'}}

Epiloog

De gepatenteerde uitvinder Thomas Alva Edison (1847-1931) had een kleine beroepsmisvorming: hij vroeg zijn vrouw ten huwelijk in morsecode en gaf  twee van zijn kinderen Marion Estelle en Thomas Alva Jr. de troetelnaampjes Dot en Dash.