我有以下代碼。隨機r的作品,並得到我約10%,如果。然而,rr似乎並不奏效。它總是返回0.我做錯了什麼?嵌套隨機發生器不是隨機的
我想在兩個選擇中隨機選擇10%的時間。這是在一個asp.net應用程序。代碼在點擊按鈕時執行。
Random r = new Random();
Random rr = new Random();
int randomnum = r.Next(0, 100);
if (randomnum <= 10)
{
int randompick = rr.Next(0, 2);
if (randompick == 0)
{
難道你只是使用相同的隨機選擇對象? – 2012-08-03 23:21:35
** NB ** _「默認種子值是從系統時鐘派生的,並具有有限分辨率。因此,通過調用默認構造函數緊密連續創建的不同Random對象將具有相同的默認種子值,並且,因此,將產生相同的隨機數集合。「_ http://msdn.microsoft.com/en-us/library/h343ddh9.aspx – 2012-08-03 23:22:32
」隨機「類的良好經驗法則:不要重新構造每次你需要一個號碼時,RNG。創建一個'Random',將其存儲在一個具有類作用域的變量中,只要需要一個數字,就調用'r.Next(X,Y)'。 – 2012-08-03 23:24:06