Spec-Zone.ru › GNU Fortran 10

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

Описание:

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

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

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

Стандарт:

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

Класс:

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

Синтаксис:

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, RANDOM_INIT

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

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

Spec-Zone.ru

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