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

    运行结果:

  • 相关阅读:
    selenium+java+testNG+maven环境搭建
    pycharm配置git版本管理
    Android的WebView有哪些坑?
    Android M中 JNI的入门学习
    Android初学者必知会的编程规范
    Android Studio中怎么使用DDMS工具?
    Android开发中适配多种 ROM 的快捷方式是如何实现的?
    Android中ListView 控件与 Adapter 适配器如何使用?
    Android中如何为自定义控件增加状态?
    29个android开发常用的类、方法及接口
  • 原文地址:https://www.cnblogs.com/nancyzhang/p/8496442.html
Copyright © 2011-2022 走看看