我有一个问题,无法为随机数编写更清晰的程序而不重复。我的代码可以工作,但不太好。
我尝试了很多想法,尤其是我只是玩循环
for(int i=1; i<=pole.length;i++){
while(p<=13){
i=rd.nextInt(13)+1;
if(pole[i]==i){
}
else{
System.out.println`(i+"-"+p);
pole[i]=i;
p++;
if(i>Max){
Max=i;
}
}
i=Max;
}
我希望有 13 个数字,而无需重复这个数字,但如何写得更容易
最佳答案
我尽力解决你的问题
第一种方式:
Integer[] arr = new Integer[13];
int i = 0;
for (;;) {
if (i == 13) {
break;
}
int random = (int) (Math.random() * 100);
if (!Arrays.asList(arr).contains(random)) {
arr[i] = random;
i++;
}
}
第二种方式:
List<Integer> list = new ArrayList<>();
while (list.size()<13) {
Integer random = (int )(Math.random() * 100);
if(!list.contains(random)){
list.add(random);
}
}
关于java - 仅使用 Random 而不使用 ArrayList 写入不重复的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57024229/