Random 類別

 

Random 類別是用來產生n種隨機數字

 

一、Random 類別有提供兩個建構函式,分為

1、Random()

說明:其隨機種子預設為時間相依,

例如new兩個Random變數,並不指定種子(時間相依),

Random變數第一次所產生的值將會與另一Random變數第一次所產生的值不同。

2、Random(Int seed)

說明:其隨機種子將指定為Int型別值,

例如new兩個Random變數,並指定相同的種子,

Random變數第一次所產生的值將會與另一Random變數第一次所產生的值相同(偽隨機)。

 

二、方法介紹

1、Int Next()

傳回非負值的隨機整數。

2、Int Next(Int Max)

傳回小於指定之最大值的非負值隨機整數。

3、Int Next(Int Min, Int Max)

傳回指定範圍內的隨機整數。

4、void NextBytes(Byte[] buffer)

以亂數填入指定位元組陣列的元素。

5、double NextDouble()

傳回大於或等於 0.0,且小於 1.0 的隨機浮點數。

 

程式範例

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Random Random = new Random(1);
            byte[] buffer = new byte[] { 1, 2, 3 };

            Console.WriteLine("傳回非負值的隨機整數:" + Random.Next());
            Console.WriteLine("傳回小於指定之最大值的非負值隨機整數:" + Random.Next(100));
            Console.WriteLine("傳回指定範圍內的隨機整數:" + Random.Next(100, 200));

            Console.WriteLine("以亂數填入指定位元組陣列的元素:");
            Console.WriteLine("填入前:");
            foreach (var item in buffer)
            {
                Console.WriteLine(item);
            }
            Random.NextBytes(buffer);
            Console.WriteLine("填入後:");
            foreach (var item in buffer)
            {
                Console.WriteLine(item);
            }

            Console.WriteLine("傳回大於或等於 0.0,且小於 1.0 的隨機浮點數:" + Random.NextDouble());

            Console.ReadKey();
        }
    }
}

 

參考資料:

Random 類別