Я использую метод мультипликативного датчика, то есть следующее число ищется как
![$x_{i+1}=(ax_i+b)\%M$ $x_{i+1}=(ax_i+b)\%M$](https://dxdy-03.korotkov.co.uk/f/e/7/0/e7043948e1115c652bed0af3035ca87282.png)
. У генератора есть периодическая часть, до которой должна идти апериодическая часть. У моего генератора получается нулевая апериодическая часть, хотя такого быть по идее не может. Вот алгоритм, который я использую:
1)В цикле генерирую новое число по формуле;
2)Проверяю, есть ли это число в списке уже сгенерированных чисел. Если нет, то добавляю это число в список сгенерированных чисел. Если да, то выхожу из цикла;
Я думал, что будет как-то так:
1 3 2 6 7 9 0 2 6 7 9 0 2 6 7 9 0
То есть сначала идёт часть, которая не повторяется, а потом всё начинает повторяться с одним и тем же периодом. На деле получается так:
2 6 7 9 0 2 6 7 9 0 2 6 7 9 0
То есть всегда, при любых
![$a$ $a$](https://dxdy-01.korotkov.co.uk/f/4/4/b/44bc9d542a92714cac84e01cbbb7fd6182.png)
,
![$b$ $b$](https://dxdy-01.korotkov.co.uk/f/4/b/d/4bdc8d9bcfb35e1c9bfb51fc69687dfc82.png)
и
![$M$ $M$](https://dxdy-04.korotkov.co.uk/f/f/b/9/fb97d38bcc19230b0acd442e17db879c82.png)
я получаю генератор без апериодической части. С чем это может быть связано?