java生成随机数

        第一种方法,使用静态类Math中的random()函数。

       Math.random()返回带正号的 double 值,该值大于等于0.0 且小于1.0。返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。第一次调用该方法时,它将创建一个新的伪随机数生成器,与   new java.util.Random    完全相同。之后,新的伪随机数生成器可用于此方法的所有调用,但不能用于其他地方。

       此方法是完全同步的,可允许多个线程使用而不出现错误。但是,如果许多线程需要以极高的速率生成伪随机数,那么这可能会减少每个线程对拥有自己伪随机数生成器的争用。

       它生成的数是大于等于0.0且小于1.0的伪随机double值。

例如  : double i = Math.random();  生成的数为0.4664621927561753;如想要生成1-10的整数: double i = Math.ceil(Math.random() * 10);

     第二种方法,使用java.util.Random类

      Random有两个构造方法:Random()和Random(long seed),创建一个新的随机数生成器。

     如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同。

                         Random r=new java.util.Random(10); 
                         for(int i=0;i<10;i++){ 
                               System.out.println(r.nextInt()); 
                          } 

          运行生成十个随机的数,可能不同,可能相同。但程序每次执行的结果都相同。

       setSeed(long seed):使用单个long 种子设置此随机数生成器的种子。

        r.nextInt():返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的int 值。nextInt 的常规协定是,伪随机地生成并返回一个int 值。所有 232 个可能int                   值的生成概率(大致)相同。 

        r.nextInt(int n):返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的int 值。

        r.nextDouble():返回下一个伪随机数,它是取自此随机数生成器序列的、在0.01.0 之间均匀分布的double 值。next

        r.nextBoolean():返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的boolean 值。返回true or false 概率接近50%

           r.nextBytes(byte[] bytes):生成随机字节并将其置于用户提供的 byte 数组中。

                          Random r=new java.util.Random(10); 
                          byte[] bytes = new byte[10];
                          r.nextBytes(bytes);
                          for(int i=0;i<10;i++){ 
                                 System.out.print(bytes[i] + " "); 
                           } // 输出结果:-46 122 -3 -70 -8 22 21 114 58 93 


     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值