2012-12-29 38 views
1
之間的隨機整數

可能重複:
Generating random number in a range with Java創建兩個隨機邊界

我試圖創建一個隨機數字,是一個邊界的值上方與下方另一個。這個數字也可以等於任何一個邊界。

這兩個邊界都是隨機創建的。 highNumber是0到100之間的隨機數,lowNumber是0到HighNumber的一半之間的隨機數。

目前我的代碼如下:

public static void createCorrectNumber() { 
      random = new Random(); 
      correctNumber = random.nextInt(highNumber)+1; 
      correctNumber -= lowNumber; 
    } 

這不是功能性的,因爲當下界採取遠離它,它可以變得比邊界低。有任何想法嗎?

+0

我還要提到的兩個邊界是由隨機產生。 highNumber是0到100之間的隨機數,lowNumber是0到HighNumber的一半之間的隨機數。 – JamoBox

+1

編輯您的原始帖子與此增加的精度,然後 – fge

+1

什麼關於http://stackoverflow.com/questions/363681/generating-random-number-in-a-range-with-java是不是這個相同的問題? – wmax

回答

4

使用

correctNumber = random.nextInt(highNumber - lowNumber + 1) + lowNumber; 
+0

要包含'highNumber',您需要'+ 2' –

+1

@PeterLawrey否,例如對於low = 0,high = 2,隨機數在[0,3)中,因此2是一個有效的結果 – Henry

+0

「這個數字可以等於任何一個邊界」,你需要用[整數]執行一個[0,3]。 –