Jump to content

Полный цикл

(Перенаправлен из полного цикла )

В генераторе псевдордомов (PRNG) полный цикл или полный период - это поведение PRNG над его набором действительных состояний. В частности, PRNG, как говорят, имеет полный цикл, если для любого достоверного состояния семян PRNG пересекает каждое действительное состояние, прежде чем вернуться в состояние семян, то есть период равен кардинальности пространства штатов.

Ограничения на параметры PRNG, чтобы он обладал полным циклом, известны только для определенных типов PRNG, таких как линейные конгруэнтные генераторы и регистры смены линейной обратной связи . Не существует общего метода определения того, является ли алгоритм PRNG полным циклом, не хватает исчерпания пространства состояний, что может быть экспоненциально большим по сравнению с размером внутреннего состояния алгоритма.

Пример 1 (в C/C ++)

[ редактировать ]

Учитывая случайное число семян, которое больше или равно нулю, общий размер выборки превышает 1, и увеличение доклада к общему размеру выборки может быть сгенерирован с помощью следующей логики. Каждое неотрицательное число меньше, чем размер выборки, происходит ровно один раз.

unsigned int seed = 0;
unsigned int sample_size = 3000;
unsigned int generated_number = seed % sample_size;
unsigned int increment = 7;

for (unsigned int iterator = 0; iterator < sample_size; ++iterator)
{
    generated_number = (generated_number + increment) % sample_size;
}

Пример 1 (в Python)

[ редактировать ]
# Generator that goes through a full cycle
def cycle(seed: int, sample_size: int, increment: int):
    nb = seed
    for i in range(sample_size):
        nb = (nb + increment) % sample_size
        yield nb

# Example values
seed = 17
sample_size = 100
increment = 13

# Print all the numbers
print(list(cycle(seed, sample_size, increment)))

# Verify that all numbers were generated correctly
assert set(cycle(seed, sample_size, increment)) == set(range(sample_size))

Смотрите также

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5a5dea1eef47c46ace0d38a065c8a1fe__1653333540
URL1:https://arc.ask3.ru/arc/aa/5a/fe/5a5dea1eef47c46ace0d38a065c8a1fe.html
Заголовок, (Title) документа по адресу, URL1:
Full cycle - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)