嘗試的問題:兩個骰子中的一個骰子比第三個骰子具有更高的值的概率。Python隨機不像
問題:由於某些原因,當我使用從蟒的random
模塊(特別是樣品的方法),我結束了從噹噹我使用numpy的不同的(和不正確的)的結果。我已將結果列入底部。重複執行代碼會得到類似的結果。任何想法,爲什麼random.sample
方法和numpy.random.random_integers
有不同的結果,即使它們具有相同的功能?
import numpy as np
import random
random_list = []
numpy_list = []
n= 500
np_wins = 0
rand_wins = 0
for i in range(n):
rolls = random.sample(range(1,7), 3)
rand_wins += any(rolls[0] < roll for roll in rolls)
rolls = np.random.random_integers(1, 6, 3)
np_wins += any(rolls[0] < roll for roll in rolls)
print "numpy : {}".format(np_wins/(n * 1.0))
print "random : {}".format(rand_wins/(n * 1.0))
結果:這裏
Press ENTER or type command to continue
numpy : 0.586
random : 0.688
對問題的解釋很好,+1用於識別相對較小的樣本節。值得注意的是,numpy.random.random_integers()會產生正確的結果,解決問題#2,同時增加樣本到n = 100000將緩解問題#1。 –