Создайте статистически независимые потоки случайных чисел
создает один случайный поток, который использует однородный алгоритм генератора псевдослучайных чисел, заданный s
= RandStream.create(gentype
)gentype
. RandStream.list
возвращает все возможные значения для gentype
или см. Создание и управление потоком случайных чисел для получения дополнительной информации об алгоритмах генератора. RandStream
функция является более краткой альтернативой, когда вам нужно создать один поток.
[
создает s1,s2,...
] = RandStream.create(gentype
,'NumStreams',n)n
потоки случайных чисел. Потоки независимы в псевдослучайном смысле. Потоки не обязательно независимы от потоков, созданных в другое время.
Примечание
Не все типы генераторов поддерживают несколько потоков. Используйте либо мультипликативный отставший генератор Фибоначчи ('mlfg6331_64'
) или комбинированный множественный рекурсивный генератор ('mrg32k3a'
) для создания нескольких потоков.
[___] = RandStream.create(
управляет созданием потока с помощью одной или нескольких gentype
,Name,Value
)Name,Value
пар.
Как правило, вы вызываете RandStream.create
один раз, чтобы создать несколько независимых потоков за один проход или в начале сеанса работы с MATLAB. Для примера можно создать три независимых потока при помощи [s1,s2,s3] = RandStream.create('mrg32k3a','NumStreams',3)
.
Кроме того, можно создать каждый поток из отдельного вызова RandStream.create
, но необходимо задать соответствующие значения для gentype
, 'NumStreams'
, 'Seed'
, и 'StreamIndices'
для обеспечения их независимости:
Задайте те же значения для gentype
, 'NumStreams'
, и 'Seed'
в каждом случае.
Задайте другое значение для 'StreamIndices'
каждый раз. Все значения должны быть между 1
и значение 'NumStreams'
.
Для примера создайте два независимых потока при помощи s1 = RandStream.create('mrg32k3a','NumStreams',5,'Seed',0,'StreamIndices',1)
и s2 = RandStream.create('mrg32k3a','NumStreams',5,'Seed',0,'StreamIndices',2)
.