Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
В двух вариантах ответов можно зашифровать, например, «четный» и «нечетный». Далее, примем красный цвет равный 1, а синий будет 0. Первый гном суммирует цвета шапок всех остальных, используя этот код. И результат сообщает вслух (например, красный – «четный», «синий» — нечетный – у гномов есть вся ночь, чтобы договориться об этом).Отсюда.
Второй гном, услышав шифр, так же суммирует всех стоящих впереди. Если результат совпадает с тем, что сказал первый гном, значит цвет его шапки не повлиял на общую сумму. Стало быть, это «ноль» — синий. Если результат изменился, значит это «единица» — красный.
Третий и последующий гномы считают не только тех, кого видят впереди, но и ответы предыдущих гномов. И так же сравнивают результат с шифром самого первого гнома, вычисляя разницу (цвет своей шапки).
Этот способ позволяет выжить N-1 гному. Общее количество гномов при этом не имеет значения, задача решается для любого N. Самый первый гном не обязательно погибает: с вероятностью 50% шифр может совпасть с цветом его шапки и тогда он останется жив и здоров.
Спасите гномиков от ужасного, но справедливого Троля