変更する種類。省略した項目は変更されません。既定: 何も変更しない。
呼び出し前に有効だった種類 (オプションなしで呼んだ場合は現在の種類)。R と同じです。
RNGkind(); // { kind: "Mersenne-Twister", normalKind: "Inversion", sampleKind: "Rejection" }
RNGkind({ kind: "L'Ecuyer-CMRG" });
setSeed(1);
runif(2); // [0.6775328286287442, 0.4273457228876442]
// R: set.seed(1, kind = "L'Ecuyer-CMRG"); runif(2)
RNGkind({ kind: "default", sampleKind: "Rounding" });
setSeed(1);
sampleInt(10, { size: 3 }); // [2, 3, 4]
// R: set.seed(1, kind = "default", sample.kind = "Rounding"); sample.int(10, 3) - 1
乱数生成の種類を読み取るか変更します。R の
RNGkind()と同等です。kind: "Mersenne-Twister"(または"default"): R の既定の乱数生成器です。kind: "L'Ecuyer-CMRG": L'Ecuyer の MRG32k3a です。並列処理向けに、互いに独立したストリームを使えます (nextRNGStream、nextRNGSubStream)。sampleKind: "Rounding": 添字をfloor(n * u)で抽出します。これは、3.6.0 より前の R のsample、sampleInt、rwilcoxと同じ方法です (n が大きいとわずかに一様でなくなります。R はこれを警告しますが、rStats.js は警告しません)。"Rejection"(または"default") は、3.6.0 以降の R の既定です。ほかの関数には影響しません。R と同じく、
kindを変更すると、現在の生成器の次の一様乱数から、新しい生成器の種が決まります ( 種類が変わらない場合も同じです)。そのため、ストリームは最後の setSeed から再現できます。sampleKindだけを変更した場合は、ストリームは保たれます。その後で setSeed を呼ぶと、新しい生成器に直接種を与えます。RNGkind({ kind }); setSeed(seed)は、R のset.seed(seed, kind)に当たります。また、R と同じく、種類を指定する呼び出しは、まだ種を与えられていない生成器に、(最初の乱数を抽出するときと同じく) 時刻から種を与えます。種類を指定しない呼び出しは、種類を読み取るだけです。