[C#]乱数のシード値に時間を設定するには?

C#

どうも、ちょげ(@chogetarou)です。

乱数をシード値に時間を設定する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

乱数をシード値に時間を設定するには、コンストラクタ「Random(Int32)」を使います。

まず、Randomクラスをインスタンス化します。

インスタンス化する際、Randomの引数に時間をint型に変換した値を指定します。

//time=時間をint型に変換した値
Random rnd = new Random(time);

インスタンス化する際、引数に時間をint型に変換した値を指定することで、乱数のシード値に時間を設定できます。

乱数を取得するには、上記のRandomのインスタンスからNext()やNextDouble()などを呼び出します。

rnd.Next() //整数の乱数
rnd.NextDouble() //小数の乱数

使用例

using System;
public class Example
{
    public static void Main()
    {
        Random rnd = new Random(new DateTime().Millisecond);
        
        for (var i = 0; i < 5; i++)
        {
            Console.WriteLine(rnd.Next(1, 10));
        }
    }
}
/*
    出力:
    8
    7
    5
    5
    3
*/

コメント

タイトルとURLをコピーしました