2009年10月31日 星期六

[C#] 關於亂數產生的範圍

Random rnd = new Random();


int MinValue = 0;


int MaxValue = 2;


MessageBox.Show(rnd.Next(MinValue,MaxValue).ToString());


假設有這樣的一個敘述,那麼亂數產生的值會介於0到1之間,因為亂數產生出來的"最大值會小於MaxValue",如果MaxValue 等於 MinValue 則會直接傳回MinValue。


所以如果要產生0到2之間的亂數必須再把最大值加1,


int MaxValue = 3;


這樣就會產生0到2之間的亂數了...


 


還有另一種方法


int value = rnd.Next()%(2-0+1); // 這樣會產生出0到2之間的亂數


他有一個公式


rnd.Next()%(MaxValue - MinValue + 1) + MinValue; // rnd.Next()%(最大值 - 最小值+ 1) + 最小值;


這樣就能正確的產生我們要的範圍了...


 


※ 一篇防止自己忘記的文章...有錯請多多指正!!

沒有留言:

張貼留言