вторник, 18 января 2011 г.

Petals Around the Rose (Лепестки Розы)

http://www.borrett.id.au/computing/petals-bg.htm

Petals Around the Rose (Лепестки Розы)
    

Это был июнь 1977, самое-самое начало эры персональных компьютеров. Основатели Microsoft, Билл Гейтс и Пол Аллен ожидали рейса на Альбукерк, возвращаясь с Национальной Компьютерной Конференции в Далласе. В сентябрьском номере "PC Magazine", Генри Гилрой опубликовал историю знакомства спутников с головоломкой "Лепестки Розы" (Petals Around the Rose).



Душным влажным техасским вечером, возвращаясь домой в Альбукерк, ребята из "PC Magazine" встретились с группой из Microsoft. Кроме них, в числе ожидающих рейса были пара чуваков из Массачусетского Технологического института: таким образом, в одном помещении оказалась критическая масса компьютерных маньяков.

Название игры - "Лепестки Розы"(Petals Around the Rose), и оно имеет значение. Новичкам в игре можно это сообщать смело. Можно даже им сказать что число лепестков вокруг розы всегда или ноль или чётное целое число. И можно им говорить ответ каждый раз когда вы кинете кости, которые используются при игре. Но не более этого.

Тот кто знает смысл игры, бросает кости и мгновенно даёт ответ, например для этой комбинации ответ - "два".

#1
    


"Сколько-сколько?" - спрашивают игроки.

"Два"

"Вот тут - два?"

"Именно".

"Будет ли ответ таким же, если поменять кости местами, оставив те же значения?"

"Я могу сообщить вам только три факта: название игры, то что ответ всегда ноль или чётное целое число, и ответ для каждого броска. Вот сейчас ответ - два"

"Ок, бросай ещё"

#2
    

"Сдаюсь. Какой ответ?"

"Восемь"

"Давай ещё"

#3
    

"Четырнадцать"

#4
    

"Ноль"


#5
    

"Четыре"


#6
    

"Опять четыре"


И вот - тёплой ночью в Далласском аэропорту - шесть человек сидят на полу вокруг Властелина Лепестков, фыркая и дурацки похохатывая пытаются угадать ответ. Секьюрити нарочно проходят мимо, внимательно наблюдая за чудаками, прислушиваясь к бормотанию, и ничего не понимая.

#7
    

"Два"

Некоторые люди справились быстро, например как Луиза, координатор из "PC Magazine", которая поняла принцип едва ли не после первых шести бросков, фыркнув и назвав игру "тривиальной дурилкой". Марк Джеймс, наблюдатель от Comex из Калифорнийского Университета, собственно тот самый кто познакомил нас с головоломкой, рассказал что на его глазах множество блестяще образованных людей уходили потратив несколько часов и не имея ответа. Многие записывали выпадавшие расклады костей, и уносили их в лаборатории чтобы изучать их, сидя посреди булькающих котлов, пентаграмм и зелий.

Через несколько недель они звонили ему в Comex и диктовали ответы, полученные из сложного и дорогостоящего анализа на суперкопьютерах. Ответы были в большинстве случаев неправильные.
С учётом потери человекочасов и вычислительных ресурсов, Лепестки Розы, по всей видимости, нанесли экономике такой же ущерб,как например, СтарТрек.

#8
    

"Десять"

#9
    

"Шесть"

"Шесть?? Да как же так??"

#10
    

"Двенадцать"

"Блин это убивает к чертям последний мой удачный алгоритм!! Дайте мне кто-нибудь бумажку и карандаш, я хочу записывать комбинации. И вообще. Как там называется игра - Лепестки у Розы?(Petals Around the Rose)"

"Да, именно так и название имеет значение"

"Угу. И ответ всегда ноль или чётное число"

"Правильно"

"Можно я сам буду бросать кости?"

"Да запросто - бросай"

#11
    

"Ответ - восемь?"

"Нет, два"

"Чертовщина!"

"Не, всё достаточно просто =)"

"Ну, решение не должно быть слишком сложным, иначе невозможно было бы подсчитать ответ так быстро. Ты ведь тратишь десять минут чтобы вычислить чаевые и подсчитать сдачу утром на завтраке!"

