2013-06-26 59 views
7

我需要將相同的隨機數序列發送到分佈式應用程序網絡。跨系統的確定性隨機數生成

由於這樣的序列可能相當長,我只是想發送一個(隨機生成的)集中種子初始化號碼和所需序列的長度。

鑑於接收方上的每個組件都將使用相同的.NET版本,那麼這將是一個可行的解決方案,可以在我的所有節點上生成相同的隨機數據嗎?

+1

見http://stackoverflow.com/questions/17094189/crossplatform-random-number-generator – drch

+0

感謝您的指針。您是否願意將此作爲答案來撰寫,以便我可以將其標記爲已接受? – Andrea

回答

9

假定您在所有環境中都使用相同版本的.NET,您應該能夠爲Random(int seed)分發種子並重新創建相同的序列。

Remarks on System.Random @ MSDN

注呼叫者隨機數發生器的 實施Random類是不能保證各主要 版本的.NET框架保持不變。因此,您的應用程序代碼 不應該假定在不同版本的.NET Framework中相同的種子將導致相同的 僞隨機序列。

如果您可以看到框架版本會發生變化的情況,或者您開始​​使用新版本後可能需要重新創建舊序列,那麼您需要創建自己的隨機實現。

看到這個問題的答案爲指針:Crossplatform random number generator

1

您可以將Random類用於種子或使用面向服務的體系結構。

Random用種子初始化時會產生相同的序列。

+2

有一個重要的警告,這已經在SO之前討論過。見drch的答案。 – jerry