プロラグラムにランダム性を与える
乱数という言葉を聞いたことはあるでしょうか? 乱数はいかなる法則性や規則性も見られない数の列と考えることが出来ます.乱数を使用することによって,プログラムの中で,確率的な要因(例:コインの裏表,サイコロなど)を表現することが出来ます.
大体のプログラミング言語では,乱数を扱うことが出来ます.Visual Basic においても,乱数を発生するためのメソッドが用意されています.そのため,乱数を使用したいときには,ステートメントとして乱数を呼び出す必要があります.試しに,ボタンを押すと乱数を発生させるプログラムを作ってみましょう!
Dim x As Double
x = Rnd(1)
Label1.Text = x
さて,上述のプログラムですが,Rnd(1) というステートメントがありますが,これが乱数を発生させるメソッドになります.Rnd(1) を記述すると,0~1 未満の数値(小数)をランダムに発生してくれます.ちなみに Rnd(2) と記述すれば,0~2 の数値(小数)をランダムに発生するという訳ではありません.
この乱数を用いて,コインの裏表のような事象を表現してみましょう.以下のようなプログラムを作成してみてください.
Dim x As Integer
x = Int(Rnd(1) * 2) + 1
If x = 1 Then
Label1.Text = "表"
Else
Label1.Text = "裏"
End If
Button コントロールを押したときのイベントとして,プログラムを記述すると,"表"と"裏"がランダムに表示されることが確認できます.各処理を純に見ていくと,まず,「Int(Rnd(1) * 2) + 1」という演算が最初に行われています.先程述べたようにRnd(1) は小数を出力するのですが,ここでは,表か裏を表現したいので,1または2に変換してあげます.次に,Int()というメソッドが使われていますが,これはカッコの中身を整数(小数点切り捨て)に変換しますという処理になります.そのため,「Rnd(1) * 2」は 0~2未満の小数が出力されることから,x には,1 または 2 の整数が代入されます.その後,IFステートメントを使用することで,1の場合は"表",それ以外は"裏"というように表示をさせている仕組みになります.