python羊车门问题_「羊车门」经典概率题中不换门选中车的概率是多少?
今天用Python求解「羊車門」經典的概率問題,對概率學基礎和Python語法的靈活運用有所收貨.
本次「羊車門」求解過程采用的是:窮舉法計算概率已驗證概率學基礎理論.期間重點借鑒了'奧卡姆剃刀的博客'和 南蔥:「羊車門」經典概率題中不換門選中車的概率是多少? 二位老師的求解思路.
我的求解思路是: 我把「羊車門」問題中的'羊'和'車'想象成"0"和"1",然后用窮舉法計算數組中的元素出現"0"和"1"的數量,再計算數組中的每元素出現"0"的概率,最后用最簡單的方法計算總概率.得出的結果和二位老師基本一致.
有機會還是要好好學習一下概率學基礎理論知識的.
歡迎大家批評指正
python代碼如下:
# 經典的'羊車門問題'.采用窮舉法計算概率.
import random
import time
# 0=車;1=羊
Start_Time = time.clock()
N = 3 # - 定義數組元素數量[即:門的數量] -
Door = list(range(N)) # - 有幾扇門 -
Count = 1 # - 循環計數器 -
Crycle_index = 100000000 # - 循環Max值 -
D1 = D2 = D3 = 0 # 每扇門背后=車時的計數器
while Count <= Crycle_index:
for num in range(len(Door)): # --- 初始化3扇門背后的物品=1 ---
Door[num] = 1
# --- 隨機分配'車'對應的'門'的位置 ---
reward = random.choice(range(N))
Door[reward] = 0
#print (Count,Door)
if Door[0] == 0:
D1 += 1
elif Door[1] == 0:
D2 += 1
elif Door[2] == 0:
D3 += 1
else:
pass
Count += 1
print ('-'*60)
print ('{0:^44}'.format("經典的'羊車門問題'.采用窮舉法計算概率."))
print (' 1. 經過[{0}]億次的運算'.format(Crycle_index/100000000))
print (' 2. D1=0的概率:{0:.2%} | D2=0的概率:{1:.2%} | D3=0的概率:{2:.2%},'\
.format((D1/Count),(D2/Count),(D3/Count)))
p1 = (D1 + D2 + D3)/Count/3
print (' 3. 只選擇第一選項的平均獲獎概率:[{0:.2%}]'.format(p1))
print (' '*5,'即:')
p2 = 1-(p1)
print (' 4. 放棄第一選擇項,改選第二選擇項的平均獲獎概率:[{0:.2%}]'.format(p2))
print (' '*5,'即:')
print (' 5. 本次運算耗時{0:.2f}秒'.format((time.clock()-Start_Time)))
print ('-'*60)
Python運行結果如下:
------------------------------------------------------------
經典的'羊車門問題'.采用窮舉法計算概率.
1. 經過[1]億次的運算
2. D1=0的概率:33.33% | D2=0的概率:33.34% | D3=0的概率:33.33%,
3. 只選擇第一選項的平均獲獎概率:[33.33%]
即:
4. 放棄第一選擇項,改選第二選擇項的平均獲獎概率:[66.67%]
即:
5. 本次運算耗時226.43秒
------------------------------------------------------------
總結
以上是生活随笔為你收集整理的python羊车门问题_「羊车门」经典概率题中不换门选中车的概率是多少?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab 移动平均_两所高校被禁用M
- 下一篇: 钉钉机器人发送图片 python_pyt