JavaScript での乱数ジェネレーターのシード
JavaScript の組み込み Math.random() には、乱数ジェネレーターをシードする機能がありません。乱数ジェネレータ。つまり、所定の乱数シーケンスを生成するために特定の値で初期化することはできません。 numbers.
Math.random() を使用してシードすることはできませんが、シード可能な疑似乱数を生成するためのカスタム関数を提供する外部ライブラリと実装があります。以下にいくつかのオプションを示します。
擬似乱数ジェネレータ (PRNG) 関数
いくつかのコンパクトで効率的な PRNG 関数を JavaScript で実装でき、高品質の乱数を提供します。 1 つ以上の 32 ビット数値をシードできます。
シード初期化
生成された数値のランダム性に影響を与える可能性のある低エントロピー シードを避けるために、PRNG を適切に初期化することが重要です。以下に 2 つの一般的な方法を示します。
PRNGアルゴリズム
これは、128 ビット状態を持ち、0 ~ 1 の範囲の乱数を生成する sfc32 (Simple Fast Counter) アルゴリズムの例です。
function sfc32(a, b, c, d) { return function() { a |= 0; b |= 0; c |= 0; d |= 0; let t = (a + b | 0) + d | 0; d = d + 1 | 0; a = b ^ b >>> 9; b = c + (c << 3) | 0; c = (c << 21 | c >>> 11); c = c + t | 0; return (t >>> 0) / 4294967296; } }
以上がJavaScript で乱数ジェネレーターをシードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。