2012年12月12日水曜日

Randomize なんてものがあって

これは Visual Basic Advent Calendar 2012 の記事です。

VisualBasic 固有というよりも、旧来の Basic より脈々と受け継がれてきた命令の一つに Randomize があります。乱数を利用する際に初期化を行う命令なのですが、.NETでの一般的な乱数発生命令と微妙に使い方が違ったりしています。


   1:      Sub Main()
   2:   
   3:          Randomize()
   4:          Console.WriteLine("乱数:" + Rnd.ToString)
   5:   
   6:          Dim r = New Random()
   7:          Console.WriteLine("乱数2:" + r.Next.ToString)
   8:   
   9:          Console.ReadLine()
  10:   
  11:      End Sub

こんな感じで利用します。ロジックだけみると書き方が異なるだけで同じように動きそうなものですが・・・。

乱数

実際に動作させると上記のように結果が異なるのがわかると思います。

RandomizeとRndを利用した乱数は Single 型の小数値ですが、Random クラスと Next メソッドを利用した場合は整数にて取得が行えます。

昔の Basic では発生した乱数に 100 をかけてうんぬん、とやられた方もいらっしゃるかも知れませんね。懐かしい話です。

だからどうした、という話ですがw

追記:2012/12/13 @yaju さんの指摘で 少数→小数 と訂正しました

0 件のコメント:

コメントを投稿