私は 300 の物から選ぶために約 1 億個の乱数を生成しています。それぞれ 10 回選択する 1,000 万の独立したインスタンス (異なるシード) を持つように設定する必要があります。目標は、各アイテムがほぼ同じ回数選択されるように、集計結果の不一致を非常に低くすることです。
問題は通常の prng にあり、一部の数字が他の数字よりも多く選択されます。(lcg と mersenne twister を試しました) 最も選ばれたものと最も選ばれなかったものとの差は、数千から 1 万になる可能性があります)均一な結果。これは、期間が非常に長く、おそらく 1 億では十分ではないためだと思います。理論的には、十分な数を選択すれば、結果は均一になるはずです。(期待値で落ち着くはず)
準乱数ジェネレーターである Sobol に切り替えたところ、1 インスタンスから 1 億のテストではるかに良い結果が得られました。(最多採点と最少採点の差は5程度) しかし、1000万回ずつ10回に分けると統一性がなくなり、prngと同様の結果になりました。Sobol はシーケンスに非常に敏感なようです。ランダムに先にスキップすると、均一性が低下します。
1,000 万の独立したインスタンスを組み合わせた場合でも、準ランダムのような低い不一致を維持できるランダム ジェネレーターのクラスはありますか? それとも理論上不可能なのでしょうか?私が今考えることができる 1 つの解決策は、1,000 万のインスタンス間で共有される 1 つの Sobol ジェネレーターを使用することです。これは事実上、1 つのインスタンスからの 1 億のテストと同じです。