генерировать случайные числа, и выбирает алгоритм для использования.
Допустимые значения для
0 - По умолчанию для текущего
Диалекта языка. Этот алгоритм
3 в диалекте
-lang fb,
4
в диалекте
-lang qb и
1
в диалекте
-lang fblite.
1 - Используется функция
rand() из C runtime. Это даст
разные результаты в зависимости от платформы.
2 - Использует быстрая реализация. Это должно быть стабильным на
всех платформах и предоставляет 32-разрядную гранулярность, разумную степень
случайности.
3 - Используется алгоритм Mersenne Twister. Это должно быть
стабильным на всех платформах, предоставляет 32-разрядную гранулярность и
дает высокую степень случайности.
4 - Использует функцию, которая должна дать ту же
последовательность случайных чисел, как в QBASIC. Это должно быть стабильным
на всех платформах и обеспечивает 24-битную точность, с низкой степенью
случайности.
5 - На Win32 и Linux, используются возможности системы (Win32 Crypto API, Linux /dev/urandom)
, предоставляя криптографические случайные числа. Если эти системы
API-интерфейсы отсутствуют, вместо него используется алгоритм
3.
Для любого заданного числа, каждый алгоритм будет производить конкретную,
детерминированную последовательность чисел для этого числа. Если вы хотите,
чтобы каждый вызов
Randomize производил различные
последовательности чисел, следует использовать значение, которое не является
вполне предсказуемо - например, значение, возвращаемое из
Timer.
Опуская параметр
seed , будет использоваться значение,
основанное на
Timer.
Примечание: используя значение
Timer
непосредственно в качестве параметра будет производить тот же семя, если
использовать функцию более одного раза в ту же секунду. Как правило, не
стоит вызывать Randomize дважды, так как вторая последовательность не будет
более случайной, чем первая. В большинстве случаев, Mersenne twister должен
обеспечить достаточную случайную последовательность чисел, не требуя вызов
Randomize между вызовами
Rnd.
При вызове
Randomize с QB совместимым алгоритмом, часть
старого случайного числа сохраняется. Это означает, что если вы вызываете
Randomize
несколько раз с тем же начальным значением, вы не получите ту же
последовательность каждый раз. Чтобы получить определенную
последовательность в QB режиме совместимости, установите
seed при вызове
Rnd с
отрицательным параметром.