Pollux is een geheimschrift dat in twee stappen werkt. Om een bericht te coderen, wordt het eerst omgezet naar morse: een code die gebruikt werd om berichten via een telegraaf te versturen. Een bericht in morse bestaat uit een opeenvolging van korte signalen (voorgesteld door een punt (.)) en lange signalen (voorgesteld door een streep (-)). Elk karakter wordt voorgesteld als een unieke combinatie van korte en lange signalen. Tussen twee opeenvolgende karakters wordt telkens een korte pauze ingelast, die voorgesteld wordt als een spatie. Op die manier wordt het woord CASTOR in morse voorgesteld als

-.-. .- ... - --- .-.

Voor het tweede deel van de codering leggen we vast door welke karakters we de morsesymbolen (punten, strepen en spaties) kunnen vervangen. Daarbij geldt dat hetzelfde karakter nooit kan gebruikt worden als vervanging voor meerdere symbolen. Elk symbool van het bericht in morse wordt dan vervangen door een willekeurig gekozen karakter uit de karakters waardoor het symbool kan vervangen worden. Stel bijvoorbeeld dat we vastleggen dat de morsesymbolen door de volgende karakters kunnen vervangen worden:

punt (.) 0378AEFMOPQXYZ
streep (-) 145BCGJNRTW
spatie ( ) 269DHIKLSUV

Dan kan het woord CASTOR als volgt gecodeerd worden in het Pollux geheimschrift:

platte tekst C    A  S   T O   R
morse -.-. .- ... - --- .-.
cijfertekst 4PGM9F1VQEMHCUB1B28BP

We geven nog een voorbeeld waarbij we nu op de volgende manier vastleggen door welke karakters de morsesymbolen kunnen vervangen worden:

punt (.) 158
streep (-) 047
spatie ( ) 2369

Dan kan het bericht BETA GEMINORUM als volgt gecodeerd worden in het Pollux geheimschrift:

platte tekst B    E T A  G   E M  I  N  O   R   U   M
morse -... . - .- --. . -- .. -. --- .-. ..- --
cijfertekst 78559590317270898307655205347035412184970

Merk daarbij op dat de spatie in BETA GEMINORUM geen voorstelling heeft in morsecode, en dus ook niet omgezet wordt. Het decoderen van Pollux gebeurt in omgekeerde volgorde: alle karakters uit de cijfertekst worden terug omgezet naar hun corresponderende morsesymbolen, en dan wordt het bericht in morse terug omgezet naar het oorspronkelijke bericht.

Opgave

We leggen een morsecode vast in een tekstbestand. Elke regel van het bestand bevat een uniek karakter, gevolgd door een tab en de unieke combinatie van punten en strepen waardoor het karakter voorgesteld wordt in morse. Als voorbeeld werken we met het bestand morse.txt1:

A	.-
B	-...
C	-.-.
D	-..
E	.
⋮	⋮
(	-.--.
=	-...-
@	.--.-.

Gevraagd wordt:

Voorbeeld

In onderstaande voorbeeldsessie gaan we ervan uit dat het tekstbestand morse.txt2 zich in de huidige directory bevindt.

>>> code = lees_code('morse.txt3')
>>> code['A']
'.-'
>>> code['8']
'---..'

>>> tekst2morse('CASTOR', code)
'-.-. .- ... - --- .-.'
>>> morse2tekst('-.-. .- ... - --- .-.', code)
'CASTOR'

>>>
tekst2morse('BETA GEMINORUM', code) '-... . - .- --. . -- .. -. --- .-. ..- --' >>> morse2tekst('-... . - .- --. . -- .. -. --- .-. ..- --', code) 'BETAGEMINORUM' >>> codeer('CASTOR', code, '0378AEFMOPQXYZ', '145BCGJNRTW', '269DHIKLSUV') '57TEUANUPXA9GUC14IQJ3' >>> decodeer('4PGM9F1VQEMHCUB1B28BP', code, '0378AEFMOPQXYZ', '145BCGJNRTW', '269DHIKLSUV') 'CASTOR' >>> codeer('BETA GEMINORUM', code, '158', '047', '2369') '01589134657940131904651341200468056880907' >>> decodeer('78559590317270898307655205347035412184970', code, '158', '047', '2369') 'BETAGEMINORUM'

Epiloog

Pollux — aangeduid als β Geminorum (gelatiniseerd tot Beta Geminorum; afgekort tot Beta Gem of β Gem) — is een oranjekleurige reuzenster op ongeveer 34 lichtjaar van de zon in het sterrenbeeld Tweelingen (Gemini). Het is de helderste ster in het sterrenbeeld Tweelingen en de dichtstbijzijnde reuzenster bij de zon.

Gemini
De positie van Pollux in het sterrenbeeld Tweelingen (Gemini).

De naam van de ster verwijst naar de tweelingen Castor en Pollux4 uit de Griekse en Romeinse mythologie.