9.226 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
- См. также:
Далее: RANGE, Предыдущее: RANDOM_NUMBER, Вверх: Встроенные процедуры [Содержание][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-9.3.0/gfortran/RANDOM_005fSEED.html