Tookser, пардон, вчера начал считать гномов и уснул.
При способе (поостерегусь называть его алгоритмом) с разбиением на классы эквивалентности знание своей позиции, кажется, необходимо. Ведь без этого знания гномы не различат последовательности
и
, а они входят в разные классы. Я предложил
, то есть совпадение последовательностей с некоторого члена без сдвига.
Тогда ставится вопрос: может ли гном за время (есть ли смысл тут вообще говорить о времени?) до момента озвучивания ответа сравнить бесконечное (несчётное) количество последовательностей? Если да, то всё в порядке.
Вот пример. Предположим, что количество единиц (белых шапок) конечно, но гномы об этом не знают. На своём совещании они выделили все последовательности с конечным количеством единиц в один класс и выбрали эталонную последовательность из одних нулей (допустим). После построения каждый гном видит впереди себя беспросветную черноту, начитающуюся с некоторого места, и диагностирует "нулевой" класс эквивалентности. При ответе каждый говорит, что у него чёрная шапка и ошибается действительно лишь конечное число гномов. То же самое и для любого другого распределения шапок.
Но процессы выбора и диагностирования нельзя описать конечным набором процедур, сводящимся к конечному числу элементарных сравнений двух битов. Впрочем, тут я могу сильно ошибаться, потому, что эти дела плохо знаю. Но интуитивно чувствую, что дела у гномов плохи
Ведь, скажем, если для некоторого множества установлена его биекция с множеством точек на отрезке, то бесполезно придумывать какой-то хитроумный способ его пересчитать.
Чуть оффтопично: интересно само отношение эквивалентности. Ведь мы можем (после предварительной факторизации множества последовательностей по единичным хвостам) установить его биекцию с множеством действительных чисел на единичном отрезке. То есть считать два числа эквивалентными, если их "хорошие" двоичные записи отличаются в конечном числе позиций. Интересно, что это за разбиение?