2

それぞれが疑似乱数ジェネレーター (PRNG) を依存関係として使用する 2 つのクラスがあり、両方に同じ PRNG インスタンスを渡すと、PRNG アルゴリズムが損なわれますか? たとえば、以下のコードでは、各クラスは同じジェネレーターを共有しているため、while ループで同じシーケンスの乱数を 1 つおきに使用することになります。各クラスが個別のインスタンスを取得する方が適切ですか、それとも問題ですか?

Random rand = new Random();
RandomBool randBool = new RandomBool(rand);
RandomFirstName randFirstName = new RandomBool(rand);

while(<condition>)
{
    bool myBool = randBool.Next();
    string myName = randFirstName.Next();
    Console.WriteLine(myName + " " + myBool.ToString());
}
4

3 に答える 3

0

分散削減のための相関誘導戦略のような凝ったことを計画している場合は、レプリケーション間でランダム性を同期する必要があり、PRNG の個別のインスタンスを使用するとはるかに簡単になります。しかし、単純なサンプリングを行うだけであれば、複数の目的で同じ PRNG を使用しても問題ありません。

于 2013-10-20T20:40:52.283 に答える