主要内容

이번역페이지는최신내용을담고있지않습니다。최신내용을영문으로보려면여기를클릭하십시오。

rng

난수생성기제어

설명

예제

rng (种子는MATLAB®난수생성기의시드값을지정합니다。예를들어,rng (1)은시드값1을사용하여메르센트위스터생성기를초기화합니다。

rng함수는전역스트림을제어하여兰德兰迪randnrandperm함수가난수열을생성하는방법을결정합니다。전역스트림과별도로하나이상의독립스트림을만들려면RandStreamRandStream.create를참조하십시오。

예제

rng (种子发电机는사용할난수생성기유형도지정합니다。예를들어,rng (0, ' philox ')는시드값0을사용하여Philox 4 x32난수생성기를초기화합니다。

예제

s = rng는구조체年代에현재난수생성기설정을반환합니다。

예제

모두축소

난수생성기를디폴트시드값(0)및알고리즘(메르센트위스터)으로설정한다음생성기설정을저장합니다。

rng (“默认”) s = RNG
s =结构体字段:类型:'twister' Seed: 0状态:[625x1 uint32]

1 0과사이의난수값으로구성된1×5행벡터로만듭니다。

x =兰德(1、5)
x =1×50.8147 0.9058 0.1270 0.9134 0.6324

생성기시드값과알고리즘을변경하고새로운확률행벡터를만듭니다。

rng (1,“philox”) xnew = rand(1,5)
xnew =1×50.5361 0.2319 0.7753 0.2390 0.0036

이제원래생성기설정을복원하고확률벡터를만듭니다。결과는디폴트생성기로만든원본행벡터x와일치합니다。

Rng (s) xold = rand(1,5)
xold =1×50.8147 0.9058 0.1270 0.9134 0.6324

입력인수

모두축소

생성기초기화,로다음옵션중하나로지정됩니다。

설명
0 시드값0을사용하여생성기를초기화합니다。
양의정수 지정된양의정수시드값(예:1)을사용하여생성기를초기화합니다。
“默认” 시드값0을사용하여메르센트위스터생성기를초기화합니다。각MATLAB세션시작시의디폴트설정입니다。
“洗牌” 현재시간을기준으로생성기를초기화하여rng를호출할때마다다른난수열을생성합니다。
구조체 类型种子状态필드가있는구조체에포함된설정을기반으로생성기를초기화합니다。

난수알고리즘으로,다음표에나와있는옵션중하나로지정됩니다。생성기알고리즘에대한자세한내용은난수스트림을만들고제어하기항목을참조하십시오。

생성기이름 생성기키워드
“旋风” 메르센트위스터(梅森素数捻线机) mt19937ar
“simdTwister” SIMD기반고속메르센트위스터(SIMD-Oriented快速梅森素数捻线机) dsfmt19937
“combRecursive” 결합다중재귀적(结合多个递归) mrg32k3a
“multFibonacci” 시차피보나치수열(乘法滞后斐波那契) mlfg6331_64
“philox” 10회라운드의Philox 4 x32생성기 philox4x32_10
“threefry” 20회라운드의Threefry 4 x64생성기 threefry4x64_20

4.0및5.0 MATLAB버전에서사용되는레거시생성기의경우다음옵션중하나를사용합니다。

생성기이름 생성기키워드
v4的 레거시MATLAB버전4.0생성기 mcg16807
“v5uniform” 5.0균레거시MATLAB버전일생성기 swb2712
“v5normal” 5.0레거시MATLAB버전일반생성기 shr3cong

  • 병렬처리시rng(“洗牌”)은현재시간을기준으로난수생성기의시드값을지정하므로독립스트림을보장하기위해서는다른워커에서이함수를사용해난수스트림을설정하지않아야합니다。parfor작업내부와같이동시에여러워커에게명령을보낼경우특히그렇습니다。워커에있는여러독립스트림의경우디폴트동작을사용하거나RandStream을통해각워커에고유한서브스트림을사용하는것이좋습니다。

  • 兰德또는randn함수대신rng“种子”“状态”또는“旋风”입력값을사용하려면兰德구권장되지않는문과randn구문대체하기항목을참조하십시오。

확장기능

R2011a에개발됨