2015年10月23日 星期五

亂數的使用簡介

在C#中,要使用亂數產生器是非常容易的

他的建構子有兩種,一種是有參數的,一種是沒有參數的,沒有參數的就會拿時間來當作亂數種子來產生亂數,有參數的則會拿該數值跟種子來產生亂數。

所以如果在非常短的時間內,連續要產生器吐出亂數出來,就要注意種子的給法,不然就會出現一堆都是相同的亂數,因為即便你用了無參數的建構子,他用了「時間」來當參數,但是程式跑得太快,時間還沒有變動下,出來的亂數就會一樣了。

所以建議自己傳入參數,而且每次產生亂數產生器的時候,都給一個當下時間+不定變數,比方給loop的i加上時間的Millisecond或者更複雜等等。


Random RandNum = new Random();


Random RandNum = new Random( DateTime.Now.Millisecond + i );