2017-03-16 7 views
0

私は、matlabで乱数のセットを作成し、これが「グローバルストリーム」にどのように関係するかを明確にすることを探しています。matlabグローバルストリーム:生成された数値セット間の相関関係はありますか?

私はコードを再度実行する必要があり、私は私の結果の再現性のための世界的な流れを設定することができることを知っている:

s = RandStream('mt19937ar','Seed',7); 
RandStream.setGlobalStream(s); 
A = rand(1,10); 

私はこれを実行するたびに、Aは同じです。たとえば、

私はisequal(A、B)が真であることがわかります。

今、私の質問は、以下に関係する、

s = RandStream('mt19937ar','Seed',7); 
RandStream.setGlobalStream(s); 
A = rand(1,10); 
B = rand(1,10); 

私はこれを実行すると、AとBは、数字の異なるセットです。私はそれらをの独立したセットにすることができますか、またはそれらの間にいくつかの相関関係はありますか? AとBのより強い独立性を確保したいのであれば、Aを作成した後ではなく、Bを作成する前に、新しい異なるglobablストリームを作成する必要がありますか?例えば、

sA = RandStream('mt19937ar','Seed',7); 
RandStream.setGlobalStream(sA); 
A = rand(1,10); 

sB = RandStream('mt19937ar','Seed',3); 
RandStream.setGlobalStream(sB); 
B = rand(1,10); 

答えて

0

MATLABは「既知」が、複雑な関数から乱数を生成、

すべての擬似乱数は決定的アルゴリズムに基づいており、すべてが十分に特定の統計を失敗します。ランダム性のテスト

シード番号を変更すると(これはrng(your_desired_seed_number)でも可能です)、別のものを使用するだけです前回の乱数列とは無関係ではない機能の一部(少なくとも私はそのように考えて)、(それは数学の質問です)

が、私は最大の独立した乱数を持っている別の発電機を使用することをお勧め、

rng(5,'twister'); % you could also use randstream instead of rng 
A=rand(1,10); 
rng(3,'combRecursive'); 
B=rand(1,10); 
関連する問題