指的是this question:
“假设我掷出一个4面骰子,然后掷出与掷骰子相对应的公平硬币多次。考虑到我在硬币掷骰子上获得三个正面,该骰子得分为4的概率是多少? “
在答案中解释为结果应为2/3。
我用Python 3编写了以下代码:
import random
die=4
heads=3
die_max=4
tot=0
tot_die=0
for i in range(0,100000) :
die_val=random.randint(1,die_max)
heads_val=0
for j in range(0,die_val) :
heads_val+=random.randint(0,1)
if die_val==die :
tot_die+=1
if heads_val==heads and die_val==die :
tot+=1
print(tot/tot_die)
我希望它能输出约0.66的东西,但实际上它的计算结果约为0.25。
我不太了解Python或贝叶斯定理吗?
答案 0 :(得分:1)
您的代码实际上是在回答“假设骰子得分为4,您在掷硬币时获得三个正面的概率是多少?”要使其回答预期的问题,请更改倒数第二条if
语句的条件:
import random
die=4
heads=3
die_max=4
tot=0
tot_heads=0
for i in range(0,100000) :
die_val=random.randint(1,die_max)
heads_val=0
for j in range(0,die_val) :
heads_val+=random.randint(0,1)
if heads_val==heads : # the important change
tot_heads+=1
if heads_val==heads and die_val==die :
tot+=1
print(tot/tot_heads)