簡體   English   中英

Python - 骰子和硬幣游戲

[英]Python - dice and coin game

提到這個問題

“假設我擲了一個 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 或貝葉斯定理的理解很差嗎?

您的代碼實際上是在回答“鑒於骰子得分為 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM