蟒蛇滚动3骰子

时间:2018-10-14 17:16:57

标签: python random dice

任务是:投掷三个骰子并对其结果求和。运行该函数一万次,并计算结果的平均值和标准偏差。

我的问题是:我编写了代码,并得到10000总和为'b'。现在,我需要对它们求和并取平均值。我不知道如何进行。

import random

rolls = 10000; #rolling 10000 times
for i in range(0, rolls):
    die1 = random.randint(1,6)
    die2 = random.randint(1,6)
    die3= random.randint(1,6)
    a=[die1, die2 ,die3]
    b=sum(a)
    print(b)

4 个答案:

答案 0 :(得分:1)

您应该有另一个变量将所有b的和相加,然后将该变量除以您的掷骰次数:

import random

rolls = 10000 #rolling 10000 times
totalSum = 0
for i in range(0, rolls):
    die1 = random.randint(1,6)
    die2 = random.randint(1,6)
    die3= random.randint(1,6)
    a=[die1, die2 ,die3]
    b=sum(a)
    totalSum += b
    print(b)

average = totalSum / rolls

现在,您应该可以解决其余的问题了。

答案 1 :(得分:0)

() => { //something; return

答案 2 :(得分:0)

下面将进行设置,以便您可以计算平均值和样品标准偏差。您可以通过利用代数关系∑(x i -x bar 2 =Σx i 来计算std dev 2 -n * x bar 2

可以轻松修改此实现,以执行不同数量的掷骰和不同数量的骰子。

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"
version="2.2">
<!-- JPA configuration here. -->
</persistence>

答案 3 :(得分:0)

如果您愿意放弃基于循环的方法,那么您确实应该使用多项式分布,以矢量化的方式模拟您的情况...

import numpy as np
die = np.array([1,2,3,4,5,6])
tally = np.sum(np.random.multinomial(3, [1/6]*6, size=10000) * die, axis=1)
np.mean(tally)
# 10.469
np.std(tally)
# 2.974