Создайте статистически независимые потоки случайных чисел
создает один случайный поток, который использует универсальный алгоритм генератора псевдослучайного числа, заданный 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)
.
RandStream
| RandStream.list
| RandStream.setGlobalStream
| RandStream.getGlobalStream