2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Вино и кролики
Сообщение21.07.2017, 13:05 
Заслуженный участник
Аватара пользователя


28/07/09
1178
По интернету несколько лет гуляет одна забавная задачка. Утверждается, что с собеседования в Яндекс.
Цитата:
У короля есть 1000 бутылок вина одного сорта. Король из соседнего королевства решает убить нашего короля и отправляет убийцу, чтобы отравить один из бутлок с вином. Убийца успел добавить яд в одну из бутылок, но был пойман стражей. Король узнал об этом, решил проверить, какая бутылка был отравлена. Наш король очень умный и поэтому он решает использовать 10 кроликов, чтобы проверить, какая бутылка содержит яд. Из бутылок можно взять немного вина. От яда кролик умирает через 1 день.
Сколько минимально дней потребуется, чтобы определить бутылку с ядом?

Конечно, в такой формулировке она довольно простая, начните с неё как с разминки. Хотя, на других площадках и оригинальная формулировка вызывает довольно бурное обсуждение :D

Я же предлагаю обобщить на произвольное число кроликов и бутылок:
Цитата:
У короля есть X бутылок вина одного сорта. Король из соседнего королевства решает убить нашего короля и отправляет убийцу, чтобы отравить один из бутлок с вином. Убийца успел добавить яд в одну из бутылок, но был пойман стражей. Король узнал об этом, решил проверить, какая бутылка был отравлена. Наш король очень умный и поэтому он решает использовать Y кроликов, чтобы проверить, какая бутылка содержит яд. Из бутылок можно взять немного вина. От яда кролик умирает через 1 день.
Сколько минимально дней потребуется, чтобы определить бутылку с ядом?

Сложность задачи существенно возрастает. Тем не менее, и такая формулировка подъёмна. Пробуйте!

(Мой ответ (с защитой от случайного открытия спойлера))

00000000: 6365 696c 2858 5e28 312f 5929 2d31 290a

 Профиль  
                  
 
 Re: Вино и кролики
Сообщение21.07.2017, 13:21 
Аватара пользователя


11/12/16
13284
уездный город Н
Legioner93

1. Ответ на оригинальную задачу - за 1 день. Не понимаю, что там может вызвать споры.
2. Если кроликов достаточно, чтобы вообще определить ядовитую бутылку, то определить за 1 день будет можно.

 Профиль  
                  
 
 Re: Вино и кролики
Сообщение21.07.2017, 13:50 


05/09/16
11519
EUgeneUS в сообщении #1235104 писал(а):
Если кроликов достаточно, чтобы вообще определить ядовитую бутылку

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

EUgeneUS в сообщении #1235104 писал(а):
Ответ на оригинальную задачу - за 1 день. Не понимаю, что там может вызвать споры.

А давайте я загадаю номер бутылки от 1 до 1000, пронумеруем кроликов от 1 до 10, вы скажете каким кроликам налить из каких бутылок, я скажу вам какие кролики сдохли, а вы за один раз угадаете номер бутылки :)

 Профиль  
                  
 
 Re: Вино и кролики
Сообщение21.07.2017, 14:01 


14/01/11
2918
wrest в сообщении #1235112 писал(а):
А давайте я загадаю номер бутылки от 1 до 1000, пронумеруем кроликов от 1 до 10, вы скажете каким кроликам налить из каких бутылок, я скажу вам какие кролики сдохли, а вы за один раз угадаете номер бутылки :)

Кстати, не самый удачный контрпример, ибо $2^{10}>1000.$ :-)

 Профиль  
                  
 
 Re: Вино и кролики
Сообщение21.07.2017, 14:11 
Заслуженный участник
Аватара пользователя


28/07/09
1178
EUgeneUS в сообщении #1235104 писал(а):
2. Если кроликов достаточно, чтобы вообще определить ядовитую бутылку, то определить за 1 день будет можно.

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

 Профиль  
                  
 
 Re: Вино и кролики
Сообщение21.07.2017, 14:20 
Аватара пользователя


11/12/16
13284
уездный город Н
Legioner93
wrest
Да, с общим случаем у меня случилось затмение :facepalm:

-- 21.07.2017, 14:24 --

Минимальное количество дней - минимальное целое решение неравенства:

$N\leqslant (d+1)^k$

$N$ - количество бутылок
$k$ - количество доступных кроликов
$d$ - количество требуемых дней.

-- 21.07.2017, 14:38 --

wrest в сообщении #1235112 писал(а):
А давайте я загадаю номер бутылки от 1 до 1000, пронумеруем кроликов от 1 до 10, вы скажете каким кроликам налить из каких бутылок, я скажу вам какие кролики сдохли, а вы за один раз угадаете номер бутылки :)


Из каждой бутылки наливайте тем кроликам, у которых в номере бутылки бит, который соответствует номеру кролика, не нулевой. Сдохшие кролики сами скажут номер бутылки.

 Профиль  
                  
 
 Re: Вино и кролики
Сообщение21.07.2017, 14:44 
Аватара пользователя


