Spec-Zone.ru › GNU Fortran 13

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

Описание:

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

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

В качестве расширения к стандарту Fortran, GFortran RANDOM_NUMBER поддерживает несколько потоков. Каждый поток в многопоточной программе имеет собственное значение начального числа. Когда RANDOM_SEED вызывается либо без аргументов, либо с аргументом PUT, заданное начальное число копируется как в общее начальное число, так и в начальное число текущего потока. Когда новый поток впервые использует RANDOM_NUMBER, начальное число копируется из общего начального числа и сдвигается на 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 — Инициализация генератора псевдослучайных чисел

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

Spec-Zone.ru

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