2013-06-26 4 views
7

分散したアプリケーションネットワークに同じ乱数シーケンスを送る必要があります。システム間の確定的な乱数生成

このようなシーケンスはかなり長いかもしれないので、私はちょうど(ランダムに生成された)集中化されたシードの初期化番号と目的のシーケンスの長さを送ることを考えていました。

受信側ハンドのすべてのコンポーネントが同じ.NETバージョンを使用するとすれば、それは私のすべてのノードで同じランダムデータを生成する実行可能なソリューションでしょうか?

+1

は、ポインタのためhttp://stackoverflow.com/questions/17094189/crossplatform-random-number-generator – drch

+0

感謝を参照してください。私は受け入れられたとマークすることができるようにこれを答えとして書いてください。 – Andrea

答えて

9

すべての環境で同じバージョンの.NETを使用していると仮定して、ランダム(intシード)のシードを配布して同じシーケンスを再作成することができます。

Remarks on System.Random @ MSDN

コーラーランダムクラスは、.NET Frameworkの主要な バージョン間で同じまますることは保証されません で乱数ジェネレータの実装に注意。結果として、アプリケーションコード は、同じシードが異なるバージョンの.NET Frameworkで同じ 疑似ランダムシーケンスになることを想定するべきではありません。

フレームワークのバージョンが変更される場合や、新しいバージョンの使用を開始した後で古いシーケンスを再作成する必要がある場合は、独自のランダム実装を作成することができます。

ポインタのため、この質問の答えを参照してください。Crossplatform random number generator

1

シード付きのRandomクラスを使用することも、サービス指向アーキテクチャを使用することもできます。

Randomを種と初期化すると、同一の配列が生成される。

+2

これまでに議論されてきた主要な警告があります。 drchの答えを見てください。 – jerry