做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++;
}
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;
}
}
}
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;}
}
这样写就可以了,这个是思路,我没工具没法写 自己看看 很简单
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]);
}
}
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息