跨学科融合(高中信息技术与数学)试验课

"""

(概率计算的计算机实践验证)游戏规则:

三个红包,一个里面有钱,两个里面没有钱,玩家先选择一个红包,不能拆封。此时,系统

从余下的两个红包中将没有钱的红包拿走一个,此时,玩家有两种选择: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 条评论) “”
   
验证码:

相关文章

推荐文章