Python骰子和硬币游戏

2024-04-20 11:59:09 发布

您现在位置:Python中文网/ 问答频道 /正文

参考this question

“假设我掷一个四面的骰子,然后将一枚硬币与骰子对应地掷几次。考虑到我掷硬币的时候有三个头,骰子得分是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或Bayes定理的理解是否很差?你知道吗


Tags: inforifrange硬币randomval骰子
1条回答
网友
1楼 · 发布于 2024-04-20 11:59:09

你的代码实际上是在回答这样一个问题:“假设骰子得分是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)

相关问题 更多 >