赌博胜率
类型:随机数
描述
A和B两个赌徒各有一百块钱,他们通过抛硬币来赌,正面朝上A赢,B要给A十块钱,反面朝上B赢,A要给B二十块钱,一直持续其中一个人把钱输光为止。
请用随机数计算A和B最后把钱输光的概率各是多少?(结果用百分数表示,保留2位小数)
为评测方便,本题要求用 random.randint(0,1)
的结果表示胜负。
输入格式
输入为英文逗号分隔的 2 个整数, 末尾没有逗号,分别代表随机数种子和随机次数
输出格式
A输光的概率为:%
B输光的概率为:%
示例
输入:
5,1000
输出:
A输光的概率为:99.60%
B输光的概率为:0.40%
参考答案
这道题当时我没写出来,或者说写出来了,但是输出的结果不对。需要注意细节!
import random
def win():
moneya = 100
moneyb = 100
while moneya > 0 and moneyb > 0:
r = random.randint(0,1)
if r == 1:
moneya = moneya - 20
moneyb = moneyb + 20
else:
moneyb = moneyb - 10
moneya = moneya + 10
if moneyb > 0:
return 1
else:
return 0
s,n = map(int,input().split(','))
losta = 0
random.seed(s)
for i in range(n):
if win():
losta = losta + 1
print('A输光的概率为:{:.2f}%'.format(losta/n * 100))
print('B输光的概率为:{:.2f}%'.format((1 - losta/n) * 100))