Size: a a a

2018 August 11

NG

N G in PyLadies SPb
Она не с моих собесов, но мне ее раньше рассказали, а я её рассказала работодателю зачем-то

В общем есть 1024 бутылки вина и 10 кроликов
В одной бутылке яд который убивает кролика
Надо узнать в какой
источник

NG

N G in PyLadies SPb
Ее я помню как решать, правда сходу не скажу
источник

OT

Olya Telezhnaya in PyLadies SPb
Я могу справиться, убив четырёх
источник

OT

Olya Telezhnaya in PyLadies SPb
Но оставлю поломать голову остальным)
источник

OT

Olya Telezhnaya in PyLadies SPb
Четырёх убью, остальные сопьются :)
источник

PS

Polina Simareva in PyLadies SPb
Чтобы узнать, где яд, достаточно убить одного кролика. Если умер - то яд :) вопрос точно правильно сформулирован?
источник

KT

Kseniia Terekhova in PyLadies SPb
всё зависит от какой дозы яда умирают кролики и от какой дозы вина :)
источник

L

Liana in PyLadies SPb
Полное условие задачи выглядит так:
1024 бутылок вина, 1 отравлена, 10 кроликов.
Можно взять немного вина из бутылки.
От яда кролик умирает в через 1 день.
Сколько минимально дней потребуется чтобы определить бутылку с ядом?
источник

KT

Kseniia Terekhova in PyLadies SPb
ну таки да, четыре - гарантировано, три - если повезёт. 2**10 = 1024 видимо только для того, чтобы сбить с толку :)
источник

KT

Kseniia Terekhova in PyLadies SPb
если действие яда не нейтрализуется вином, конечно :)
источник

NG

N G in PyLadies SPb
Да, там были дни, я туплю.
За  1 день можно по-моему справиться
источник

L

Liana in PyLadies SPb
За 1 день можно, красивая задача
источник

NG

N G in PyLadies SPb
Я вспомнила как это делается
источник

KT

Kseniia Terekhova in PyLadies SPb
у меня есть мысля, но её в телеграмме в текстовом виде очень сложно пояснить (особенно с учётом того, что она не факт что правильная)
Можно построить бинарное дерево делением бутылок на группы по 512 штук, потом каждую по 256, потом 128 и т.п. Должно как раз получиться log2(1024)=10 уровней.
Каждому уровню присваивается свой кролик. Кролик пьёт из смеси содержимого бутылок каждого второго узла своего уровня. На следующий день смотрим, кролики каких уровней поумирали и на основе этого делаем вывод о пути в дереве. Т.е. если кролик 1го уровня умер, яд - в том узле из которого он пил; иначе - в другом. Смотрим, что случилось с кроликом 2-го уровня. Он пил из 256 бутылок первой 512- подгруппы и из 256 бутылок второй.   На основе комбинаций первый выжил-второй выжил, первый да- второй нет, первый нет-второй да, первый нет-второй нет можно сделать вывод о том, в каком из 256-узлов яд. Потом берём третьего кролика и при помощи него определяем 64-подгруппу. И т.д. до самого нижнего уровня.
Вроде похоже на правду, есть здравое зерно?
источник

KT

Kseniia Terekhova in PyLadies SPb
*по 3-му кролику - 128- подгруппу определяем
источник

NG

N G in PyLadies SPb
Вроде как-то так
источник

KT

Kseniia Terekhova in PyLadies SPb
^_^
источник

KT

Kseniia Terekhova in PyLadies SPb
экономим дни, но не экономим кроликов :( мне кроликов жальче
источник

KT

Kseniia Terekhova in PyLadies SPb
они такие милые :(
источник

KT

Kseniia Terekhova in PyLadies SPb
🐰
источник