用Python寻找石头游戏获胜者的程序
假设 Amal 和 Bimal 正在玩游戏并且首先轮到 Amal。游戏如下 -
一堆石头有n个。每个玩家可以从堆中取出一块石头,并根据该石头的位置获得分数。Amal 和 Bimal 可能以不同的方式评估宝石。
我们有两个长度相同的数组,A_Values 和 B_Values。每个 A_Values[i] 和 B_Values[i] 分别代表 Amal 和 Bimal 如何评估第 i 块石头。在这里,谁的分数最高,他将在所有石头都被取出后获胜。如果出现平局,则比赛结果为平局。两个球员都会发挥最佳。他们都知道对方的价值观。因此,如果 Amal 获胜,则返回 1。如果 Bimal 获胜,则返回 -1。对于平局,返回 0。
因此,如果输入类似于 A_Values = [2,4] B_Values = [3,5],那么输出将为 1,因为 Amal 将选择第二个点为 4 的石头,所以 Bimal 只有一次机会拿下第一个点的石头3,但由于Amal得分更高,所以他获胜。
示例
让我们看看以下实现以获得更好的理解 -
def solve(A_Values, B_Values):n = len(A_Values)
combinedValues = []
for i in range(n):
tmpV = A_Values[i] + B_Values[i]
combinedValues.append([tmpV, i])
combinedValues.sort(reverse=True)
score_a, score_b = 0, 0
for i in range(n):
curV = combinedValues[i]
if (i % 2 == 0):
score_a += A_Values[curV[1]]
else:
score_b += B_Values[curV[1]]
if (score_a > score_b):
return 1
elif (score_a == score_b):
return 0
else:
return -1
A_Values = [2,4]
B_Values = [3,5]
print(solve(A_Values, B_Values))
输入
[2,4], [3,5]输出结果
1
以上是 用Python寻找石头游戏获胜者的程序 的全部内容, 来源链接: utcz.com/z/341324.html