Просмотр полной версии : Задача #12
Не очень сложная задача...
Виночерпий фараона был в панике! Через полтора часа с инспекцией в фараоновы винные погреба должен прийти Главный Распорядитель дворца, а 5 минут назад виночерпий получил записку из канцелярии охраны престола, в которой говорилось что одна из 1000 бочек с вином в погребе отравлена. Яд известен, это смесь крови оранжевого морского ежа и скорпиона, действует не сразу, а только через час. Но какая конкретно бочка отравлена неизвестно. Не дай бог, Главный Распорядитель отопьет из отравленной бочки - самого виночерпия бросят в яму со змеями, а всех его родственников продадут в рабство!
У виночерпия есть, конечно 10 рабов, на которых можно поэкспериментировать, но рабов всего 10, а бочек 1000. Да и если первых симптомов ждать целый час, а Главный Распорядитель приходит через полтора, будет всего одна попытка распознать яд.
Впрочем, а что, если....
Что придумал хитроумный виночерпий, чтобы точно определить бочку с ядом?
Tolesnikov решил задачу.
Маленькое пояснение: яд не действует на всех одинакого быстро. Кто-то умрет быстрее, кто-то медленнее. Поэтому варианты с засечением времени отпадают.
Ты прав, только зачем было воткрытую выкладывать, мог бы и в личку послать. А то теперь остальным будет неинтересно.
ну вот, так красиво расписал... :(
Zigmar, извини, ради бога, но и правда - решения у нас в личку принято писать :)
sirUjin, забавно. :crazy girl:
Ты не "забавно", ты ответ давай!
sirUjin,
Решил, решил. Дай другому:crazy girl: Ыдмыныстрацыя
решение я знаю, но мне лень высчитывать.
Шурик, решение, если его правильно сформулировать - достаточно красивое. "Высчитывать" ничего не надо.
без цифр я знаю решение. очень всё просто.
Шурик, напиши в личку Зигмару, Юджину или мне, мы скажем, пральна иль нет :)
Нетушки, нетушки! Тут только я решаю, правильно, или нет! :D
Шурик, тогда пиши СирУжыну :evillaugh
А вот и не правильно! http://s3.rimg.info/6249c95f600dc6352b09be242cad8823.gif
wolf-hound
14.09.2008, 11:19
sirUjin, задача звучит интереснее когда ты спрашиваешь какое минимальное количество рабов надо, а не сразу говоришь 10.
Видимо так..
Каждый пьет 100 бокалов. Задача виночерпия запомнить сотню каждого.
А по приходу кого-то там, уговорить его выпить из других 400 сотен.
Мечтатель Вова
16.09.2008, 16:15
неее, тут нет таких "подвохов".
можно вычислить точную бочку. сугубо математика/логика.
кстати, задал её на другом форуме не говоря про нужное количество.
никто так пока и не решил. лучший результат 31 раб.
Delirium Tremens
28.09.2008, 12:28
Вычислив с точьность юо 9-и бочек по человеческой (!!!) системе... Я долго долго материлась узнав ответ.
И все еще, в бобруйск вас и вашу систему... Это нечесные приемы, для людей с определенными знаниями, я хоть все это когда-то и учила, не додумалась бы в жизни:(
wolf-hound
28.09.2008, 13:13
Гмык, а почему 31, для куба 10х10х10 надо 30?
Кстати, печатать правильный ответ для всех нерешивших?
Мечтатель Вова
28.09.2008, 20:27
Masha, ну я решил без всяких знаний, так что норм )
wolf-hound,
не, до куба тот человек так и не додумался.
там был квадрат и рабы пили по три линии каждый, причем среднюю линию только он, а правую и левую делили с соседом с права и с лева.
или это уже его другая версия.. давно было.
sirUjin, печатать.
или, мне в личку скинуть, плз.
печатай тогда уже для всех!
Я опишу решение языком понятным людям связаным с програмированием, хотя и далекие от компьютеров люди решили эту задачу.
Решение простое. Все наверно догадались, что нужно давать каждому рабу пить из разных бочек, и так, чтобы из каждой бочки выпило несколько рабов. Тогда по сочетанию умерших рабов можно точно определить в какой бочке яд. Другими словами, нужно чтобы из каждой бочки выпило уникальное сочетание рабов. И совсем другими словами, надо индексировать 1000 бочек 10-ю рабами.
Раб - это бинарная система - он может или умереть, или выжить. То есть каждого раба можно представить себе как бит информации - нолик или единичка. Как только мы поняли это, все становится ясно - 10 рабов - 10 битов, можно индексировать до 1024 бочек по стандартной бинарной системе.
Как это делается: нумеруем каждую бочку в бинарной системе:
1-я бочка - 0000000001
2-я бочка - 0000000010
3-я бочка - 0000000011
...
1000-я бочка - 1111101000
Смотрим на номер бочки - если в 1-м регистре естоит единичка - даем пить первому рабу. Если нет - не даем. То же с остальными.
Получается, что если умер только первый раб - отравлена первая бочка, только 2-й - вторя, первый и второй - третяя, и т.д.
P.S. Нумерацию, в принципе, можно начитанть с нуля. То есть из первой бочки вообще никому не давать пить, и если ни один раб не умер, значит отравлена именно первая бочка.
Мечтатель Вова
02.10.2008, 14:09
и простым языком:
http://ne-forum.ru/pic/stam/wherethepoison.jpg
Русский vBulletin v4.1.9, Copyright ©2000-2024, Jelsoft Enterprises Ltd. Перевод сделал zCarot