Spec-Zone.ru › GNU Fortran 7

9.223 RANDOM_SEED — Инициализация последовательности псевдослучайных чисел

Описание:

Перезапускает или запрашивает состояние генератора псевдослучайных чисел, используемого в RANDOM_NUMBER.

Если RANDOM_SEED вызывается без аргументов, она инициализируется случайными данными, полученными из операционной системы.

В качестве расширения к стандарту Fortran, GFortran RANDOM_NUMBER поддерживает несколько потоков. Каждый поток в многопоточной программе имеет собственное значение семян. Когда RANDOM_SEED вызывается либо без аргументов, либо с аргументом PUT, заданное значение семян копируется как в главное значение семян, так и в значение семян текущего потока. Когда новый поток использует RANDOM_NUMBER в первый раз, значение семян копируется из главного значения семян и сдвигает на N * 2^{512} шагов, чтобы гарантировать, что поток случайных чисел не дублирует никакой другой поток в системе, где N — количество потоков, которые использовали RANDOM_NUMBER до этого момента во время выполнения программы.

Стандарт:

Fortran 95 и выше

Класс:

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

Синтаксис:

CALL RANDOM_SEED([SIZE, PUT, GET])

Аргументы:
SIZE (Необязательно) Должен быть скаляром и иметь тип стандартного INTEGER, со значением INTENT(OUT). Указывает минимальный размер массивов, используемых с аргументами PUT и GET.
PUT (Необязательно) Должен быть массивом типа стандартного INTEGER и ранга один. Он INTENT(IN) и размер массива должен быть больше или равен числу, возвращаемому аргументом SIZE.
GET (Необязательно) Должен быть массивом типа стандартного INTEGER и ранга один. Он INTENT(OUT) и размер массива должен быть больше или равен числу, возвращаемому аргументом SIZE.
Пример:
program test_random_seed
  implicit none
  integer, allocatable :: seed(:)
  integer :: n

  call random_seed(size = n)
  allocate(seed(n))
  call random_seed(get=seed)
  write (*, *) seed
end program test_random_seed
См. также:

RANDOM_NUMBER

Далее: RANGE, Предыдущее: RANDOM_NUMBER, Вверх: Встроенные процедуры [Содержание][Индекс]

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

Spec-Zone.ru

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