簡體   English   中英

在每台計算機上生成相同的隨機排列

[英]generate same random permutation on every computer

我使用random_shuffle上的序列a 1000倍。 我想確保在每台計算機上最終的序列是相同的。 這看起來可能不合適,但我仍想實現這一目標。 srand(x)確保嗎?

結果shuffle有兩個不同的來源:沒有指定rand()的算法,因此不同的實現產生不同的數字序列; 並且沒有指定random_shuffle的算法,因此,即使使用相同的偽隨機數序列,不同的實現也會產生不同的結果。

您可以通過使用C ++ 11中的任何隨機數生成器來消除第一個問題; 它們都是詳細指定的,包括對於某些特殊化,需要10,000個值,這對調試它們的實現有很大幫助。 然而,改組沒有模擬。 特別是,沒有指定std::shuffle的算法,因此它不會給出可重現的結果。 你必須自己寫。 這並不困難(遠不如編寫引擎那么困難),只需做一點研究; 那里有很多討論供你開始。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM