提交代码一共为两个,第一段代码运行结果与推理不符,实在没找到错误
第一段代码:
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