gpt4 book ai didi

java - 使用java创建一个没有数字重复的4位随机数

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

我使用 java 编写了一个代码来创建一个没有重复数字的随机 4 位数字,我编写的代码如下:-

Random r = new Random();
d1 = r.nextInt(9);
d2 = r.nextInt(9);
d3 = r.nextInt(9);
d4 = r.nextInt(9);
while(d1==d2||d1==d3||d1==d4||d2==d3||d2==d4||d3==d4)
{
if(d1==d2||d2==d3||d2==d4)
{
d2 = r.nextInt(9);
}
if(d1==d3||d2==d3||d3==d4)
{
d3 = r.nextInt(9);
}
if(d1==d4||d2==d4||d3==d4)
{
d4 = r.nextInt(9);
}
}
System.out.println(d1+""+d2+""+d3+""+d4);


这里是测试用例(生成自 System.out.println(R1+""+R2+""+R3+""+R4);)如下:-

 0123 |  OK as required
1234 | OK as required
2123 | not OK because 2 is present more than one time
9870 | OK as required
0444 | not OK because 4 is present more than one time


现在我的问题是,是否有更好的方法来做到这一点。如果我能以某种方式增强它?

最佳答案

创建一个从 0 到 9 的整数列表,将其打乱并提取前 4 个。

public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>();
for(int i = 0; i < 10; i++){
numbers.add(i);
}

Collections.shuffle(numbers);

String result = "";
for(int i = 0; i < 4; i++){
result += numbers.get(i).toString();
}
System.out.println(result);
}

正在进行一些丑陋的字符串到整数的对话,但您明白了。根据您的用例,您可以看到需要什么。

关于java - 使用java创建一个没有数字重复的4位随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18317298/

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