1. 程式人生 > >java生成指定範圍內的隨機數

java生成指定範圍內的隨機數

lan this 原理 n) public exti -1 方法 這才

  我們經常說Java中的隨機數是偽隨機數,那麽我們要知道什麽是偽隨機數。

什麽是偽隨機數?

  1、真正意義上的隨機數在某次產生過程中是按照實驗過程中表現的分布概率隨機產生的,其結果是不可預測的,是不可見的。這才是真隨機。

  2、計算機中的隨機函數是按照確定算法模擬產生的,其結果是確定的,是可見的,我們可以這樣認為這個可預見的結果其出現的概率是100%,所以被稱為偽隨機。

Java隨機數產生原理

  Java的隨機數產生用了線性同余公式等,也就是說通過一個復雜的算法生成的。如果感興趣,可以去看一下這篇對java隨機數源碼解析的博客。http://www.codes51.com/article/detail_1581162_5.html

Java產生隨機數的方法有兩種:

  1、Math.random()
  2、new Random()

java.lang.Math.Random

  Math.Random()函數能夠返回0-1之間的double值,在該範圍內(近似)均勻分布。

java.util.Random:

Random()有兩種構造方法:

  1、Random():使用一個和當前時間的毫秒數作為種子,可以通過System.currentTimeMillis()來獲得當前時間的毫秒數。下面是JDK的源代碼。


  public Random() { this(System.currentTimeMillis()); }。

  2、 Random(long seed):直接傳入一個種子,如果用相同的種子創建兩個 Random 實例,則對每個實例進行相同的方法調用序列,它們將生成並返回相同的數字序列。

random對象的nextInt(),nextInt(int n)方法:
  int nextInt()
  返回下一個偽隨機數,它是此隨機數生成器的序列中均勻分布的 int 值。
  int nextInt(int n)
  返回一個偽隨機數,它是從此隨機數生成器的序列中取出的、在 [0,1) 之間均勻分布的 int值。

java生成指定範圍內的隨機數