2011-04-10 78 views
0

我有這樣的代碼應與生成數字1和100:C#隨機數問題

int aux; 
aux = Game1.rand.Next(101); 
if (aux <= 20) 
{ 
    Trace.WriteLine(aux); 
    seeker = true; 
} 

的問題是我得到的不是每次20小值。如果我在if語句中更改20到30,我總是得到小於或等於30的數字。 我該如何克服這個問題? 謝謝。

+0

對不起,wwwwwhat? – iehrlich 2011-04-10 00:13:35

+0

也許你真的很不幸? – 2011-04-10 00:14:34

+4

按程序設計 – 2011-04-10 00:15:10

回答

1

嘗試像

int aux; 
aux = Game1.rand.Next(101); 
Trace.WriteLine(aux); 

你得到下面的值等於20,只是因爲你如果有()子句正好說你低於或等於20

+0

如果我這樣做,它會正確地產生隨機數,從1到100.但我需要如果語句。我需要20%的機會讓一個對象有一些屬性發生變化... – Sorin 2011-04-10 00:17:07

+1

omg然後你期望你的程序做什麼? – iehrlich 2011-04-10 00:17:53

+0

好的,我需要該類的每個對象,以使屬性的真實概率爲20%。任何其他建議我怎麼能做到這一點? – Sorin 2011-04-10 00:19:09

3

你需要把你的Trace.WriteLine(aux);需要值之前if語句,以便它寫出任何數字高於20(或30,視情況而定):

int aux; 
aux = Game1.rand.Next(101); 
Trace.WriteLine(aux); 

if (aux <= 20) 
{ 
    seeker = true; 
    //... 
} 
+0

謝謝。你的建議幫助我找到了真正的問題:) – Sorin 2011-04-10 00:26:01