2013-11-26 34 views
4

我正在測試一個算法,它有隨機輸入:作爲參考,輸入是一個浮點數序列,它與一些0和1一起壓縮(有相對較少的1秒)。在測試的每次運行中生成一個相同的概率分佈

最後,1的概率和位置都是隨機的。然而,這證明難以調試。

的概率根據狄利克雷分佈目前分佈:

import numpy.random as ran 

N=1024 
num_ones = 10 
probs = ran.dirichlet([1]*N) 
probs = num_ones*probs 
probs = probs 
probs = sorted(probs, reverse=True) 

我意識到這可能很幼稚,但我誠實地有不知道的隨機數是如何生成的。我每次運行測試時如何使這些概率相同?

+1

種子隨機數發生器?像'numpy.random.seed(42)'? – thegrinner

+0

你可能想檢查鏈接問題中的第二個答案,他建議使用'RandomState'而不是'.seed()'並在註釋中解釋。 – thegrinner

回答

3

呼叫

numpy.random.seed(x) 

其中x是一個常數,你將在每次運行程序時相同的隨機樣本。

3

您可以「隨機生成」隨機數生成器,使其在每次運行時生成相同的數字。

numpy.random.seed(123) # change the seed for different tests 
相關問題