任意の整数から任意の整数までの乱数
乱数を発生させるにはRnd関数を使います。
Rnd関数は0 以上、1 未満の範囲の値を返す。
試しに表示させてみる。
Sub macro100113a() MsgBox Rnd |
結果の例は
こんな乱数発生してます。
まず、1から6までの整数乱数を発生させてみる。
Rnd関数が返す乱数は
0 <= Rnd < 1 より
0 * 6 <= Rnd * 6 < 1 * 6
0 <= Rnd * 6 < 6
つまりRnd関数に6をかけると
0以上6より小さい
単精度浮動小数点数型 (Single) を返す。
これを整数型に変換すると
0, 1, 2, 3, 4, 5
のどれかの値を返すことになる。
整数への変換はInt関数を使う
Int(6 * Rnd)
今は、1から6までの整数がほしいから
さらに1を足す。
Int((6 * Rnd) + 1)
これを使ったコードはこちら
Sub macro100113b() Dim MyValue As Integer |
結果の例は
次に
任意の整数から任意の整数までの
乱数整数を発生させる。
これには
上述の1から6までの整数乱数を発生させるために使った
Int((6 * Rnd) + 1)
の6と1の部分を変えるだけ。
例えば、14から23までの整数乱数がほしかったら
Int(((23 - 14) * Rnd) + 14)
Int((9 * Rnd) + 14)
にします。
Function プロシージャを作ってみました。
コードと使用例はこちら
Function MyRnd(a As Integer, x As Integer) As Integer MyRnd = Int(((x - a) * Rnd) + a) MsgBox MyRnd(14, 23) |
| 固定リンク
この記事へのコメントは終了しました。

コメント