產生隨機數的三種方式


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

 

運行結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM