как стать умнее кошки

Jul 04, 2017 11:01

Интересная задачка:
Перед вами семь дверей. За одной из них сидит кошка ( Read more... )

математика

Leave a comment

Comments 74

xxxxx July 4 2017, 09:13:24 UTC
вот тебе решение, подробности напиши на питоне сам. Раскрасим двери в шахматном порядке и предположим сперва, что кошка в чёрной двери. Зная это её легко поймать, зажав в угол. Но если вдруг она не поймалась, это лишь означает, что изначальное предположение было неверно и она была сперва таки не в чёрной, но в белой двери. Но мы знаем сколько было ходов, значит теперь мы наверняка знаем какого цвета кошка, а зная это --- легко загнать в угол.

Reply

green_fr July 4 2017, 09:34:37 UTC
Я примерно это пытался описать в п.4, но заткнулся на том, что ты элегантно обошёл словами "легко поймать". Покажи, как?

Reply

zlyuk July 4 2017, 09:46:10 UTC
если знать, в чётной или нечётной двери кошка в данный момент, то её просто поймать, двигаясь с одного края на другой.
например, пусть она в нечётной двери. откроем дверь №1. если там её нет, то она была в 3, 5 или 7. значит, следующим ходом переместится в 2, 4 или 6.
откроем дверь №2. Если её там нет, значит она в 4 или 6. следующим ходом - будет в 3, 5 или 7.
откроем дверь №3. опять нет! значит она в 5 или 7 и будет теперь в 4 или 6. и так до конца.
если в последнем шаге кошку не нашли - значит она была изначально в чётной двери. меняем предположение о чётности нынешней двери и начиаем сначала.
в чётном случае - открываем вначале дверь №2 два раза, и убеждаемся, что кошка в двери с большим номером.
(извините, что влез в чужой тред)

Reply

green_fr July 4 2017, 09:51:29 UTC
Точно! Спасибо, теперь ясно.
Переформулирую:
1. Предположим, что кошка за чётной дверью. Ловим её слева направо по указанному методу. В худшем случае это занимает 5 ходов.
2. Если не поймали, значит в первом ходу она была за нечётной дверью. Значит теперь она за чётной. Начинаем сначала - и через ещё 5 ходов ловим кошку.
Отлично :-)

Reply


m_ag_us July 4 2017, 09:31:56 UTC
У задачи очень красивое решение.

Надо визуализировать процесс.
Рассадить кошек за каждой дверью. Открыть одну. Если там кошки нет, представить, куда могли переместиться кошки за оставшимися дверьми. Открыть следующую.
И так далее.
Важно решить, с какой двери начать. Постепенно исключаются места, где кошка может быть. И мы открываем ту единственную дверь, за которой может оказаться кошка.

Reply

green_fr July 4 2017, 09:36:35 UTC
Ок. Я открыл первую дверь. За ней нет кошки. Но на следующем ходу она может быть где угодно, включая первую дверь (была за второй) и вторую (да, её не было за первой, но она могла быть за третьей). Итого, что мне дал первый ход? Небольшое смещение вероятностей, но нуля нигде нет.

Reply

m_ag_us July 4 2017, 10:02:00 UTC
1. Никто не говорил, что первый ход даст окончательный ответ.
2. Никто не говорил, что надо открыть первую дверь.

Вы хотите ответ, или хотите подумать?
Я например сломал мосхх и пошёл искать ответ.
Нашёл. Ответ красивый.

Reply

green_fr July 4 2017, 10:17:46 UTC
Я хотел понять ваше предложение :-) Чуть выше я разобрался с решением, в котором мы разбиваем ситуацию на две гипотезы, а потом решаем каждую из них по-отдельности. А у вас какое решение получилось?

Reply


anna_porshneva July 4 2017, 12:30:54 UTC
Вот вы математики! Да взять кусок мяса и положить перед дверью - сама придет.

Reply

green_fr July 4 2017, 13:23:03 UTC
Было бы у нас другое мясо - нафига бы нам была нужна та кошка?!

Reply

anna_porshneva July 4 2017, 13:25:25 UTC
Так тогда тег нужно "Кулинария" или "Как выжить в кризис".

Reply

green_fr July 4 2017, 13:33:45 UTC
Да, не подумал. А ведь у меня уже есть таг стратегии эволюции!

Reply


anonymous July 4 2017, 12:53:38 UTC
Если каждый день открывать одну и ту же центральную дверь то кошка очень быстро окажется за ней. Или я не понимаю условия задачи.

Reply

green_fr July 4 2017, 13:23:53 UTC
Это был мой п.2. Проблема в потенциальной бесконечности времени, через которое кошка там окажется.

Reply

xxxxx July 4 2017, 17:47:18 UTC
Потому что ты скопипастил у копипастера неправильное условие. Правильное условие: кошка ходит не "случайно", а злобно чтоб не попасться. Слово "случайно" типа намекает на вероятностный алгоритм, тогда как требуется совершенно детерминистический алгоритм. (ну ладна "алгоритм" это громко сказано, всё решение состоит из последовательности дверей №№12345671234567 --- ну формально конечно чем не алгоритм :)

Reply


cross_join July 4 2017, 14:13:43 UTC
Это я из ФБ.
Если непрерывно, а не в серии попыток, то ОК.

Reply

green_fr July 4 2017, 14:43:04 UTC
Да, я понял. Я вот тут пошагово расписал в нотации m_ag_us.

Reply


Leave a comment

Up