Python 2.7
Para responder à pergunta, é preciso conhecê- la - e a pergunta é:
O que você ganha quando multiplica seis por nove? Graças a TRiG pela correção
O Deep Thought se baseia no uso prático da base 13 :
6 13 x 9 13 = 42 13
Importamos nossas constantes:
from random import randrange as scrabbleBag, randint
from datetime import datetime,timedelta
life,universe,everything,nothing=6,9,1,-3
endOfTheUniverse = 80
Também definimos nossas coisas terrenas, sendo um saco de azulejos , Arthur (um tipo de computador previsível, embora um pouco estranho), Trillian (nossa heroína racional),
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)))
Apresentamos Zaphod - um tipo aleatório, que acaba perdendo força quando nos aproximamos do endOfTheUniverse
.
zaphod = lambda : not(randint(0,(endOfTheUniverse-(datetime.now() - start).seconds)**3))
E Marvin, o Android paranóico , cuja atitude positiva poderia impedir qualquer partido:
marvin = lambda : endOfTheUniverse<(datetime.now() - start).seconds
E continuamos a executar esses 4 caracteres através da mistura até que calcular -lo :
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)
O 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)
Isso deve terminar em torno da marca de 75 segundos, definitivamente terminando em 80 segundos. Às vezes, antes de Zaphods Infinite Improbability Drive .
sleep(75);print("%d\n",41+1);