名前空間: System
自己紹介
ふふ、私は「Random」だ。偶然の力を掌握し、数字の流れを思いのままに操る存在。予測不能?その通り、私の機嫌次第で何が出るかは神のみぞ知る。だが、それが私の魅力でもあるだろう。偶然と必然を気まぐれに、そして計算された混沌を提供してやろう。
基本機能
私が持つ基本の力、それはランダムな数値の生成だ。Next()メソッドを呼べば、0から指定範囲までの整数を気まぐれに放ってやろう。また、NextDouble()で0から1の間の小数を、NextBytes()でバイト配列を生成する。何でも作り出せる、それが私の力だ。
乱数の上限と範囲指定
Next()には範囲を指定することもできるぞ。指定された範囲の整数を返すことで、必要な範囲の乱数を生成できる。だが、その範囲も私の一存で動いていることを忘れるな。上限と下限を指定し、適切な範囲を設定しておくといい。
小数点以下の乱数生成
浮動小数点が必要な場合はNextDouble()を使え。0から1の間で私が適当に選んでやる。細かい数値であっても、私の気まぐれに任せればどんな値が出るかわからない。精度を求めるならしっかりと扱え。
シード値の設定
私の生成する乱数の出力を予測可能にしたい?ならばSeed値を設定するといい。決まった初期化で同じ結果を導き出せるが、私が常に同じ結果を返すなど、そんな安定した存在ではないと知っておくがいい。
ランダムと非同期の注意点
並列処理や非同期処理で私を使うときは注意せよ。複数のスレッドで使う場合、同じシードから生成される結果は同じになってしまう。マルチスレッドには注意し、必要であれば各スレッドで独自のRandomインスタンスを用意することだ。
サンプルコード
using System; namespace RandomExample { class Program { static void Main(string[] args) { // シード値を指定してRandomオブジェクトを作成 int seed = 123; Random random = new Random(seed); // 0から99までのランダムな整数を出力 for (int i = 0; i < 10; i++) { int randomNumber = random.Next(100); Console.WriteLine(randomNumber); } Console.WriteLine(); // シード値を指定せずにRandomオブジェクトを作成 Random random2 = new Random(); // 1から5までのランダムな整数を出力 for (int i = 0; i < 10; i++) { int randomNumber = random2.Next(1, 6); Console.WriteLine(randomNumber); } } } }
サンプルコードの解説
- シード値を指定してRandomオブジェクトを作成:
seed
変数に任意の値を設定し、その値をシード値としてRandomオブジェクトを作成します。 - 0から99までのランダムな整数を出力:
Next(100)
メソッドを使って、0から99までのランダムな整数を10回生成し、コンソールに出力します。 - シード値を指定せずにRandomオブジェクトを作成: シード値を指定せずにRandomオブジェクトを作成します。
- 1から5までのランダムな整数を出力:
Next(1, 6)
メソッドを使って、1から5までのランダムな整数を10回生成し、コンソールに出力します。
0 件のコメント:
コメントを投稿