骰子是具有代表性的中国传统民间娱乐工具,最常见的骰子是正方体六面骰,六面的点数分别从1~6,且相对面点数之和为7。现有A,B两人通过掷骰子比较谁的点数更大,请通过python程序模拟以下过程: (1) 一盘游戏中,A,B两人轮流掷骰子5次,并将每次掷出的点数累加,5盘之后,累计点数较大者获胜,点数相同则为平局。请输出A,B两人最终点数之和及最后的获胜者。 (2)A,B将(1)中的掷骰子游戏共进行了50轮,游戏结束后,A,B想得知自己输赢的次数,请输出A,B两人各自赢得的场数。
1.
import random
A = []
B = []
for i in range(5):
a = random.randint(1,6)
b = random.randint(1, 6)
A.append(a)
B.append(b)
sumA = sum(A)
sumB = sum(B)
print('A获取的点数:%s\n'
'A最终点数:%d\n'
'B获取的点数:%s\n'
'B最终点数:%d'%(A, sumA, B, sumB))
if sumA > sumB:
print('A获胜一次')
elif sumA < sumB:
print('B获胜一次')
elif sumA == sumB:
print('平局')
2
import random
win_a = 0
win_b = 0
for j in range(50):
A = []
B = []
for i in range(5):
a = random.randint(1,6)
b = random.randint(1, 6)
A.append(a)
B.append(b)
sumA = sum(A)
sumB = sum(B)
print('A获取的点数:%s\n'
'A最终点数:%d\n'
'B获取的点数:%s\n'
'B最终点数:%d'%(A, sumA, B, sumB))
if sumA > sumB:
print('A获胜一次')
win_a += 1
elif sumA < sumB:
print('B获胜一次')
win_b += 1
elif sumA == sumB:
print('平局')
print('A一共赢%d次\n'
'B一共赢%d次\n'
'平局赢%d次'%(win_a,win_b,50-win_a-win_b))
第(1)问:
import numpy as np
A = 0; B = 0
for i in range(5):
A += np.random.randint(1, 7)
B += np.random.randint(1, 7)
print('A点数之和:', A)
print('B点数之和:', B)
if A>B:
print('获胜者是A!')
elif A == B:
print('平局')
else:
print('获胜者是B!')
#第(2)问:
import numpy as np
A = 0; B = 0; win_a = 0; win_b = 0
for i in range(50):
a = np.random.randint(1, 7)
b = np.random.randint(1, 7)
A += a
B += b
if a > b:
win_a += 1
if b > a:
win_b +=1
print('A一共赢%d次'%win_a)
print('B一共赢%d次'%win_b)
print('平局%d次'%(50 - win_a - win_b))