07/01/15
1145
Разделяем $1000$ бутылок на $10$ групп по $100$. Поим каждого кролика из бутылок одной группы. После первого дня мы поймем, в какой группе бутылка с ядом.

Итак, на второй день у нас останется $100$ "подозреваемых" бутылок. Разделяем их на $9$ групп $100 = 11 \times 8 + 12$ и поступаем аналогично предыдущему. В худшем случае останемся с $12$ подозрительными бутылками.

После третьей итерации останемся с $2$ бутылками.

После четвертого дня определим бутылку с ядом.

 Профиль  
                  
 
 Re: Вино и кролики
Сообщение21.07.2017, 14:56 


05/09/16
11519
Sender в сообщении #1235117 писал(а):
Кстати, не самый удачный контрпример, ибо $2^{10}>1000.$

Мне тоже пришла в голову формула $\dfrac{X}{2^Y-1}$ с округлением до большего целого, и для 1000 бутылок и 10 кроликов вроде как 1 день, но когда я начал писать конкретно для 4 бутылок и 2 кроликов, то чего-то не сложилось.

-- 21.07.2017, 15:00 --

EUgeneUS в сообщении #1235124 писал(а):
Из каждой бутылки наливайте тем кроликам, у которых в номере бутылки бит, который соответствует номеру кролика, не нулевой. Сдохшие кролики сами скажут номер бутылки.

Да, спасибо что сформулировали, а то я сам не смог. Вопрос снимаю.

 Профиль  
                  
 
 Re: Вино и кролики
Сообщение21.07.2017, 15:10 
Заслуженный участник


04/03/09
906
Ну и для полноты картины доказательство.
1) Докажем сначала, что из $(d+1)^k$ бутылок за $d$ дней $k$ кроликов выяснят, какая же бутылка отравленная. Занумеруем бутылки в $(d+1)$-ичной системе счисления, начиная с нуля. Пусть $i$-ый ($0\le i < k$) кролик в $j$-ый ($1 \le j \le d$) день пьет из тех бутылок, в номерах которых в $i$-м разряде стоит $j$. Если $i$-ый кролик помирает в $j$-ый день, значит, в $i$-м разряде стоит $j$, а если не помирает вообще, то там стоит 0. Если кролик помер, дальше мы его использовать не можем, да и не нужно, раз мы соответствующий ему разряд узнали. Таким образом за $d$ дней узнаем все разряды номера бутылки.
2) Докажем, что из $(d+1)^k + 1$ бутылок за $d$ дней $k$ кроликов не могут выяснить, какая бутылка отравленная, по индукции по $d$. База $d=0$: дву бутылки и 0 дней. Очевидно, определить нельзя. Переход от $d-1$ к $d$. Пусть у нас $(d+1)^k+1$ бутылка и $k$ кроликов. Нарисуем на каждой бутылке число в двоичной системе счисления, в котором в $i$-ом разряде стоит 0, если $i$-ый кролик пьет из этой бутылки, иначе 1. Обозначим количество бутылок, на которых написано число $M$ через $f(M)$, а количество единичек в числе $M$ через $g(M)$. Если предположить, что для каждого $M$ $f(M) \le d^{g(M)}$, то $(d+1)^k + 1 = \sum\limits_{M=0}^{2^k-1}f(M) \le \sum\limits_{M=0}^{2^k-1} d^{g(M)} = \sum\limits_{l=0}^{k}C_k^ld^l = (d+1)^k$. Противоречие. Значит, существует такое число $M$, что количество бутылок с этим числом больше, чем $d^{g(M)}$. В худшем случае, отравленная бутылка окажется среди этих, и тогда у нас останется $d-1$ день, $g(M)$ живых кроликов и не менее $d^{g(M)} + 1$ бутылок, а по предположению индукции, столько дней не хватит для определения отравленной бутылки. Конец доказательства.

 Профиль  
                  
 
 Re: Вино и кролики
Сообщение21.07.2017, 15:23 
Заслуженный участник
Аватара пользователя


28/07/09
1178
EUgeneUS
12d3
Всё правильно!

 Профиль  
                  
 
 Re: Вино и кролики
Сообщение21.07.2017, 17:32 
Аватара пользователя


11/12/16
13284
уездный город Н
12d3 в сообщении #1235141 писал(а):
2) Докажем, что из $(d+1)^k + 1$ бутылок за $d$ дней $k$ кроликов не могут выяснить, какая бутылка отравленная, по индукции по $d$.


Зачем по индукции? Это автоматом получается по построению. У кролика есть $d+1$ состояний (сдох в один из дней или выжил). Есть k различных кроликов. Всего возможных различных состояний $(d+1)^k$, не больше.

Еще усложним задачу.
А теперь у нас кролики сидят в одной клетке. Но есть серые и белые, самки и самцы.
То есть четыре группы ($m$ групп), количество кроликов в разных группах различаются не более чем на 1. Кролики в группе неразличимы.
Вопросы - те же.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group