用java.算出小于100的10个不重复的随机数,放入数组,并且打印出来

如题所述

第1个回答  2011-01-09
public class TextRandomArray {
/**
* 将小于100的10个不重复的随机数,放入数组,并且打印出来
*/

public static void main (String[]args)
{
int lot[] = new int[10]; //定义数组
int num;
lot[0]= (int)(Math.random()*100); //产生0-99之间的随机数,并赋值给lot[0]
for (int i=1;i<lot.length;i++)
{
num =(int)(Math.random()*100);
lot[i]=num;

/*
* 判断是否与前面产生的数值相等,
* 如果相等则表示数字有重复,于是将下标减1,退回去重新产生随机数
*/
for (int a=0; a<i; a++)
{
if (lot[a] == lot[i] )
{
i--;
break;
}
}
}

System.out.print("此次产生的数组的值为:");
for (int b =0;b<lot.length;b++)
{
System.out.print(lot[b]+" ");
}
}
}

测试结果:

此次产生的数组的值为:86 60 47 68 94 29 8 19 22 80

这粘过来的格式真让我看着头痛!
第2个回答  2011-01-09
import java.util.*;

public class Rand10
{
public static void main(String[] args)
{
Random rand=new Random();
int[] num=new int[10];
boolean[] used=new boolean[100];
Arrays.fill(used,false);
for(int i=0;i<10;i++)
{
int tmp;
do
{
tmp=rand.nextInt()%100;
}while(tmp<0||used[tmp]);
used[tmp]=true;
num[i]=tmp;
}
for(int e:num)
System.out.println(e);
}
}
楼主参考。本回答被提问者采纳
第3个回答  2011-01-10
用不用写得那么麻烦阿?用Set保存不就可以了么

import java.util.Random;
import java.util.Set;
import java.util.TreeSet;

public class Test {

public static void main(String[] args) {

final int length = 10;

int[] ary = new int[length];

fillAryByRandom(ary);

//Print the array
for(int i = 0; i < length; i++){
System.out.print(ary[i] + " ");
}
}

private static void fillAryByRandom(int[] ary) {

Random rand = new Random();

Set<Integer> set = new TreeSet<Integer>();

while(set.size() != ary.length){
set.add(rand.nextInt(100));
}

int i = 0;
for(Integer digit: set){
ary[i++] = digit;
}
}
}

------------------
0 2 8 9 21 50 69 73 78 93

---------------
4 15 22 28 30 41 62 73 84 90
第4个回答  2011-01-09
每生成一个数存入数组,并且判断它与之前的i个数比较是否重复,重复就继续生成随机数,知道10个,结束!并且用一个计数器记录不重复的数,以便进行判断。
第5个回答  2011-01-09
package baidu.question.ask;

import java.util.ArrayList;
import java.util.List;

public class Random {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Double> NoDupArray = new ArrayList<Double>();
double number ;
while(NoDupArray.size()<10){
number = Math.random()*100+1;
if(!NoDupArray.contains(number)){
NoDupArray.add(number);
}
}
for(double dou : NoDupArray){
System.out.print(dou+"\t");
}
}

}
相似回答