永发信息网

java随机数问题。

答案:4  悬赏:60  手机版
解决时间 2021-05-10 22:49
  • 提问者网友:记得曾经
  • 2021-05-10 07:09

做1个随机输出10个不重复的数字。我用的方法是产生一个随机数。然后输出。然后把这个数和数组最后一个交换。但是下面就有问题了。

怎么指定这个随机数是在数组里面取值。而不是在1~10之间瞎哈产生随机数?

哎。随机数一直都没办法掌握阿。。。。。。。。。。。

public static void main(String[] args) {
int temp;
int[] radom=new int[]{1,2,3,4,5,6};
int i=0;
int j= (int)radom.length;
int a=0;
while(i<6){
radom[i]=(int)(Math.random()*6+1);
System.out.println(radom[i]);
temp=radom[i];
radom[i] = radom[j-1];
radom[j-1]=temp;
j--;
i++;
}

最佳答案
  • 五星知识达人网友:妄饮晩冬酒
  • 2021-05-10 08:04

public class Test2 {


public static void main(String[] args) {
int a[] = new int [100];
int k;
int temp;
for(int i=0;i<a.length;i++){
a[i] = i+1;
}
for(int i=0;i<a.length;i++){
k = (int)(Math.random()*(a.length-i));
System.out.println(a[k]);
temp = a[k];
a[k] = a[a.length-i-1];
a[a.length-i-1] = temp;
}
}


}

全部回答
  • 1楼网友:愁杀梦里人
  • 2021-05-10 10:50

List<int> list = new ArrayList<int>();

Random rd = new Random();

int count=0;

while(true){

int a = rd.nextInt(10)+1;//1-10随即数

if(!list.contains(a)){

list.add(a);

count++;

}

if(count==10){break;}

}

这样写就可以了,这个是思路,我没工具没法写 自己看看 很简单

  • 2楼网友:春色三分
  • 2021-05-10 10:01
public static void so() { Random ra = new Random(); int[] num = new int[10]; for(int i=0;i<10;i++) { int sum = ra.nextInt(100); if(i==0) { num[i]=sum; } else if(i>0) { for(int t=0;t<=i-1;t++) { if(num[t]==sum) { i--; } else { num[i]=sum; } } } } for(int u=0;u<num.length;u++) { System.out.println(num[u]); } }
  • 3楼网友:不如潦草
  • 2021-05-10 09:15

。。。不用这么麻烦啊

你随机生成一个数字放到10个大小的数组

每次生成的时候和数组里面的数比较

如果一样就PASS继续生成

不就好了

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