gpt4 book ai didi

Java随机值和重复项

转载 作者:搜寻专家 更新时间:2023-10-31 08:24:31 24 4
gpt4 key购买 nike

我有一个包含 52 张卡片 (13x4) 的数组 (cards),以及另一个包含 25 张卡片 (5x5) 的数组 (cardsOut)。我想将 52 张卡片中的元素随机复制到 25 张卡片数组中。

此外,我不希望 5x5 数组中有任何重复项。所以这就是我所拥有的:

        double row=Math.random() *13;
double column=Math.random() *4;

boolean[][] duplicates=new boolean[13][4];

pokerGame[][] cardsOut = new pokerGame[5][5];
for (int i=0;i<5;i++)
for (int j=0;j<5;j++){
if(duplicates[(int)row][(int)column]==false){
cardsOut[i][j]=cards[(int)row][(int)column];
duplicates[(int)row][(int)column]=true;
}
}

此代码中有 2 个问题。首先,行和列的随机值只生成一次,所以每次都会将相同的值复制到 5x5 数组中。由于每次都复制相同的值,我不确定我的重复检查器是否非常有效,或者它是否有效。

我该如何解决这个问题?

最佳答案

我推荐 shuffling首先将牌组放置到位,然后选择前 25 张牌放置在 5x5 阵列中。尝试混合这两个步骤是不必要的复杂化。

如果您需要优化性能(您可能不需要),那么值得注意的是您可以使用 Fisher-Yates shuffle并在选择前 25 张随机牌后停止算法,其余牌不洗牌。

关于Java随机值和重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4505546/

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