首页 > 其他 > 详细

羊车门作业

时间:2018-11-27 13:29:38      阅读:103      评论:0      收藏:0      [点我收藏+]

提交代码一共为两个,第一段代码运行结果与推理不符,实在没找到错误

第一段代码:

import random
yes=0
no=0
#不更换
##for i in range(10000):
##    car1=random.randint(1,3)
##    choose1=random.randint(1,3)
##    if car1==choose1:
##        yes=yes+1
##    else:
##        no=no+1
#更换
a=[1,2,3]
b=[]
c=[]
for i in range(10000):
    car2=random.randint(1,3)
    choose2=random.randint(1,3)
    for i in a:
        if car2!=i and choose2!=i:
            b.append(i)
    host=random.choice(b)       #choice函数返回列表中的随机值
    for i in a:
        if choose2!=i and host!=i:
            c.append(i)
    choose2=random.choice(c)
    if car2==choose2:
        yes=yes+1
    else:
        no=no+1
    
    
print(yes/10000)

第二段代码正确:

import random
a=0
b=0
for i in range(10000):
    car=random.randint(1,3)
    choose=random.randint(1,3)
    if car==choose:         #不更换
        a=a+1
for i in range(10000):
    car=random.randint(1,3)
    choose=random.randint(1,3)
    if car!=choose:         #更换
        b=b+1
print("不更换的概率为{},更换的概率为{}".format(a/10000,b/10000))

‘‘‘
算法解释:

不更换的话,如果car=choose,代表选中,则a自加一次

更换的话,无论选中或者不选中,观众都要更换已经选择的门,
则更换后如果选中汽车,则更换前选中的一定不是汽车,即当car!=choose时,b自加
‘‘‘

 

羊车门作业

原文:https://www.cnblogs.com/xiaoerduo00/p/10025799.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!