2011-08-19 50 views

回答

1

什麼是難以理解的?有產生幾乎所有類型的隨機數的方法......你想要的大概是這樣的:

int nextInt(int n) 

返回一個僞隨機,介於0(含)均勻分佈的int值和指定值(不包括),從這個隨機數發生器的序列中抽取出來。

編輯:你問如何實際的功能。這也是在函數的javadoc中解釋的。如果您對細節更感興趣,您應該可以獲得文檔中引用的D. Knuth書(從http://download.oracle.com/javase/1.4.2/docs/api/java/util/Random.html):

該類的一個實例用於生成僞隨機數字流。該類使用48位種子,使用線性同餘公式進行修改。 (見Donald Knuth,「計算機編程的藝術」,第2卷,第3.2.1節。)

如果使用相同的種子創建了兩個Random實例,並且爲每個實例創建了相同的方法調用序列,生成並返回相同的數字序列。爲了保證這個屬性,爲Random類指定了特定的算法。爲了Java代碼的絕對可移植性,Java實現必須使用此處所示的Random類所有算法。然而,Random類的子類可以使用其他算法,只要它們遵守所有方法的通用契約。

由類Random實現的算法使用受保護的實用程序方法,在每次調用時可以提供多達32個僞隨機生成的位。

許多應用程序都會發現類Math中的隨機方法更容易使用。

+0

thx,但我需要了解的是,該函數的代碼。 – abhi1289

3

如果你想X(含)和y(不含)之間的隨機整數,這裏就是你要做的:

int yourRandomNumber = new Random().nextInt(y-x) + x; 

例如:如果你想隨機選擇[4,5,6,7] ,你會這樣做:

int yourRandomNumber = new Random().nextInt(4 /* i.e. 8-4 */) + 4; 
+0

我不認爲我會用大寫字母拼出來......但你確實......;)我認爲OP可以自己添加/減去...... :) –