我想根据我的样本绘制概率密度函数的近似值; 模拟直方图行为的曲线.我可以提供我想要的样品.
所以我写了一个简短的 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') …Run Code Online (Sandbox Code Playgroud)