Python 2.7
Pour répondre à la question, il faut connaître la question - et la question est:
Qu'est-ce que vous obtenez quand vous multipliez six par neuf? Merci à TRiG pour la correction
So Deep Thought repose sur l' utilisation pratique de la base 13 :
6 13 x 9 13 = 42 13
Nous importons nos constantes:
from random import randrange as scrabbleBag, randint
from datetime import datetime,timedelta
life,universe,everything,nothing=6,9,1,-3
endOfTheUniverse = 80
Nous définissons également nos choses de la terre, étant un sac de tuiles de scrabble , Arthur (un prédictible quoique légèrement étrange, une sorte d'ordinateur), Trillian (notre héroïne rationnelle),
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)))
Nous présentons Zaphod - un type aléatoire, qui finit par s'essouffler à l'approche du endOfTheUniverse
.
zaphod = lambda : not(randint(0,(endOfTheUniverse-(datetime.now() - start).seconds)**3))
Et Marvin l'Androïde Android , dont l'attitude positive pourrait empêcher toute fête:
marvin = lambda : endOfTheUniverse<(datetime.now() - start).seconds
Et nous continuons à exécuter ces 4 personnages à travers le mélange jusqu'à ce qu'ils calculent qu'il :
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)
Le complet 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)
Cela devrait finir quelque part autour de la barre des 75 secondes, terminant définitivement par 80 secondes. Parfois plus tôt pour Zaphods Infinite Improbability Drive .
sleep(75);print("%d\n",41+1);