骰子总和的分布

Distribution of dice sums

我想研究骰子总和的分布,尤其是当骰子数量增加时会发生什么

为此我知道我必须使用数字列表和整数 n 作为参数创建一个函数,并允许生成另一个数字列表对应于 n 个数字的总和,[=10 的列表=] 如果输入的数字列表是 {xi} 他们要求使用 while 循环遍历数字列表。

如果有人有任何想法,我们将不胜感激:)

好吧,这是一个有趣的实验,如果我正确理解你的问题,你正在寻找骰子总和随骰子计数变化的分布。

下面是让您入门的代码

import random
def simulatediceplay(num_of_dice):
  sum = 0
  for i in range(num_of_dice):
    sum +=random.randint(1,6)
  return sum

def generateplay(num_of_dice,num_of_runs):
  lst = []
  for i in range(num_of_runs):
    lst.append(simulatediceplay(num_of_dice))
  return lst

lst = generateplay(4,1000)
import seaborn as sns
sns.distplot(lst);

输出(模拟 1000 次掷 4 个骰子:

输出(用于模拟 8 个骰子的 1000 次掷骰:

下面的代码可以帮助您生成不同骰子数的 stddev 和均值变化

import statistics
listdice =[]
listdev = []
listmean = []
for i in range(1,20):
  lst = generateplay(i,1000)
  listdice.append(i)
  listdev.append(statistics.stdev(lst))
  listmean.append(statistics.mean(lst))

# draw lineplot
sns.lineplot(x=listdice, y=listmean)
# draw lineplot
sns.lineplot(x=listdice, y=listdev)