找回密码
 入驻
搜索
查看: 57952|回复: 1

产生1-10之间不重复,不遗漏的随机数字

[复制链接]
发表于 2007-5-26 17:22:49 | 显示全部楼层 |阅读模式
package day0127;
public class Test {
   int i=0;
   int x[]= new int [10];
   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;
                }
          }   
      
      
       }
           
  }
           
      
      
}
发表于 2007-5-26 17:58:53 | 显示全部楼层
是伪随机数,Random的原理是取用户给定或者系统时间做随机种子,通过一系列的运算来产生的;而想要用算术的方法产生真正的随机数是不可能的。
好象我上次发的DLL没有公开源代码,看了源代码就懂随机数是怎么伪出来的

[ 本帖最后由 zkkpkk 于 2007-5-26 18:00 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 入驻

本版积分规则

QQ|Archiver|手机版|小黑屋|思明论坛

GMT+8, 2024-9-28 17:29 , Processed in 0.016290 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表