PDA

Просмотр полной версии : Как правильно умертвить рабов?


Nadir Zaitov
12.01.2010, 09:42
Патриций решил устроить праздник и для этого приготовил 240 бочек вина. Однако к нему пробрался недоброжелатель, который подсыпал яд в одну из бочек. Недоброжелателя тут же поймали, дальнейшая его судьба неизвестна.
Про яд известно, что человек, его выпивший, умирает в течение 24 часов. До праздника осталось два дня, то есть 48 часов. У патриция есть пять рабов, которыми он готов пожертвовать, чтобы узнать в какой именно бочке яд. Расскажите каким образом можно это узнать.

JH
12.01.2010, 09:58
Надир, ровно по истечении 24 часов умирает или в течение 24 часов?

primaster
12.01.2010, 11:15
Вариант ответа если ровно 24 часа: 240 бочек делим поровну между 5 рабами - то есть по 48 бочек на каждого. Через каждые полчаса каждый раб пробует по одной бочке и отмечает когда ее он пил. В течение 24 часов будут испробованы все бочки. Остальные 24 часа ждем когда один из рабов умрет, смотрим время смерти - смотрим какую он бочку пил 24 часа назад - она и будет нужная

JH
12.01.2010, 11:23
Вариант ответа если ровно 24 часа: 240 бочек делим поровну между 5 рабами - то есть по 48 бочек на каждого. Через каждые полчаса каждый раб пробует по одной бочке и отмечает когда ее он пил. В течение 24 часов будут испробованы все бочки. Остальные 24 часа ждем когда один из рабов умрет, смотрим время смерти - смотрим какую он бочку пил 24 часа назад - она и будет нужная
В таком случае достаточно 1 раба. Он будет пить по чуть-чуть вина каждые 6 минут.

JH
12.01.2010, 11:25
Кстати, учитываем, что у нас есть потенциально шестая жертва для экспериментов - сам злоумышленник. Чего его держать )))

primaster
12.01.2010, 12:27
Кстати, учитываем, что у нас есть потенциально шестая жертва для экспериментов - сам злоумышленник. Чего его держать )))
Лучше его попытать хорошенько, сам скажет какую бочку отравил :187:

Nadir Zaitov
12.01.2010, 12:38
Надир, ровно по истечении 24 часов умирает или в течение 24 часов? Если "ровно по истечении", то слишком просто решается - можно взять одного раба и поить его каждые 5 минут с секундомером :).

Nadir Zaitov
12.01.2010, 12:40
В таком случае достаточно 1 раба. Он будет пить по чуть-чуть вина каждые 6 минут. Блин... оказывается Жахонгир уже ответил... Спасибо.

Rooslan Khayrov
12.01.2010, 13:27
Итак, раб, выпив яду, умирает в течение 24 часов, но неизвестно, когда именно. За два дня мы можем устроить два испытания, после которых раб может оказаться в одном из трёх состояний: остался жив, умер на первый день, умер на второй день. Таким образом, пять рабов дадут нам 3^5 = 243 состояния, что вполне достаточно для решения задачи.
Запишем номера бочек в троичной системе (минус один, для удобства):
1 — 00000
2 — 00001
3 — 00002
4 — 00010
...
240 — 22212
Очевидно, каждый разряд соответствует рабу. Первую бочку не будет пить никто. Вторую — первый раб на первый день, третью — на второй и т.д.
Таким образом, в первый день первый раб отведает из бочек с номерами (1 + 3 * n), второй — (4..6 + 9 * n) и т.д. Каждый раб должен будет попробовать примерно 80 бочек в день. Будем надеяться, что алкогольное отравление не вызовет ложных срабатываний.
Напоив рабов по указанной схеме, через два дня считаем состояние «регистра».

JH
12.01.2010, 13:29
Кажется придумал. Делим 240 бочек на 120 пар. Смешиваем из каждой пары 4 одинаковых мини-коктейля и спаиваем 4 разным рабам. Комбинации из 4 рабов не должны повторяться. Вариантов "4 из 5" как раз 120. Через 24 часа 4 раба умрут, а мы узнаем в какой паре бочек одна отравлена. Выживший раб поможет уточнить и даже имеет шанс выжить.

JH
12.01.2010, 14:13
Пока писал, Руслан Хайров запостил свой вариант. Тоже правильный, имхо, но более сложный для осознания простым римским патрицием.

Но я не о том. Писал свой предыдущий комментарий в обед с телефона, жутко мучался и пытался сделать ответ максимально коротким, чтобы букв нужно было вбивать как можно меньше. И пришла мысль - что нужно подарить идею тренерам команд программистов, которые готовят ребят к олимпиадам - давать им подобные задачки и ответ требовать по СМС - учит оптимизировать решения.

Nadir Zaitov
12.01.2010, 15:28
Каждый раб должен будет попробовать примерно 80 бочек в день. Не расписан случай, если умрет до второго дня :) Это ведь существенно :) Такое решение действительно есть, но оно не так просто!

Nadir Zaitov
12.01.2010, 15:33
Вариантов "4 из 5" как раз 120. Это действительно так? (замечу, что 5!=120, а сочетаний всего 5=5!/4! ... там ведь нет упорядочения рабов).

JH
12.01.2010, 15:48
Это действительно так?
Задумался...

Nadir Zaitov
12.01.2010, 16:11
Rooslan Khayrov, а что делать, если скажем 2 раба умрут в первый день?

JH
12.01.2010, 16:16
Rooslan Khayrov, а что делать, если скажем 2 раба умрут в первый день?

Вроде ничего не случится. С соответствующем троичном числе на это место записываем единицу.

Nadir Zaitov
12.01.2010, 16:21
Вроде ничего не случится. А кто за них будет пить во второй день? :) (я то ответ знаю, только не для всех ясно расписано)

JH
12.01.2010, 16:23
А кто за них будет пить во второй день? (я то ответ знаю, только не для всех ясно расписано)
Понел. Злоумышленник!

Rooslan Khayrov
12.01.2010, 16:44
Вроде ничего не случится. А кто за них будет пить во второй день?
Никто, все бочки, которые выпадают умершему рабу по расписанию на завтра, отличаются от тех, из которых он пил сегодня, следовательно не ядовиты и пить их нет смысла. А мёртвый значение своего разряда уже зафиксировал.
Да, для тех кто понимает логику решения, всё очевидно, но патрицию объяснить будет сложно :-)

Nadir Zaitov
12.01.2010, 17:07
Никто, все бочки, которые выпадают умершему рабу по расписанию на завтра, отличаются от тех, из которых он пил сегодня, следовательно не ядовиты и пить их нет смысла. А мёртвый значение своего разряда уже зафиксировал. Да, для тех кто понимает логику решения, всё очевидно, но патрицию объяснить будет сложно :-) Ага.

Теперь представьте, что существует вероятность несрабатывания яда у 50% рабов (труд закалил их имунную систему), но вы не знаете кого именно. Сколько при этом пондобтся рабов для гарантированной поверки пиршества за 2 дня.