2

重複の可能性:
疑似乱数ジェネレーターのカスタムシードを設定する方法

私はmatlabを使用していくつかのシミュレーションを構築しており、rand関数を使用しています。

毎回同じ結果を得たいと思います。rand関数のシードを設定する必要がある場所を読みました。使ってみました

s = RandStream('mcg16807', 'seed', 0)
RandStream.setGlobalStream(s);

しかし、それは機能しませんでした。間違えましたか?

>> s = RandStream('mcg16807', 'seed', 5)
>> RandStream.setGlobalStream(s);
>> rand

ans = 

    0.5645

>> rand
ans = 

    0.3024

>> rand
ans = 

    0.7520
4

1 に答える 1

0

RandStream.setGlobalStream最初からやり直して同じ乱数のセットを取得する場合は、次のように呼び出す必要があります。

>> s = RandStream('mcg16807', 'seed', 5)
>> RandStream.setGlobalStream(s);
>> rand

ans = 

    0.5645

>> rand
ans = 

    0.3024

>> s = RandStream('mcg16807', 'seed', 5)
>> RandStream.setGlobalStream(s);
>> rand

ans = 

    0.5645

>> rand
ans = 

    0.3024

私は通常setGlobalStream、毎回同じ答えを返したいスクリプトの最初に 1 回だけ呼び出します。によって描かれる数字randはそれぞれランダムですが、毎回同じ乱数のセットです。

于 2012-09-15T12:34:40.350 に答える