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());
            }
    }

    运行结果:

  • 相关阅读:
    Weblogic 漏洞利用总结
    CVE-2017-9993 FFMpeg漏洞利用
    tomcat漏洞利用总结
    移动渗透测试杂记
    CORS漏洞利用检测和利用方式
    discuz mlv3.x命令注入
    DNS域传输漏洞利用总结
    redis未授权漏洞和主从复制rce漏洞利用
    CVE-2016-3714-ImageMagick 漏洞利用
    JAVA WEB EL表达式注入
  • 原文地址:https://www.cnblogs.com/nancyzhang/p/8496442.html
Copyright © 2011-2022 走看看