1. 程式人生 > >java 產生隨機數的兩種方法

java 產生隨機數的兩種方法

一、利用Math.random()方法。

需要生成一個0到99之內的隨機數,通過如下語句就可以實現:

i=1+(int)(Math.Random()*100)。

其中(int)(Math.Random()*99)產生0到99的整數型隨機數。然後再加上1就是產生1到100之間的隨機整數。

(int)(Math.random()*10) 返回0到9的隨機整數。 
(int)(Math.random()*n) 返回0到n的隨機整數。 
(int)(Math.random()*100)+1 返回1到100之間的隨機整數,前面返回0到99之間的隨機數,加1就成了1到100之間的隨機數。

二、通過Random類來生成隨機數。

Random i=new Random()。通過這條語句就利用了Random類建立了一個隨機數的生成器。

必須先建立一個物件。也就是說利用Randow類來建立物件。

Java.util.Random類的方法:

  1. protected int next(int bits):生成下一個偽隨機數。
  2. boolean nextBoolean():返回下一個偽隨機數,它是取自此隨機數生成器序列的均勻分佈的boolean值。
  3. void nextBytes(byte[] bytes):生成隨機位元組並將其置於使用者提供的 byte 陣列中。
  4. double nextDouble():返回下一個偽隨機數,它是取自此隨機數生成器序列的、在0.0和1.0之間均勻分佈的 double值。
  5. float nextFloat():返回下一個偽隨機數,它是取自此隨機數生成器序列的、在0.0和1.0之間均勻分佈float值。
  6. double nextGaussian():返回下一個偽隨機數,它是取自此隨機數生成器序列的、呈高斯(“正態”)分佈的double值,其平均值是0.0標準差是1.0。
  7. int nextInt():返回下一個偽隨機數,它是此隨機數生成器的序列中均勻分佈的 int 值。
  8. int nextInt(int n):返回一個偽隨機數,它是取自此隨機數生成器序列的、在(包括和指定值(不包括)之間均勻分佈的int值。
  9. long nextLong():返回下一個偽隨機數,它是取自此隨機數生成器序列的均勻分佈的 long 值。

     10.void setSeed(long seed):使用單個 long 種子設定此隨機數生成器的種子。 

方法1 (資料型別)
 (最小值+Math.random()*(最大值-最小值+1))
 例:
  (int)(1+Math.random()*(10-1+1)) //從1到10的int型隨數

 方法2 獲得隨機數
  for (int i=0;i<30;i++)
 {
System.out.println((int)(1+Math.random()*10));
 }
 (int)(1+Math.random()*10) 
 //通過java.Math包的random方法得到1-10的int隨機數 
 //公式是:最小值---最大值(整數)的隨機數 型別)最小值+Math.random()*最大值
 
 方法3 Random ra =new Random(); 
 for (int i=0;i<30;i++)
{System.out.println(ra.nextInt(10)+1);} 
 通過java.util包中的Random類的nextInt方法來得到1-10的int隨機數

參考:https://blog.csdn.net/YTTmiao/article/details/78187448

           https://www.cnblogs.com/weiwenxin01/p/5479260.html