2010-12-08 28 views
3

我有問題: 如何在Java(android)中從0到4繪製數字? 如何使用隨機函數?隨機數

回答

8

該follwing將做你所需要的。

Random r = new Random(); 
int randomInt = r.nextInt(5); 

如果你這樣做在一個循環中,一定要初始化Random外循環。

Random r = new Random(); 
for(int i = 0;i < someThing; i++) { 
    System.out.println(r.nextInt(5)); 
} 

請參閱Random類的文檔:http://download.oracle.com/javase/6/docs/api/java/util/Random.html

2

有一點要小心的是,你不應該創建一個新的隨機對象,你想要一個新的號碼每次。

Random r = new Random(); 

那麼這應該是你想要一個新的隨機數,每次叫:

int x = r.nextInt(5); 
2
System.out.println(""+(int) (Math.random()*5.0)); 

如果你只需要生成一個單一的應用程序啓動時該行應當執行一次隨機數,我相信使用Math.random()比生成一個對象稍便宜。

注:生成從0任何隨機的整數爲n,(0包容,正獨佔),只需使用:

(int) (Math.random()*n); 

爲了產生M + N,(M包括從米任何隨機整數, M + N獨家),只需使用:

m + (int) (Math.random()*n); 
+0

構建一個Random實例並不需要比你的方式更昂貴 – ognian 2010-12-08 19:26:15

2

請大家Attantion - 每次調用代碼:

Random r = new Random(); 

可能會[R讓你相同的數字(我想你們中有幾個人已經注意到了phanamona)。

我猜它以某種方式連接到Java的問題隨機數字: Java: Can (new Random()).nextInt(5) always return the same number? 和:Java random always returns the same number when I set the seed?

反正我的解決方案是一個靜態變量添加到我的課:

static Random sRandomGen = new Random(); 

,並調用nextInt從相關的方法,當我需要隨機數。 Thatway我收到結果之間的平等分配。

int rnd = sRandomGen.nextInt(numofmatches - 1); 

該解決方案對我很好。