Python 2.7
Per rispondere alla domanda, è necessario conoscere la domanda e la domanda è:
Cosa ottieni quando moltiplichi sei per nove? Grazie a TRiG per la correzione
So Deep Thought si basa sull'uso pratico della base 13 :
6 13 x 9 13 = 42 13
Importiamo le nostre costanti:
from random import randrange as scrabbleBag, randint
from datetime import datetime,timedelta
life,universe,everything,nothing=6,9,1,-3
endOfTheUniverse = 80
Definiamo anche le nostre cose terrene, essendo una borsa di tessere scrabble , Arthur (un prevedibile anche se leggermente strano, computer di sorta), Trillian (la nostra eroina razionale),
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)))
Introduciamo Zaphod - una sorta casuale, che alla fine si esaurisce di vapore come ci avviciniamo al endOfTheUniverse
.
zaphod = lambda : not(randint(0,(endOfTheUniverse-(datetime.now() - start).seconds)**3))
E Marvin il Paranoid Android , il cui atteggiamento positivo potrebbe fermare qualsiasi festa:
marvin = lambda : endOfTheUniverse<(datetime.now() - start).seconds
E continuiamo a eseguire questi 4 personaggi attraverso il mix fino a quando non calcolano che :
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)
Il completo 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)
Questo dovrebbe finire da qualche parte intorno al segno di 75 secondi, terminando definitivamente di 80 secondi. A volte prima di Zaphods Infinite Improbability Drive .
sleep(75);print("%d\n",41+1);