产生1-10之间不重复,不遗漏的随机数字
package day0127;public class Test {
int i=0;
int x[]= new int ;
public void add(int j){
x=j;
i++;
}
public int find(int h ){
for(int i=0;i<x.length;i++){
if (h==x){return 1;}
}
return 0;
}
public static void main(String[] args) {
Test t =new Test();
while(true)
{
int k= (int)(Math.random()*10+1);
if(t.find(k)==1)
{
continue;
}
else{
t.add(k);
if(t.i==10)
{
for(int i=0;i<t.x.length;i++)
{
System.out.print(t.x+" ");
}
break;
}
}
}
}
}
是伪随机数,Random的原理是取用户给定或者系统时间做随机种子,通过一系列的运算来产生的;而想要用算术的方法产生真正的随机数是不可能的。
好象我上次发的DLL没有公开源代码,看了源代码就懂随机数是怎么伪出来的
[ 本帖最后由 zkkpkk 于 2007-5-26 18:00 编辑 ]
页:
[1]