众香之主 发表于 2007-5-26 17:22:49

产生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;
                }
          }   
      
      
       }
         
}
         
      
      
}

zkkpkk 发表于 2007-5-26 17:58:53

是伪随机数,Random的原理是取用户给定或者系统时间做随机种子,通过一系列的运算来产生的;而想要用算术的方法产生真正的随机数是不可能的。
好象我上次发的DLL没有公开源代码,看了源代码就懂随机数是怎么伪出来的

[ 本帖最后由 zkkpkk 于 2007-5-26 18:00 编辑 ]
页: [1]
查看完整版本: 产生1-10之间不重复,不遗漏的随机数字