De Mengenlehreuhr (Duits voor verzamelingenleeruurwerk) of Berlin Uhr (Duits voor Berlijnse klok) was de eerste klok ter wereld die op een publieke plaats de tijd aanduidde door middel van lampen die gekleurd oplichten. Om die reden werd ze bij haar installatie op 17 juni 1975 ook opgenomen in The Guinness Book of Records1. De klok werd ontworpen door Dieter Binninger in opdracht van de senaat van de Duitse hoofdstad Berlijn2 en stond oorspronkelijk in de Kurfürstendamm op de hoek met de Uhlandstraße. Nadat de senaat in 1995 opdracht gaf om de klok daar weg te halen, verhuisde ze naar de voorkant van het Europa-Center in de Budapester Straße. Daar staat ze vandaag nog altijd staat.

Mengenlehreuhr
De Mengenlehreuhr die 10:31 aangeeft.
Mengenlehreuhr
De Mengenlehreuhr die het tijdsverloop aangeeft van 16:50 tot en met 17:05.

De Mengenlehreuhr bestaat uit 24 lampen. Deze lampen zijn verdeeld over één ronde knipperende gele lamp aan de bovenkant die de seconden aanduidt, twee rijen bovenaan die de uren aanduiden en twee rijen onderaan die de minuten aanduiden.

De klok moet gelezen worden van de bovenste rij tot de onderste rij. De vier rode lampen op de bovenste rij staan telkens voor vijf volle uren, en de vier rode lampen op de tweede rij staan telkens voor een vol uur. Samen geven ze het uur aan op een 24-uursklok. De derde rij bestaat uit elf rode en gele lampen, die telkens staan voor vijf minuten (de rode lampen geven respectievelijk aan dat er 15, 30 of 45 minuten verstreken zijn), en de vier gele lampen op de onderste rij staan telkens voor één minuut. De ronde knipperende gele lamp aan de bovenkant geeft de even (indien opgelicht) of oneven (indien gedimd) seconden aan.

Als we de foto van de klok die hierboven staat als voorbeeld nemen, dan zien we dat er twee lampen opgelicht worden op de eerste rij (vijf uur vermenigvuldigd met twee geeft tien uur), en dat alle lampen op de tweede rij gedimd zijn. De klok geeft dus 10 uur aan. Zes lampen zijn opgelicht op de derde rij (vijf minuten vermenigvuldigd met zes geeft dertig minuten), terwijl er op de onderste rij slechts één lamp is opgelicht (plus één minuut). Alle lampen die opgelicht zijn op de klok geven dus samen aan dat het 10:31 is op een 24-uursklok. Hieronder staan nog enkele voorbeelden:

08:05 10:59 18:35 23:59

Merk op dat de Mengenlehreuhr in principe elk tijdstip kan aangeven van middernacht (00:00) tot 24:59, wat dus voorbij de grens van 23:59 gaat op een 24-uursklok. Eén minuut na 23:59 worden alle lampen van de Mengenlehreuhr echter terug gedimd, en begint de volgende dag.

Opgave

Definieer een klasse Mengenlehreuhr die toelaat om klokken van het type Mengenlehreuhr voor te stellen in Python. Deze klasse moet minstens de volgende methoden ondersteunen:

Voorbeeld

>>> klok = Mengenlehreuhr(10, 31)
>>> klok.lampen()
(2, 0, 6, 1)
>>> klok
Mengenlehreuhr(10, 31)
>>> print(klok)
 #### #### ---- ----
 ---- ---- ---- ----
# # # # # # - - - - -
 #### ---- ---- ----
>>> klok.verzetUren()
Mengenlehreuhr(11, 31)
>>> klok.lampen()
(2, 1, 6, 1)
>>> klok.verzetUren(9)
Mengenlehreuhr(20, 31)
>>> klok.lampen()
(4, 0, 6, 1)
>>> print(klok)
 #### #### #### ####
 ---- ---- ---- ----
# # # # # # - - - - -
 #### ---- ---- ----
>>> klok.verzetMinuten()
Mengenlehreuhr(20, 32)
>>> klok.lampen()
(4, 0, 6, 2)
>>> klok.verzetMinuten(42)
Mengenlehreuhr(21, 14)
>>> klok.lampen()
(4, 1, 2, 4)
>>> print(klok)
 #### #### #### ####
 #### ---- ---- ----
# # - - - - - - - - -
 #### #### #### ####
>>> klok.verzetMinuten(165)
Mengenlehreuhr(23, 59)
>>> klok.lampen()
(4, 3, 11, 4)
>>> print(klok)
 #### #### #### ####
 #### #### #### ----
# # # # # # # # # # #
 #### #### #### ####
>>> klok.verzetMinuten()
Mengenlehreuhr(0, 0)
>>> klok.lampen()
(0, 0, 0, 0)
>>> print(klok)
 ---- ---- ---- ----
 ---- ---- ---- ----
- - - - - - - - - - -
 ---- ---- ---- ----
>>> klok.verzetUren(10).verzetMinuten(17)
Mengenlehreuhr(10, 17)
>>> klok.lampen()
(2, 0, 3, 2)
>>> print(klok)
 #### #### ---- ----
 ---- ---- ---- ----
# # # - - - - - - - -
 #### #### ---- ----

>>> Mengenlehreuhr(42, 42)
Traceback (most recent call last):
AssertionError: ongeldig tijdstip

Epiloog

Speel gerust een beetje met onderstaande interactieve voorstelling van de Mengenlehreuhr.

De Mengenlehreuhr zou ook wel eens de sleutel kunnen zijn tot het ontcijferen van de onopgeloste sectie van Kryptos3, het standbeeld voor het hoofdkantoor van de CIA.

Kryptos
Kryptos, een standbeeld voor het hoofdkwartier van de CIA in Langley, Virginia (Verenigde Staten). Codekrakers van over de hele wereld hebben sinds de oprichting van het standbeeld in 1990 hun tanden stukgebeten op de laatste van vier codes die in Kryptos verwerkt werden. In 2010 gaf Jim Sandborn, de maker van het standbeeld, een aanwijzing van zes letters (Berlin) die niet direct tot een doorbraak leidde. Daarom gaf hij in 2014 nog een tip, die ditmaal bestond uit vijf letters (Clock). Hij voegde er aan toe "Ik dacht dat ik misschien wel een beetje specifieker mocht zijn."

Nadat hij in 2010 had onthuld dat het gedeelte van de code op posities 64–69 gedecodeerd wordt als BERLIN, gaf de beeldhouwer — Jim Sandborn — in november 2014 nog een aanwijzing aan de New York Times dat de letters op posities 70–74 in de code (dit zijn de letters MZFPK) moeten gedoceerd worden als CLOCK. Dit is dus een rechtstreekse verwijzing naar de Berlijnse klok. Sandborn verklapte bovendien ook dat om de code te kraken

You'd better delve into that paricular clock.

Hij voegde er echter ook nog het volgende aan toe.

There are several really interesting clocks in Berlin.

Bronnen