Python 2.7
Щоб відповісти на питання, треба знати питання - і питання:
Що ви отримуєте, коли множите шість на дев'ять? Дякуємо TRiG за виправлення
Тож Deep Thought покладається на зручне використання бази 13 :
6 13 х 9 13 = 42 13
Ми імпортуємо наші константи:
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)))
Ми представляємо Зафод - випадковий сорт, який, врешті-решт, вичерпається пари, коли ми поруч endOfTheUniverse
.
zaphod = lambda : not(randint(0,(endOfTheUniverse-(datetime.now() - start).seconds)**3))
І Марвін Параноїд Android , позитивне ставлення якого може зупинити будь-яку вечірку:
marvin = lambda : endOfTheUniverse<(datetime.now() - start).seconds
І ми продовжуємо запускати ці 4 символи через суміш, поки вони не обчислять його :
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)
Повний 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)
Це має закінчитися десь біля 75-секундної позначки, безумовно, закінчившись за 80 секунд. Іноді раніше на Зафодс Нескінченний привід неможливості .
sleep(75);print("%d\n",41+1);