Не очень надёжная схема. Если период кратен 2, то оба генератора будут синфазны, и совпадение просто не будет обнаружено.
Совершенно надёжная. Пример: "генератор" с периодом 4 вида
Запускаем с начальным значением 0
(номер испытания: выход первого генератора; выходы двух подряд запусков второго генератора)
1: 1; 1,2
2: 2; 3,0
3: 3; 1,2
4: 0; 3,0 - первое совпадение, запоминаем N=4
5: 1; 1,2
6: 2; 3,0
7: 3; 1,2
8: 0; 3,0 - второе совпадение, период равен 8-4=4
Синфазности тут в принципе быть не может, она сбивается на каждом шаге, поскольку второй запускается по два раза, и разность позиций в цикле всякий раз растёт на единицу. Апериодика пропускается, поскольку в апериодической последовательности не может быть тех значений, которые входят в цикл (естественно, это для генераторов вида
- линейных конгруэнтных, "середины квадрата" и другие, если генератор зависит от двух или более предыдущих, как генератор Фибоначчи, то проверка усложняется)
В случае распадения на несколько циклов находится один из них, способа отыскать все без перебора не знаю.