3

非常に単純なプログラム (シングル スレッド) を使用して、多数のランダム サンプル生成を行います。このために、numpyランダム関数 (normalまたは などrandom_sample) のいくつかの呼び出しを使用しています。1 回のランダム呼び出しの結果によって、別のランダム関数が呼び出される回数が決まる場合があります。

今、最初のs.thにシードを設定したいと思います。プログラムを複数回実行しても同じ結果が得られるはずです。このために、numpyクラスのインスタンスを使用していますRandomState。最初はそうなんですが、いつの間にか結果が違ってきて、不思議に思っています。

同時実行性がないため、関数の線形呼び出しがあり、他の乱数ジェネレーターが関与していないため、すべてを正しく実行している場合、なぜ機能しないのですか?

4

2 に答える 2

5

わかりました、デビッドは正しかったです。numpy の PRNG は正しく機能します。私が作成したすべての最小限の例では、想定どおりに機能しました。

私の問題は別の問題でしたが、最終的に解決しました。決定論的アルゴリズム内でディクショナリをループしないでください。イテレータを取得するために .item() 関数を呼び出すときに、Python がアイテムを任意に並べ替えるようです。

したがって、これがこの種のエラーであったことにそれほど失望することはありません。これは、再現可能なシミュレーションを行う際に何を考えるべきかを思い出させるのに役立つからです。

于 2013-04-30T09:24:03.230 に答える