私は、C#の乱数ジェネレーターがどのように機能するのか疑問に思っていました。また、ランダムに生成するプログラムを作成する方法に興味がありましたWHOLE INTEGER 1-100の数字.
私は、C#の乱数ジェネレーターがどのように機能するのか疑問に思っていました。
これは実装固有ですが、 疑似乱数ジェネレーターのウィキペディアエントリ からアイデアが得られます。
また、1〜100のランダムな整数値を生成するプログラムを作成する方法にも興味がありました。
Random.Next(int, int)
を使用できます。
Random rng = new Random();
for (int i = 0; i < 10; i++)
{
Console.WriteLine(rng.Next(1, 101));
}
上限はexclusiveであることに注意してください。これがここで101を使用した理由です。
また、Random
に関連付けられたいくつかの「落とし穴」に注意する必要があります。特に、notごとに新しいインスタンスを作成する必要があります。短い時間内に大量の乱数を生成すると、繰り返しが多く発生します。 このトピックに関する私の記事 を参照してください。
Random.Next(int maxValue)
を使用できます。
Return:ゼロ以上、maxValue未満の32ビット符号付き整数。つまり、戻り値の範囲には通常、ゼロが含まれますが、maxValueは含まれません。ただし、maxValueがゼロの場合、maxValueが返されます。
_var r = new Random();
// print random integer >= 0 and < 100
Console.WriteLine(r.Next(100));
_
ただし、この場合、次のように Random.Next(int minValue, int maxValue)
を使用できます。
_// print random integer >= 1 and < 101
Console.WriteLine(r.Next(1, 101);)
// or perhaps (if you have this specific case)
Console.WriteLine(r.Next(100) + 1);
_
私はしばらくの間、インターネットでRNGを検索しています。私が見たものはすべて複雑すぎるか、探していたものではありませんでした。いくつかの記事を読んだ後、この簡単なコードを思いつくことができました。
{
Random rnd = new Random(DateTime.Now.Millisecond);
int[] b = new int[10] { 5, 8, 1, 7, 3, 2, 9, 0, 4, 6 };
textBox1.Text = Convert.ToString(b[rnd.Next(10)])
}
簡単な説明、
これはうまく機能します。
100未満の乱数を取得するには
{
Random rnd = new Random(DateTime.Now.Millisecond);
int[] b = new int[10] { 5, 8, 1, 7, 3, 2, 9, 0, 4, 6 };
int[] d = new int[10] { 9, 4, 7, 2, 8, 0, 5, 1, 3, 4 };
textBox1.Text = Convert.ToString(b[rnd.Next(10)]) + Convert.ToString(d[rnd.Next(10)]);
}
3、4、5、および6 ...桁の乱数についても同様です。
これが誰かを積極的に支援することを願っています。