自己写的一个随机数的算法
要求:指定显示一定数目的数字,如显示1到12这些数字,要求数字随机排列并全部显示出来。每次运行程序后
这些数字的顺序都不相同!
代码:
import java.lang.*;
import java.util.*;
public class MakeRandomNum
{
public void getRandom()throws Exception
{
String [] a=new String[12];
Random rndTemp = new Random();
int flag=1;
String rnum=new String("w");//先付一个初始值
for(int i=0;i<12;i++)
{
do
{
flag=1;
Float num=new Float(rndTemp.nextFloat()*12+1);
rnum=num.toString();
rnum=rnum.substring(0,rnum.indexOf("."));
for(int j=0;j
{
if(a[j].equals(rnum))
{
flag=0;
// System.out.print("t");
}
}
}while(flag==0);
a[i]=rnum;
System.out.println(a[i]);
}
}
public static void main(String args[])
{
try{
MakeRandomNum my=new MakeRandomNum();
my.getRandom();
}catch(Exception e)
{
System.out.print(e);
}
}
}
运行结果:
可能算法不是很优化,在数字为千个以内速度很快,试了个50000的,运行了好几分钟!差点死机!:(
大家来一起看看有没有更好的算法啊?!