任务是:投掷三个骰子并对其结果求和。运行该函数一万次,并计算结果的平均值和标准偏差。
我的问题是:我编写了代码,并得到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)
答案 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