"Да, это правда, зато я понимаю как подсчитать лепестки у розы; у каждого человека свои таланты - и этот мой"

#12
    
"Шестнадцать"

"Погоди, этого не было раньше, я думал максимум возможно 12"

"Почему, было же двенадцать ранее"

"А, ну да. А каков предел?"

"Я могу сообщить тебе только три вещи..."

"Зануда, бросай давай"

#13
    

"Восемь"

Стив Вуд догадался пока мы были в зале ожидания, остальные продолжали ломать голову и в самолёте. Как мы взлетели, пришлось бросать кости на откидном столике. Семь человек уже знали принцип и мгновенно давали ответы. Рич Вейланд догадался спустя полчаса. У Пола Аллена затекла шея, и он сдался, уткнувшись в свою книжку. Марк Макдональд и Билл Гейтс всё ещё продолжали бороться.

Забавно, что Билл Гейтс начал угадывать ответы, но не постоянно. Он признался что просто-напросто запоминал комбинации которые выпадали и ответы к ним. Но у него всё ещё не было стройной теории как подсчитывать ответы. Неужели запоминание?

"Ну да, ну да, сказал Гейтс-запоминатель, вот сейчас ...

#14
    

... получилось примерно то же самое что было в #9, кроме разве что вместо
шестёрки тогда была двойка. Я не знаю почему ответ такой же, но он таков есть"

Хитрый юноша к этому моменту помнил уже два с половиной десятка комбинаций и ответов. (Юноша - потому что однажды несколько месяцев назад он заказал на обед безалкогольный фруктовый коктейль. И выпил его под ошеломлённые взгляды дядек, внезапно осознавших что они как минимум вдвое его старше. Он бросил Гарвард для того чтобы работать в Microsoft, которая, написав операционную систему, теперь писала BASIC, а так же компиляторы для FORTRAN. Особо ничем примечательным они ещё не отличились но со временем... (вздох)).

"Мне бы бумажку и карандаш" - сказал Билл, который к этому моменту оставался единственным, кому не поддался секрет. "Ага!" - сказал он через полтора часа тупева - "Ответ для этой комбинации - четыре"

#15
    

"Верно"

#16
    

"А для этой - десять"

Он угадывал снова ещё двенадцать раз, уверяя нас что это не было запоминанием, но подтверждением того что он действительно понял принцип. Как и другие, он не чуствовал разочарования, наоборот был удовлетворён что его усилия были вознаграждены.

Вообще, когда вы проходите это в Comex, и в конце концов догадываетесь в чём дело, сотрудники заставляют вас припасть на одно колено, и посвящают вас в Братство Лепестков Розы, пока кто-нибудь хлопает вас по плечу какой-нибудь деревяшкой. (Некоторые получают поцелуй в процессе, меня же огрели указкой). Comex так же выдаёт ещё и удостоверение =), но на борту самолёта у нас их не было.

Игра замечательно получается с любыми костями. По рассказам ребят из Comex, однажды довольно серьёзная конференция была едва ли не сорвана после того как они принесли из копеечной лавки большую партию костей и познакомили народ с игрой "Лепестки Розы". "Это было офигенно!" - говорит Марк, - "представьте себе, изысканно одетые женщины и мужчины в дорогих костюмах сидели небольшими группками на корточках прямо на полу - по всему отелю. Время от времени было слышно как то тут то там ведущий объявляет правила, а потом раздаётся треск рассыпаемых костей, и везде практически слышимый скрип мозгов. Мы с тех пор делаем это осторожнее - а то кое-где на нас до сих пор злятся =)"

Даже парни из Microsoft согласились что "Лепестки Розы" удачно может быть реализована программно. А Билл Гейтс быстро набросал собственно саму программку на салфетке, и подарил нам для публикации в "PC Magazine"

Мы конечно же, не стали публиковать, потому что это вскрыло бы секрет. пробуйте догадаться самостоятельно, и напишите программку сами.

Так или иначе, мы бережно храним ту салфетку, на которой Билл написал свою программку. Она начинается со строки

PRINT "THE NAME OF THE GAME IS PEDAL AROUND THE ROSES" (Сколько Ног у Роз?)

Неудивительно что у него были трудности.

Скачать BASH-скрипт