В одной тюрьме сидят в одиночных камерах 100 узников. Однажды их собрали всех вместе и сказали им: "Вот комната, в которой есть лампочка и выключатель. Мы будем по-одному водить вас в эту комнату и вы сможете увидеть включена или выключена эта лампочка, после чего вы можете либо оставить её, как есть, либо включить/выключить её. Водить вас будем в любом порядке (возможно, что и по нескольку раз каждого). Когда кто-то из вас решит, что он может точно сказать, что в этой комнате уже побывали все 100 человек, он может о том сказать тюремщикам. Если он ошибется - вас всех расстреляют. Если нет - вас всех отпустят. А теперь у вас есть час, чтобы договориться друг с другом, как вы будете включать/выключать эту лампочку"
Итак, есть 100 камер. В каждой сидит по узнику. По одному и в абсолютно любом порядке их приводят в эту комнату, где они могут увидеть состояние лампочки, а также переключить её, если они того хотят (могут сто раз подряд привести одного и того же человека - такое тоже возможно). Какой алгоритм им нужно разработать так, чтобы в какой-то момент кто-то из них смог точно сказать, что в комнате уже побывали все 100 человек. |