Python 在三个骰子列表中滚动两个骰子时寻找最大值
我有以下函数,它将两(2)个六面骰子作为输入,并确定其中哪个骰子的数字较大注意骰子不一定有数字1-6。Python 在三个骰子列表中滚动两个骰子时寻找最大值,python,Python,我有以下函数,它将两(2)个六面骰子作为输入,并确定其中哪个骰子的数字较大注意骰子不一定有数字1-6。 def count_number_of_wins(die_1, die_2): die_1_larger = 0 die_2_larger = 0 for i in range(6): for j in range(6): if die_1[i] > die_2[j]: die_1_lar
def count_number_of_wins(die_1, die_2):
die_1_larger = 0
die_2_larger = 0
for i in range(6):
for j in range(6):
if die_1[i] > die_2[j]:
die_1_larger += 1
elif die_1[i] < die_2[j]:
die_2_larger +=1
return (die_1_larger, die_2_larger)
此功能在此情况下失败:
[1, 1, 6, 6, 8, 8], [2, 2, 4, 4, 9, 9], [3, 3, 5, 5, 7, 7]
我希望它返回-1,它返回0
有人能在确定最佳模具()函数中看到问题所在吗
谢谢
def count_number_of_wins(die_1, die_2):
die_1_larger = 0
die_2_larger = 0
for i in range(6):
for j in range(6):
if die_1[i] > die_2[j]:
die_1_larger += 1
elif die_1[i] < die_2[j]:
die_2_larger +=1
return (die_1_larger, die_2_larger)
def determine_best_die(dice):
assert all(len(die) == 6 for die in dice)
wins = [0] * len(dice)
for i in range(len(dice)):
for j in range(i+1, len(dice)):
a, b = count_number_of_wins(dice[i], dice[j])
if a > b:
wins[i] = wins[i] + 1
else:
wins[j] = wins[j] + 1
for i in wins:
if (i == (len(dice)-1)):
return wins.index(i)
return -1
返回0,因为第一个骰子赢得第二个和第三个骰子,而原始失败的测试用例
print (determine_best_die([[1, 1, 6, 6, 8, 8], [2, 2, 4, 4, 9, 9], [3, 3, 5, 5, 7, 7]]))
返回-1预期输出是否为-1?看起来第二个骰子赢了第一个骰子,第三个骰子赢了第二个骰子,第一个骰子赢了第三个骰子,所以骰子没有自然顺序是的,该测试用例的预期值为-1。
print (determine_best_die([[3,3, 6, 6, 8, 8], [2, 2, 4, 4, 9, 9], [3, 3, 5, 5, 7, 7]]))
print (determine_best_die([[1, 1, 6, 6, 8, 8], [2, 2, 4, 4, 9, 9], [3, 3, 5, 5, 7, 7]]))