Jun*_*ung 3 python random distribution matplotlib histogram
所以我写了一个简短的 Python 函数来绘制骰子实验的分布结果。它的工作很好,但是当我运行例如dice(1,5000)
或dice(10,5000)或dice(100,5000)直方图显示偏态分布(高优先6)。但是,平均值显示了大约 的预期值3.5。我想这可能与随机数生成有关,所以我尝试了两种方法:第random.randint一种方法,第二种方法与代码相同。但是,它们提供了相似的结果。好像上限有问题。但我不确定为什么会出现如此倾斜的分布。
import matplotlib.pyplot as plt
import numpy as np
import random
# Throw a dice
def dice(N,n):
result = np.zeros((n,N))
'''
N: number of dices
n: number of experiment
'''
for i in range(n):
for j in range(N):
random_number = random.random()
outcome = int(random_number * 6 + 1)
result[i][j]=outcome
laverage = np.mean(result)
print('Result of throwing %d dice(s) for %d times:'%(N,n),result)
print(laverage)
plt.hist(np.resize(result,(N*n,1)),bins=[x for x in range(1,7)])
plt.xlabel('Outcome')
plt.ylabel('Number of occurences')
plt.show()
dice(1,5000)
Run Code Online (Sandbox Code Playgroud)