Если вы ограничиваете себя сжиженным газом полного цикла, то ответ прост, по определению это просто m . м
Чтобы найти период не полного цикла LCN PRNG для данного начального числа, вам просто нужно посчитать количество итераций PRNG, пока он не сгенерирует начальное значение еще раз.
Со ссылочной страницы википедии :
Продолжительность периода
Период общего LCG составляет не более м , а для некоторых выборов гораздо меньше. При условии, что с отлично от нуля, LCG будет иметь полный период для всех начальных значений, если и только если :
Хотя LCG способны генерировать приличные псевдослучайные числа , это чрезвычайно чувствительно к выбору параметров с , м и a .
Исторически неудачный выбор приводил к неэффективному внедрению LCG. Особенно показательным примером этого является RANDU, который широко использовался в начале 1970-х годов и привел ко многим результатам, которые в настоящее время подвергаются сомнению из-за использования этого плохого LCG.
Почему вы хотите использовать генератор полного цикла
Если вы не ограничиваете себя PRNG с полным циклом LCG, тогда вы берете на себя огромный риск .
Если вы не знаете, что данный LCG является полным циклом, то вы можете получить генератор с произвольным числом взаимно отличающихся друг от друга последовательностей, некоторые из которых могут быть смущающе маленькими и иметь ужасающую случайность, возможно, даже хуже, чем печально известный генератор RANDU ,
Вы действительно не хотите проверять каждое возможное начальное значение, чтобы убедиться, что оно генерирует последовательность, которая является достаточно длинной для вашего приложения.
дальнейшее чтение
Чтобы получить отличную информацию о генераторах псевдослучайных чисел, я настоятельно рекомендую вам прочитать главу « Числовые рецепты», посвященную случайным числам.