赌场有一种游戏称为“幸运七”,游戏规则是你丢两个骰子,如果其点数之和为7,你就赢7元,如果不是就输1元.请定义一个函数模拟这种游戏,检查赌场的规则是否公平。
import random
def saizi():
# 产生一个1~7的随机整数
x = random.randrange(1, 8)
return x
def lucky7(a, b):
# a为初始赌资
# b为准备见好就收的款额
# c为当前的总钱数
# i记录赌博次数
c = a
i = 0
while c < b:
# 当前总钱数小于预期款额时继续赌博
d1 = saizi()
d2 = saizi()
i += 1
if d1 + d2 == 7:
# 如果两个骰子点数之和为7,赢7元
c += 7
else:
# 不为7,输1元
c -= 1
print(c, end=" ")
if c <= 0:
# 总钱为0则跳出循环
break
print("\n%d"%(i))
lucky7(100, 100)
现在就得到了一个可以模拟赌博游戏的函数,现在来测试下100个只想赢7块钱的赌徒中会有几个血本无归
def lucky7(a, b):
c = a
i = 0
kk = 0
while c < b:
d1 = saizi()
d2 = saizi()
i += 1
if d1 + d2 == 7:
c += 7
else:
c -= 1
if c <= 0:
kk = 1
break
print(c, "\t", i)
return kk
renshu = 0
for dutu in range(100):
renshu += lucky7(100, 107)
print(renshu)
前一位是总钱数,后一位是赌博次数
大概也就10个会全部钱数清空这样子,当然每次测试的结果不一样