Python 2.7
Um die Frage zu beantworten, muss man wissen , die Frage - und die Frage ist:
Was bekommst du, wenn du sechs mal neun multiplizierst? Danke an TRiG für die Korrektur
So Deep Thought stützt sich auf die handliche Verwendung von Basis 13 :
6 13 x 9 13 = 42 13
Wir importieren unsere Konstanten:
from random import randrange as scrabbleBag, randint
from datetime import datetime,timedelta
life,universe,everything,nothing=6,9,1,-3
endOfTheUniverse = 80
Wir definieren auch unsere Erden-Dinge als eine Tüte Scrabble-Kacheln , Arthur (ein vorhersehbarer, wenn auch etwas seltsamer Computer), Trillian (unsere rationale Heldin),
tile = lambda i: scrabbleBag(26)
arthur = lambda i: int(`i`,life+universe+everything+nothing)
trillian = lambda i: ''.join(map(str,divmod(i,life+universe+everything+nothing)))
Wir stellen Zaphod vor - eine zufällige Sorte, der irgendwann der Dampf ausgeht, als wir uns dem nähern endOfTheUniverse
.
zaphod = lambda : not(randint(0,(endOfTheUniverse-(datetime.now() - start).seconds)**3))
Und Marvin the Paranoid Android , dessen positive Einstellung jede Party aufhalten könnte:
marvin = lambda : endOfTheUniverse<(datetime.now() - start).seconds
Und wir weiterhin diese 4 Zeichen durch den Mix laufen , bis sie berechnen sie :
while answer is not life * universe * everything:
rack = sum(tile(i) for i in range(7))
answer = (zaphod or marvin) and arthur(rack)
print trillian(answer)
Das komplette deepthought.py
:
from random import randrange as scrabbleBag, randint
from datetime import datetime,timedelta
life,universe,everything,nothing=6,9,1,-3
endOfTheUniverse = 80
tile = lambda i: scrabbleBag(26)
arthur = lambda i: int(`i`,life+universe+everything+nothing)
trillian = lambda i: ''.join(map(str,divmod(i,life+universe+everything+nothing)))
start = datetime.now()
zaphod = lambda: not(randint(0,(endOfTheUniverse-(datetime.now() - start).seconds)**3))
marvin = lambda: endOfTheUniverse<(datetime.now() - start).seconds
answer = None
while answer is not life * universe * everything:
rack = sum(tile(i) for i in range(7))
answer = (zaphod() or marvin()) and arthur(rack)
print trillian(answer)
Dies sollte irgendwo um die 75 Sekunden-Marke enden und definitiv um 80 Sekunden enden. Manchmal früher zu Zaphods Infinite Improbability Drive .
sleep(75);print("%d\n",41+1);