用Java随机生成一个从数组,要求从一个数组int [x] count中随机取出,每个元素大小是在1-X(id)以内,生成的目标数组要求内部元素不同,数组长度K个数可以传值控制,
把结果int [k] object打印出来;
比如
int [x] count={1,2,3,4,5,6,7,...,100000};要求输出int[k] object;
把结果int [k] object打印出来;
比如
int [x] count={1,2,3,4,5,6,7,...,100000};要求输出int[k] object;
Collecionts.shuffle(count);
List result = count.subList(0, k);
{
public static void paiXu(int a[])//定义一个数组,存放随机数是否出现
{
int i,j;
for(i=0;i<a.length-1;i++)
{
for(j=0;j<a.length-1-i;j++)
{
if(a[j]>a[j+1])
{
int t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
public static void main(String args[])
{
int a[]=new int[7];//盛放7个不同的随机数
int flag[]=new int[31];//标志数组,标识随机数是否产生过,0没1有
flag[0]=1;//0不能产生
int r;
for(int i=0;i<a.length;i++)
{
r=(int)(Math.random()*31);//产生一个0~30的随机数
//判断该随机数是否已产生过
if(flag[r]==0)//r没产生过
{
a[i]=r;
flag[r]=1;
}
else//r已产生过
{
i--;
}
}
paiXu(a);
for(int i=0;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
System.out.println();
}
}实现产生不重复随机数
先产生个随机数,然后判断它是不是和前面的任何一个相同,如果相同就重新产生,如果全部都不同就产生下一个
public List returnString() { List al = new ArrayList(); Random r = new Random(); while (true) { Integer random = new Integer(r.nextInt(21)); if (!al.contains(random)
&& Integer.parseInt(random.toString()) != 0) { al.add(random); if (al.size() == 20) {
Collections.sort(al);
break;
}
}
} return al;
}
就ok了
QDBEAR() xiaodidi_wa() ===========================================
我语文很一般,你想说我表达不清就直接点咯,其实我是想了好久的,但是你们还是有点想歪了。晕啊!
import java.util.*;public class ReturnString
{
public static void main(String[] args)
{
Random rand=new Random();
List al=new ArrayList();
while(true)
{
Integer i=new Integer(rand.nextInt(21));
if(!al.contains(i)&&(i.intValue()!=0))al.add(i);
if(al.size()==20)break;
}
System.out.println(al);
}
}