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秒

------------------------------------------------------------

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值