Rnd 関数 (Visual Basic)
更新 : 2008 年 7 月
単精度浮動小数点数型 (Single) の乱数を返します。
Public Shared Function Rnd[(Number)] As Single
パラメータ
- Number
省略可能です。単精度浮動小数点数型 (Single) の値、または任意の有効な単精度浮動小数点数型 (Single) の式です。
戻り値
number の値 |
Rnd による生成結果 |
---|---|
number < 0 |
常に、Number のシード値によって決まる同じ数値を返します。 |
number > 0 |
乱数系列の次の乱数を返します。 |
number = 0 |
直前に生成した乱数を返します。 |
省略したとき |
乱数系列の次の乱数を返します。 |
解説
Rnd 関数は 0 以上、1 未満の範囲の値を返します。
Number の値によって、Rnd 関数が返す乱数が決まります。
初期シード値が変わらない限り、一連の Rnd 関数が返す乱数系列は同じになります。これは、連続する Rnd 関数が乱数系列の中の直前に生成された乱数をシード値として、次の乱数をそれぞれ生成するためです。
システム タイマから取得した新しいシード値を使って、乱数ジェネレータを初期化するには、Rnd 関数を呼び出す前に、引数を指定せずに Randomize ステートメントを実行してください。
任意の範囲の整数の乱数を生成するには、次の式を使用してください。
randomValue = CInt(Math.Floor((upperbound - lowerbound + 1) * Rnd())) + lowerbound
ここでは、upperbound が範囲内の最大数で、lowerbound が範囲内の最小数です。
メモ : |
---|
乱数系列を繰り返すには、数値を指定して Randomize ステートメントを実行する直前に、負の引数を指定して Rnd 関数を呼び出します。Number に同じ値を指定して Randomize ステートメントを使用しても、前の乱数系列を繰り返すことはできません。 |
セキュリティに関するメモ : |
---|
Random ステートメントと Rnd 関数の開始にはシード値が使用され、有限の範囲で減少する値が生成されるため、それらのアルゴリズムを知っている人には結果が予測できる場合があります。このため、暗号化に使用する乱数の生成には、Random ステートメントと Rnd 関数を使用しないでください。 |
使用例
Rnd 関数を使って、1 ~ 6 の範囲でランダムな整数を生成する例を次に示します。
' Initialize the random-number generator.
Randomize()
' Generate random value between 1 and 6.
Dim value As Integer = CInt(Int((6 * Rnd()) + 1))
必要条件
名前空間 : Microsoft.VisualBasic
モジュール : VBMath
**アセンブリ :**Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll)
参照
参照
変更履歴
日付 |
履歴 |
理由 |
---|---|---|
2008 年 7 月 |
コード例を変更 |
カスタマ フィードバック |