2 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊
通常,我會(huì)使用字典來(lái)做這樣的事情,但由于你的骰子表示是一個(gè)列表(不可散列),你可以將它們轉(zhuǎn)換為 afrozenset或 a tuple。我更喜歡元組,因?yàn)樗A袅隧樞蚝椭貜?fù)(如果有)。
num_rounds = 100
dice_wins = {tuple(x):0 for x in dices}
for dice1, dice2 in it.combinations(dices, 2):
for _ in range(num_rounds):
dice1_result = dice1[randint(0, 5)]
dice2_result = dice2[randint(0, 5)]
if dice1_result > dice2_result:
dice_wins[tuple(dice1)] += 1
elif dice2_result > dice1_result:
dice_wins[tuple(dice2)] += 1
max_win = max(list(dice_wins.values()))
die_with_max_win = [dice for dice in dices if dice_wins[tuple(dice)] == max_win]
if len(die_with_max_win) == 1:
return die_with_max_win[0] # only dice with that many wins
else:
return -1 # more than one dice with max wins

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊
如果您談?wù)摰氖蔷哂邢嗤c(diǎn)數(shù)的骰子,則不存在“最佳”骰子。例如,如果骰子 A 平均贏得骰子 B,骰子 B 贏得骰子 C,那么平均而言,骰子 C 仍然有可能贏得骰子 A。
添加回答
舉報(bào)