gpt4 book ai didi

java - 计算RPS游戏的最大获胜次数

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:15:29 25 4
gpt4 key购买 nike

我需要帮助编写一些代码来计算 N 场剪刀石头布的最大可能获胜数。

我得到数字 N,它是剪刀石头布游戏的数量,后面是 N 组整数(1、2、3),每组都与石头、剪刀布或石头有关。但是,我们不知道哪个数字链接到每个选项。我需要帮助来计算第一个人可能赢得的最大游戏次数。

最佳答案

好吧,让我们考虑一下如何对值进行排序的可能情况。我们可以构建一个环,其中每个数字都输给下一个值。

  • 1 对 2 松手:2 不能对 1 松手,所以它只能对 3 松手,而 3 必须对 1 松手所以 1 < 2 < 3 < 1 , 其中a < b表示“a 输给 b”
  • 2 对 1 松手:1 不能对 2 松手,所以它必须对 3 松手并且必须对 2 松手所以 1 > 2 > 3 > 1 , 其中a > b表示“a 战胜 b”

除了这两种之外没有其他可能性,因为必须从两个号码池中为每个号码分配一个“获胜”号码和一个“失败”号码。因此,我们正好有两种可能性将数字排序为获胜/失败条件。

现在我们只需要计算第一个玩家在选择上述配置(w)和平局(d)中获胜的次数。因此,玩家赢得的游戏数量为 w使用选择的配置,或 N - draws - w如果选择了相反的配置。

int[] A = readPlayerOne();
int[] B = readPlayerTwo();

int draws = 0;
int wins = 0;

for(int i = 0; i < N; i++)
{
if(A[i] == B[i])
draws++;
else if(A[i] - 1 == B[i] || A[i] == 1 && B[i] == 3)
//wins according to the first configuration
wins++;
}

return max(N - draws - wins, wins);

关于java - 计算RPS游戏的最大获胜次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41654126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com