"""
(概率计算的计算机实践验证)游戏规则:
三个红包,一个里面有钱,两个里面没有钱,玩家先选择一个红包,不能拆封。此时,系统
从余下的两个红包中将没有钱的红包拿走一个,此时,玩家有两种选择:1,放弃之前的选择,
拿走桌面上的红包。2,保持之前的选择不变。如果是你,你会不会选择用之前选择的红包和
桌面上余下的红包交换?
这是个概率计算的问题,本程序模拟了玩家的两种选择,并计算不同选择的胜率。
本程序用1代表有奖金,用0代表没有奖金
拓展:如果红包不止3个,请书写代码来验证猜想。
"""
import random
testTimes=100
VictnotChange=0
VictChange=0
for i in range(0,testTimes,1):
list1=[0,0,1]
random.shuffle(list1)#洗牌
print("洗牌后的结果:",list1)
#第一步,随机抽取一张牌
m=random.randint(0,2)
cardSelectNumber=list1[m]
#print(m,cardSelectNumber)
list1.pop(m)
print("玩家第一次抽取一张牌后桌面上剩下的牌:",list1)
#第二步,从剩下的两张牌中抽取一张没有奖金的牌,此次令其抽到数字为0的牌
random.shuffle(list1)
list1.remove(0)
print("系统抽走一张无奖牌后桌面上剩下的牌:",list1)
#第三步,统计不换牌与换牌后的胜率
#换牌
if list1[0]==1:
VictChange+=1
if cardSelectNumber==1:#可以不用测试,因为只有3张牌,所以总次数-换牌后胜出次数就等于不换牌胜出次数
VictnotChange+=1
print("换牌后胜出次数:",VictChange,"不换牌胜出次数",VictnotChange)
print()
print(VictChange/testTimes,VictnotChange/testTimes)
留言与评论(共有 0 条评论) “” |