java生成随机数

来源:互联网 发布:java分布式缓存技术 编辑:程序博客网 时间:2024/06/01 21:27

        第一种方法,使用静态类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
原创粉丝点击