zoukankan      html  css  js  c++  java
  • 产生随机数的三种方式

    1.  java.util.Random

       java.util.Random类提供了以下产生随机数的方法:

       (1) 通过Random() 构造方法实例化的对象产生随机数

        Random r=new Random(); 

           特点:每次运行产生的随机数都不一样。

       (2) 通过Random(long seed) 构造方法实例化的对象产生随机数

        Random r=new Random(long seed);

              特点:seed相同产生的随机数相同,不同seed之间产生的随机数也不同。

            举例:

    public void testRandom(){
     Random r=new Random();          
              Random r5=new Random(5);      
              Random r10=new Random(10);
              List<Integer> list=new ArrayList<Integer>();
              
              list.clear();
              System.out.println("1. 利用Random()构造函数产生的随机数:");
              for(int i=0;i<10;i++) {
                  list.add(r.nextInt(100));         
              }
              System.out.println(list);
              System.out.println("");
              
              list.clear();
              System.out.println("2. 利用Random(5)构造函数产生的随机数:");      
              for(int i=0;i<10;i++) {
                  list.add(r5.nextInt(100));                  
              }
              System.out.println(list);
              System.out.println("");
              
              
              list.clear();
              System.out.println("3. 利用Random(10)构造函数产生的随机数:");    
              for(int i=0;i<10;i++) {
                  list.add(r10.nextInt(100));            
              }
              System.out.println(list);
    }

    运行结果:

    第一次运行上述代码的结果如下:

    第二次运行上述代码的结果如下:

     

    第三次运行上述代码的结果如下:

     

     由以上三次运行的结果不难发现:

      1) 利用Random() 构造函数实例化的对象产生的随机数每次都不一样。

      2) 利用Random(long seed) 构造函数实例化的对象产生的随机数每次都一样。

      3) seed即种子数,不同seed之间产生的随机数也不同。

    由此可见:虽然说是随机数,但是也不是随机产生的,还是按照某种算法一步步执行产生的数,所以才会有种子数不变在不同时刻产生的值一样的结论。

    2. Math.random()

      Math.random() 产生的是[0,1.0)的随机小数。

         举例:

    public void testMathRandom(){
            System.out.println("利用Math.random()产生的随机数:");
            for(int i=0;i<10;i++) {
                 System.out.println(Math.random());
            }
    }

    运行结果:

  • 相关阅读:
    896. Monotonic Array单调数组
    865. Smallest Subtree with all the Deepest Nodes 有最深节点的最小子树
    489. Robot Room Cleaner扫地机器人
    JavaFX
    《Python CookBook2》 第一章 文本
    《Python CookBook2》 第一章 文本
    《Python CookBook2》 第一章 文本
    《Python CookBook2》 第一章 文本
    《Python CookBook2》 第一章 文本
    《Python CookBook2》 第一章 文本
  • 原文地址:https://www.cnblogs.com/nancyzhang/p/8496442.html
Copyright © 2011-2022 走看看