1. ホーム
  2. c#

[解決済み] 2つの倍数の間の乱数

2022-02-26 12:40:40

質問

2つの倍数の間の乱数を生成することは可能ですか?

public double GetRandomeNumber(double minimum, double maximum)
{
    return Random.NextDouble(minimum, maximum) 
}

そして、次のように呼び出しています。

double result = GetRandomNumber(1.23, 5.34);

何かご意見があればお願いします。

解決方法は?

はい。

Random.NextDouble は 0 から 1 の間の double を返し、これに必要な範囲(最大と最小の差)を掛けて、ベース(最小)に追加します。

public double GetRandomNumber(double minimum, double maximum)
{ 
    Random random = new Random();
    return random.NextDouble() * (maximum - minimum) + minimum;
}

実際のコードでは、random を static メンバにする必要があります。 こうすることで、乱数生成器の作成コストを削減し、非常に頻繁に GetRandomNumber を呼び出すことができるようになります。 呼び出すたびに新しいRNGを初期化しているので、呼び出すたびにシステム時間が変化しないように十分に速く呼び出せば、RNGはまったく同じタイムスタンプでシードを得て、同じ乱数ストリームを生成します。