1
我尋找高性能的Python解決以下問題:有效地產生大陣列偏置硬幣的翻轉
翻轉偏置硬幣n倍,使得磁頭概率(= 1)是 等於給定概率p。 n以百萬計。
天真的Python實現是顯而易見的,但我懷疑可以有一個非常有效的基於numpy
的解決方案。
我尋找高性能的Python解決以下問題:有效地產生大陣列偏置硬幣的翻轉
翻轉偏置硬幣n倍,使得磁頭概率(= 1)是 等於給定概率p。 n以百萬計。
天真的Python實現是顯而易見的,但我懷疑可以有一個非常有效的基於numpy
的解決方案。
您正在尋找NumPy的內置np.random.choice
-
np.random.choice([1,0],n,p=[p,1-p])
讓我們驗證 -
In [120]: p = 0.8
In [121]: n = 100000
In [122]: (np.random.choice([1,0],n,p=[p,1-p])==1).mean()
Out[122]: 0.80003999999999997
小艾高效太 -
In [123]: %timeit np.random.choice([1,0],n,p=[p,1-p])
100 loops, best of 3: 4 ms per loop
的可能重複[我怎樣模擬python中的偏向硬幣翻轉?](http://stackoverflow.com/questions/477237/how-do-i-simulate-flip-of-bi ased-coin-in-python) –
你對發行有任何偏好嗎?制服,二項式等? – Divakar