C# Random類
C# Random 類是一個產生偽隨機數字的類,它的構造函數有兩種。
- New Random();
- New Random(Int32)。
前者是根據觸發那刻的系統時間做為種子,來產生一個隨機數字,后者可以自己設定觸發的種子,一般都是用 UnCheck((Int)DateTime.Now.Ticks) 做為參數種子。
因此如果計算機運行速度很快,如果觸發 Randm 函數間隔時間很短,就有可能造成產生一樣的隨機數,因為偽隨機的數字,在 Random 的內部產生機制中還是有一定規律的,並非是真正意義上的完全隨機。
Random 類中提供的 Next、NextBytes 以及 NextDouble 方法可以生成整數類型、byte 數組類型以及雙精度浮點型的隨機數,詳細說明如下表所示。
方法 | 描述 |
---|---|
Next() | 每次產生一個不同的隨機正整數 |
Next(int max Value) | 產生一個比 max Value 小的正整數 |
Next(int min Value,int max Value) | 產生一個 minValue~maxValue 的正整數,但不包含 maxValue |
NextDouble() | 產生一個0.0~1.0的浮點數 |
NextBytes(byte[] buffer) | 用隨機數填充指定字節數的數組 |
下面通過實例來演示 Random 類中方法的使用。
【實例】分別使用 Next、NextDouble 以及 NextBytes 方法生成隨機數。
根據題目要求,代碼如下。
class Program { static void Main(string[] args) { Random rd = new Random(); Console.WriteLine("產生一個10以內的數:{0}", rd.Next(0, 10)); Console.WriteLine("產生一個0到1之間的浮點數:{0}", rd.NextDouble()); byte[] b = new byte[5]; rd.NextBytes(b); Console.WriteLine("產生的byte類型的值為:"); foreach(byte i in b) { Console.Write(i + " "); } Console.WriteLine(); } }
執行上面的代碼,效果如下圖所示。

從結果可以看出,通過 Random 類中的方法產生了不同類型的隨機數。
http://c.biancheng.net/view/2830.html