關於如何產生隨機數的幾種方法彙總!(2018.07.08)

堅強勇士007發表於2018-07-09

    在學習java過程中,特別是一些遊戲程式或者登入驗證碼等會涉及到隨機數這個物件,因此對此彙總一下我說了解到的獲得0到100之前的隨機數的幾種方法:

   java.util.Random類中提供了多種產生隨機數的方法:


其中使用最多的就是隨機整數,

1.通過Random() 構造方法例項化的物件產生隨機數

   Random r=new Random(); 

特點:每次執行產生的隨機數都不一樣。

   例如: Random    r =  new Random();

              int  number  = r.nextInt(n);

該值介於[0,n)的區間,也就是0到n之間的隨機int值,包含0而不包含n

產生隨機數方法next()和nextInt(int bound)的原始碼截圖:



看不懂就不看了。

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


3.使用math函式Math.random()

  Math.random() 產生的是[0,1.0)的隨機小數。


如果想獲取整數,需要型別轉換,如:

//建立一個0-100的隨機數變數
int number = (int)(Math.random()*100);

相關文章