2016-10-22 47 views
0

我想在我的Java程序中實現一個隨機數生成器。我使用的是Math.random(),但這似乎並不奏效。然後我嘗試使用SecureRandom,但是這對我的遊戲花了太長時間。但是,我遇到了這個生成器,即MersenneTwisterRNG隨機數生成器。這似乎是我想要的;快速,但仍然是隨機的。如何使用MersenneTwisterRNG隨機數生成器

不過,我還沒有用Java編寫很長時間,只有2個月,而且我無法制作API的正面和反面。如果有人可以幫我解釋一下如何在我的代碼中使用它,我們將不勝感激。或者,如果你碰巧知道一個更簡單但相似的隨機數發生器,我也會對此感興趣。該API是here

+0

你是什麼意思'Math.random()'沒有「工作得很好」?你看到什麼是錯的?請給出具體的經驗和例子。 – Nayuki

回答

1

如何使用MersenneTwisterRNG API:

import java.util.Random; 
import org.uncommons.maths.random.MersenneTwisterRNG; 

這使您可以訪問使用他們的短名的類。

Random rand = new MersenneTwisterRNG(); 

這創建了一個新的MersenneTwisterRNG。我們把它放入一個隨機類型的變量中,以便我們可以在需要時輕鬆地將其替換爲另一個RNG。

double x = rand.nextDouble(); 

此行爲與Math.random()相同,並返回一個介於0.0和1.0之間的雙精度浮點數。

int n = rand.nextInt(10); 

這產生介於0(含)的隨機數和圖9(含),即0 < =正< 10.這是一個很大的整數算法是有用的。

+0

我收到包org.uncommons.maths.random不存在的錯誤。你知道我爲什麼會得到這個嗎? – acn3

+0

你下載了他們的代碼並把它放到你的項目目錄中嗎? – Nayuki

+0

不,我不知道我是這麼做的。謝謝。我從來沒有使用過一個子類。 – acn3