喝酒规则:
一开始有6杯酒,里面的酒量分别是012345,4个人来玩,第一个人掷到几,就要喝对应点数的酒。
如果对应酒杯里有酒,则干掉,然后继续掷,直到杯子里是空的。然后灌满换下一个人。
目标:
计算出每个人喝的酒量,判断哪个位置喝得多
import random
BeerPool = 100
players_beer = [0,0,0,0]
cup_beer = [0,1,2,3,4,5]
i = 0
add_beer = 1
def roll():
return random.randint(0,5)
for j in range(10000):
BeerPool = 100
cup_beer = [0, 1, 2, 3, 4, 5]
i = 0
while BeerPool > 0:
if i == 4:
i = 0
while True:
num = roll()
if cup_beer[num] == 0:
cup_beer[num] = add_beer
i += 1
break
else:
cup_beer[num] = 0
if BeerPool > add_beer:
players_beer[i] += num
BeerPool -= num
else:
players_beer[i] += BeerPool
BeerPool = 0
players_beer = list(map(lambda x:x/10000,players_beer))
players_beer = [int(k) for k in players_beer]
print(players_beer)
输出结果为:[27, 25, 24, 23]
当把酒池的值改成1000时
输出结果为:[252, 250, 248, 248]
总结:选位置最好选往后的,这样可以少喝点,当然如果酒足够多选哪个位置也差不多