Axiom Справочник языка

Справочник языка

RANDOMIZE

Последовательность RND воспроизводима только тогда, когда генератор стартует из одного и того же состояния. Задать это состояние заново позволяет RANDOMIZE: с числовым аргументом он заменяет зерно генератора, без аргумента оставляет текущее состояние нетронутым.

Синтаксис

RANDOMIZE
RANDOMIZE <начальное значение>

Обе формы работают в консольных и графических программах и действуют на генератор текущей среды исполнения; собственного значения оператор не возвращает.

Начальное значение

Зерно должно иметь тип INTEGER или LONG, но укладываться в диапазон INTEGER: от −2147483648 до 2147483647. Отрицательное зерно допустимо. Переданное число заменяет состояние генератора, поэтому следующие вызовы RND начинают новую последовательность; форма без параметра состояние не меняет.

Воспроизводимость

Повторный вызов с тем же зерном повторяет последовательность в текущей среде. Совпадение конкретных чисел между версиями .NET договором языка не является.

Диагностика

Несовместимый тип параметра отклоняется при компиляции, а LONG вне диапазона INTEGER вызывает MB3008.

Пример

Два запуска с одним зерном дают одно и то же первое число:

RANDOMIZE 42
DIM first AS DOUBLE = RND()
RANDOMIZE 42
PRINT RND() = first

Ожидаемый вывод:

TRUE

Переменная first сохраняет первое значение до повторной инициализации, поэтому сравнение подтверждает, что после второго RANDOMIZE генератор начал ту же последовательность.

См. также

RND