Недавно обсуждали всякие задачки с собесов или просто на логику, которые понравились. Думаю, что про парочку из них вы точно как минимум слышали. Я постаралась не брать совсем мейнстрим типа кроликов и вина, но тем не менее. Кстати — ю а вери велком ту поделиться своими шортлистами задачек.
1. В тюрьму поступили 100 узников. Их рассадят по одиночным камерам и будут по одному приводить в комнату, где нет ничего, кроме одной лампочки, которую узнику разрешается включить или выключить; изначально лампочка выключена. Гарантируется, что рано или поздно каждый из узников побывает в комнате с лампочкой сколько угодно раз. В любой момент узник, приведённый в комнату с лампочкой, может объявить, что все заключенные уже побывали в комнате хотя бы по одному разу; если он прав, то всех узников отпустят, если нет — казнят. Требуется придумать стратегию, о которой узники могут договориться заранее, которая позволит им освободиться.
2. Вы стоите перед закрытой комнатой, в которой есть три лампочки. На стене перед вами три переключателя: каждый из которых включает или выключает одну из лампочек. Вам нужно узнать, какой переключатель к какой лампочке относится, при условии, что зайти в комнату вы можете только один раз. Расположение переключателей случайное, порядок подключения заранее неизвестен. Зайдя в комнату, можно делать с лампочками всё, что угодно, но уже нельзя вернуться к переключателям. Изначально все лампочки выключены.
3. Представьте себе вращающийся диск, например DVD. У вас есть в распоряжении черная (Ч) и белая (Б) краски. На краю диска установлен небольшой датчик, который определяет цвет под ним и выдает результат в виде сигнала. Как бы вы раскрасили диск, чтобы было возможно определить направление вращения по показаниям датчика?
4. Один из ваших работников настаивает на том, чтобы ему платили золотом. У вас есть золотой слиток, стоимость которого соответствует семидневной зарплате этого сотрудника. Он уже размечен на 7 равных кусков. Если вам разрешили сделать всего два разреза слитка, а работнику нужно платить в конце каждого дня, как можно решить эту проблему? Дополнительно: как заплатить работнику за любое число дней и какое число минимальное разрезов для этого потребуется?
5. Самая сложная задача, если вы решите ее без подсказок, мое уважение. Условие (осторожно, решение тоже там) вот тут: https://habr.com/ru/post/250585/
1. В тюрьму поступили 100 узников. Их рассадят по одиночным камерам и будут по одному приводить в комнату, где нет ничего, кроме одной лампочки, которую узнику разрешается включить или выключить; изначально лампочка выключена. Гарантируется, что рано или поздно каждый из узников побывает в комнате с лампочкой сколько угодно раз. В любой момент узник, приведённый в комнату с лампочкой, может объявить, что все заключенные уже побывали в комнате хотя бы по одному разу; если он прав, то всех узников отпустят, если нет — казнят. Требуется придумать стратегию, о которой узники могут договориться заранее, которая позволит им освободиться.
2. Вы стоите перед закрытой комнатой, в которой есть три лампочки. На стене перед вами три переключателя: каждый из которых включает или выключает одну из лампочек. Вам нужно узнать, какой переключатель к какой лампочке относится, при условии, что зайти в комнату вы можете только один раз. Расположение переключателей случайное, порядок подключения заранее неизвестен. Зайдя в комнату, можно делать с лампочками всё, что угодно, но уже нельзя вернуться к переключателям. Изначально все лампочки выключены.
3. Представьте себе вращающийся диск, например DVD. У вас есть в распоряжении черная (Ч) и белая (Б) краски. На краю диска установлен небольшой датчик, который определяет цвет под ним и выдает результат в виде сигнала. Как бы вы раскрасили диск, чтобы было возможно определить направление вращения по показаниям датчика?
4. Один из ваших работников настаивает на том, чтобы ему платили золотом. У вас есть золотой слиток, стоимость которого соответствует семидневной зарплате этого сотрудника. Он уже размечен на 7 равных кусков. Если вам разрешили сделать всего два разреза слитка, а работнику нужно платить в конце каждого дня, как можно решить эту проблему? Дополнительно: как заплатить работнику за любое число дней и какое число минимальное разрезов для этого потребуется?
5. Самая сложная задача, если вы решите ее без подсказок, мое уважение. Условие (осторожно, решение тоже там) вот тут: https://habr.com/ru/post/250585/