Гномы и людоеды

Вот такая кровожадная задачка.

Людоеды поймали несколько гномов и обещали наутро часть из них съесть. Чтобы выбрать жертв они собираются выстроить всех гномов в колонну, так чтобы первый видел всех, кроме себя, второй всех, кроме себя и первого и т.д., и надеть всем гномам шапки — белые и чёрные. После этого спросить всех по очереди, начиная с первого, какая у него на голове шапка. Если ответ будет правильный, гнома отпустят, если нет — съедят. Как гномам надо договориться, чтобы удалось спастись максимальному числу из них?

Решение

Первый гном должен сосчитать количество белых шапок, которые он видит и, если оно чётное, сказать «белая», если нечетное — «чёрная». Тогда все остальные гномы, услышав предыдущие ответы, смогут по очереди вычислить свой цвет и спасутся. Первого съедят в вероятностью 50%.