C# でランダムフロートを生成する
-
C# の
Random.NextDouble()
関数を使用して、0
と1
の間のランダムフロートを生成する -
C# の
Random.NextDouble()
関数を使用して、範囲のないランダムフロートを生成する -
特定の範囲内で C# の
Random.NextDouble()
関数を使用してランダムフロートを生成する -
C# で
Random.NextBytes()
関数を使用してランダムフロートを生成する
このチュートリアルでは、C# でランダムな float 値を生成する方法について説明します。
C# の Random.NextDouble()
関数を使用して、0
と 1
の間のランダムフロートを生成する
残念ながら、C# で乱数を生成するための組み込みメソッドはありません。したがって、この目標を達成するには、いくつかのユーザー定義メソッドに依存する必要があります。Random.NextDouble()
関数は、ランダムな double 値を生成するために使用されます 0
と 1
の間。この関数を使用して、0
と 1
の間のランダムな double 値を生成し、そのランダムな値を float にタイプキャストできます。次のコード例は、C# の Random.NextDouble()
関数を使用して、0
と 1
の間でランダムな float 値を生成する方法を示しています。
using System;
namespace random_float {
class Program {
static void Main(string[] args) {
Random rand = new Random();
for (int i = 0; i < 10; i++) {
float randomFloat = (float)rand.NextDouble();
Console.WriteLine("Random Float = {0}", randomFloat);
}
}
}
}
出力:
Random Float = 0.3914659
Random Float = 0.8927528
Random Float = 0.6579643
Random Float = 0.4404075
Random Float = 0.3213561
Random Float = 0.3399849
Random Float = 0.04562188
Random Float = 0.1881405
Random Float = 0.7638124
Random Float = 0.1645804
C# の Random.NextDouble()
関数を使用して、0
と 1
の間のランダムな float 値を生成しました。最初に 0
と 1
の間でランダムな double 値を生成し、次に型キャストを使用してその double 値を float 値に変換しました。
C# の Random.NextDouble()
関数を使用して、範囲のないランダムフロートを生成する
C# の Random.NextDouble()
関数を使用して、0
と 1
の範囲を設定せずにランダムな float 値を生成することもできます。このメソッドの唯一の範囲は、float データ型が保持できる値の範囲です。float.MaxValue
と float.MinValue
を使用して、float データ型が格納できる最大値と最小値を指定できます。次のコード例は、C# の Random.NextDouble()
関数で範囲を指定せずにランダムな float 値を生成する方法を示しています。
using System;
namespace random_float {
class Program {
static void Main(string[] args) {
Random rand = new Random();
double range = (double)float.MaxValue - (double)float.MinValue;
for (int i = 0; i < 10; i++) {
double sample = rand.NextDouble();
double scaled = (sample * range) + float.MinValue;
float f = (float)scaled;
Console.WriteLine(f);
}
}
}
}
出力:
1.500952E+38
-1.930891E+38
2.951987E+38
-1.205054E+38
-6.225039E+37
3.843309E+36
-1.241292E+38
1.360907E+38
1.769061E+38
-1.577001E+38
C# の Random.NextDouble()
関数を使用して、範囲のないランダムな浮動小数点値を生成しました。double 変数 range
を float.MaxValue - float.MinValue
で初期化し、それを double データ型に型キャストしました。これにより、ランダムな値の範囲が、float データ型が処理できる値の範囲内にとどまることが保証されます。Random.NextDouble()
関数によって返される値に range
を掛け、その結果に float.MinValue
を追加することにより、ランダム値を計算しました。最後に、ランダム値を型キャストを使用して float データ型に変換しました。
特定の範囲内で C# の Random.NextDouble()
関数を使用してランダムフロートを生成する
C# の Random.NextDouble()
関数を使用して、特定の範囲内でランダムな値を生成することもできます。たとえば、1
と 10
の間でランダムなフロート値を生成する必要があるとします。その場合、Random.NextDouble()
関数を使用して 0
と 1
の間のランダムな値を生成し、それを範囲で乗算してから、それに最小値を追加できます。次のコード例は、C# の Random.NextDouble()
関数を使用して、指定された範囲の間に乱数を生成する方法を示しています。
using System;
namespace random_float {
class Program {
static void Main(string[] args) {
Random rand = new Random();
double min = 1;
double max = 10;
double range = max - min;
for (int i = 0; i < 10; i++) {
double sample = rand.NextDouble();
double scaled = (sample * range) + min;
float f = (float)scaled;
Console.WriteLine(f);
}
}
}
}
出力:
3.468961
8.04868
2.210197
8.150612
4.217263
5.328617
4.730082
8.462176
2.679844
8.609394
C# の Random.NextDouble()
関数を使用して、1
と 10
の間のランダムな float 値を生成しました。min
と max
の値を指定し、range = max - min
で range
を計算しました。Random.NextDouble()
関数によって返される値に range
を掛け、その結果に min
を追加することにより、ランダム値を計算しました。最後に、ランダム値を型キャストを使用して float データ型に変換しました。
C# で Random.NextBytes()
関数を使用してランダムフロートを生成する
C# の Random.NextBytes()
関数を使用してランダムな float 値を生成することもできます。Random.NextBytes(byte[])
関数は、ランダムなバイト値を持つ byte[]
配列。byte[]
に格納されているバイトを float データ型に変換することで、ランダムな float 値を生成できます。次のコード例は、C# の Random.NextBytes()
関数を使用してランダムな float 値を生成する方法を示しています。
using System;
namespace random_float {
class Program {
static void Main(string[] args) {
Random rand = new Random();
for (int i = 0; i < 10; i++) {
var array = new byte[4];
rand.NextBytes(array);
float randomFloat = BitConverter.ToSingle(array, 0);
Console.WriteLine("Random Value = {0}", randomFloat);
}
}
}
}
出力:
Random Value = 2.021232E-20
Random Value = -121623
Random Value = -1.564382E+38
Random Value = 1.146448E-14
Random Value = -6.874067E-22
Random Value = -1.226989E+31
Random Value = -3.01435E+08
Random Value = -8.568415E+30
Random Value = -1.454825E+27
Random Value = 3.801608E-26
C# の Random.NextBytes()
関数を使用してランダムな float 値を生成しました。Random.NextBytes()
関数を使用して、array
配列にランダムなバイト値を入力しました。BitConverter.ToSingle()
関数を使用してバイト値を float に変換しました。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn