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