gpt4 book ai didi

java - 在java中生成不重复的随机数

转载 作者:行者123 更新时间:2023-12-01 11:16:26 25 4
gpt4 key购买 nike

因此,我在给定网格上生成随机坐标,该网格包含 x 行和 y 列。假设我想在 8 x 6 网格上生成 25 个随机数。(8 列,6 行)我写了一段这样的代码,它只是部分工作,因为该代码不排除重复项:

    int intputRows =6;
int inputColumns=8;
Random randomNumGenerator = new Random();
for(int i=0;i<25;i++){
int randomRows = randomNumGenerator.nextInt(inputRows);
int randomColumns = randomNumGenerator.nextInt(inputColumns);
}

我的问题是,如何避免生成重复的数字?我知道有一些方法可以将它们放入 List 中结构和随机播放,但我可以用 Random 来完成吗?发电机?

最佳答案

只需使用集合:

int intputRows =6;
int inputColumns=8;
HashSet<Integer> set = new HashSet<>();
Random randomNumGenerator = new Random();
int temp;
for(int i=0;i<25;i++){
temp = randomNumGenerator.nextInt(inputRows);
if(set.add(temp))
int randomRows = temp;
temp = randomNumGenerator.nextInt(inputRows);
if(set.add(temp))
int randomColumns = temp;
}

您仍然需要实现一个else,以防它已经存在,但我只是给了您这个想法。

关于java - 在java中生成不重复的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31774703/

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