L'Ecuyer-CMRG の次のストリームの開始状態です。状態を 2^127 ステップ進めたものです。R の parallel::nextRNGStream() と同等です。
parallel::nextRNGStream()
この方法で始めたストリームは、実用上どれだけ長く使っても重なりません。そのため、並列処理の各タスク (ワーカー、またはシミュレーションの 1 回の反復) に、再現できる形で固有のストリームを割り当てられます。ストリームの中では、nextRNGSubStream で 2^76 ステップのサブストリームが得られます。
getRandomSeed が RNGkind({ kind: "L'Ecuyer-CMRG" }) の後に返した、7 個の整数からなる状態、または R の .Random.seed からコピーした状態。
RNGkind({ kind: "L'Ecuyer-CMRG" })
.Random.seed
同じ形式の新しい状態 (先頭の要素である種類コードは変わりません)。そのストリームから乱数を生成するには、これを setRandomSeed に渡します。
state が有効な L'Ecuyer-CMRG の状態でない場合は RangeError を投げます。
state
RNGkind({ kind: "L'Ecuyer-CMRG" });setSeed(1);const s1 = getRandomSeed();const s2 = nextRNGStream(s1); // R: s2 <- parallel::nextRNGStream(.Random.seed)setRandomSeed(s2);runif(2); // [0.31369782407981056, 0.9280126525616814] コピー
RNGkind({ kind: "L'Ecuyer-CMRG" });setSeed(1);const s1 = getRandomSeed();const s2 = nextRNGStream(s1); // R: s2 <- parallel::nextRNGStream(.Random.seed)setRandomSeed(s2);runif(2); // [0.31369782407981056, 0.9280126525616814]
L'Ecuyer-CMRG の次のストリームの開始状態です。状態を 2^127 ステップ進めたものです。R の
parallel::nextRNGStream()と同等です。この方法で始めたストリームは、実用上どれだけ長く使っても重なりません。そのため、並列処理の各タスク (ワーカー、またはシミュレーションの 1 回の反復) に、再現できる形で固有のストリームを割り当てられます。ストリームの中では、nextRNGSubStream で 2^76 ステップのサブストリームが得られます。