骰子实验的结果分布

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)

小智 5

你的情节只显示5条-酒吧是多少的权利,所以我相信结果56被合并。如果你改变,range(1,8)你会看到更多你期望的东西。

在此处输入图片说明