Spec-Zone.ru › GNU Fortran 6

9.215 RANDOM_NUMBER — Псевдослучайное число

Описание:

Возвращает одно псевдослучайное число или массив псевдослучайных чисел из равномерного распределения в диапазоне 0 \leq x < 1.

Библиотека времени выполнения реализует генератор псевдослучайных чисел KISS (Keep It Simple Stupid) Джорджа Марсалья. Этот генератор объединяет:

  1. Генератор конгруэнтных чисел x(n) = 69069 \cdot x(n-1) + 1327217885 с периодом 2^{32},
  2. Генератор сдвигающего регистра с тремя сдвигами с периодом 2^{32} - 1,
  3. Два 16-битных генератора умножения с переносом с периодом 597273182964842497 > 2^{59}.

Общий период превышает 2^{123}.

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

Стандарт:

Fortran 95 и более поздние версии

Класс:

Подпрограмма

Синтаксис:

RANDOM_NUMBER(HARVEST)

Аргументы:
HARVEST Должен быть скаляром или массивом типа REAL.
Пример:
program test_random_number
  REAL :: r(5,5)
  CALL init_random_seed()         ! see example of RANDOM_SEED
  CALL RANDOM_NUMBER(r)
end program
См. также:

RANDOM_SEED

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-6.4.0/gfortran/RANDOM_005fNUMBER.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API