2016-02-24 147 views
2

被劃分我需要生成的隨機數,可以由2 所以可分爲:2 4 6 8 10 12 14 16 18 .....產生隨機數,可以由2

我的代碼看起來像:

Random random = new Random(); 
int i = random.nextInt(20); 

希望你知道我想要什麼,你可以幫助我。

+4

或者只是繁衍的結果通過2. – Tunaki

+0

我們需要多少重複的'rand%2!= 0'次級解決方案? –

回答

5
Random random = new Random(); 
int i = random.nextInt(20) * 2; 

只是乘我如果你想保持20下調整隨機上限(由10替換)

int i = random.nextInt(10) * 2; 

環路版本是太沉重,ineficient在我認爲

+1

「在我看來,循環版本太重且效率不高」 - 不能同意更多 –

0

確定性方法 -

Random random = new Random(); 
... 
private int generateRandomDividedByTwo(){ 
    int i = -1; 
    do{ 
     i = random.nextInt(20); 
    }while(i%2!=0); 
    return i; 
} 
+0

爲什麼偶數會產生奇數? –

+1

確保你的隨機與範圍內。 ;)...確定性方法 –

4

簡單:

int number = new Random().nextInt(10) * 2; 
-1
int number = 100; //number of numbers you want to generate 
for(int i = 0; i < number; i++) { 
    int rand = random.nextInt(number); 
    while(rand % 2 != 0) { 
     rand = random.nextInt(number); 
    } 
    System.out.println(rand); 
} 
+1

可能會循環一段時間 –

+0

@SteveKuo它取決於如何bi是極限數字,如果它太大,那麼耶 –

0

檢查結果的餘數/模量,如果是1,加1到我給偶數:

Random random = new Random(); 
int i = random.nextInt(20); 
if(i%2 == 1){ 
    i++; 
}