C# Random類


C# Random類

C# Random 類是一個產生偽隨機數字的類,它的構造函數有兩種。

  1. New Random();
  2. 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函數的應用


從結果可以看出,通過 Random 類中的方法產生了不同類型的隨機數。

 

http://c.biancheng.net/view/2830.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM