関数 RND() は非常に重要な関数です。ランダムな挨拶、日付のランダムなプロンプト、さらにはゲームを作成したい場合は、この関数を使用するとよいでしょう。
ASP関数rnd()
関数 rnd() は 0 から 1 までの乱数を返します。
使用方法:
次のようにコードをコピーします。
response.write rnd() '可能な戻り値: 0.2357746
rnd() 関数を使用して、特定の範囲内の整数 (たとえば、0 以上で特定の整数の上限以下の数値) を返す場合は、次のメソッドを使用できます。
次のようにコードをコピーします。
response.write int((upperbound+1)*rnd)
たとえば、次のステートメントは 0 ~ 5 の整数を返します。
次のようにコードをコピーします。
応答.write int((5+1)*rnd)
0 より大きい下限を持つ特定の範囲内の乱数を取得したい場合は、次のメソッドを使用できます。
次のようにコードをコピーします。
response.write int((上限-下限+1)*rnd+下限)
たとえば、次のスクリプトは 50 ~ 75 の整数を生成します。
次のようにコードをコピーします。
応答.write int((75-50+1)*rnd+50)
ただし、乱数が生成されるのですが、毎回同じ乱数になるという問題があります。この問題を解決するのに役立つ特別なステートメントがあり、それが Randomize ステートメントです。
Randomize ステートメントは、関数 rnd に新しい乱数シーケンスの使用を強制するために使用されます。 Randomize ステートメントは、コンピューターのシステム タイマーを通じて関数 rnd に新しいシード値を提供します。
関数 RND() は非常に重要な関数です。ランダムな挨拶、ランダムなデートのプロンプト、さらにはゲームを構築したい場合は、この関数を使用するとよいでしょう。
関数 RND() は 0 から 1 までの乱数を返します。この関数とその可能な戻り値の例を次に示します。
<%=RND()%>
0.7055643
通常、この関数を使用して特定の範囲内の整数を返すことに関心があります。 0 以上で特定の整数未満の数値を返すには、次のステートメントを使用できます。
<%=INT((上限+1)*RND)%>
式の上限を、生成する最大の乱数に置き換えます。たとえば、次のスクリプトは 0 ~ 5 の数値を返します。
<%=INT(5+1)*RND)%>
0 より大きい下限を持つ範囲内で乱数を生成する場合は、次のスクリプトを使用できます。
<%=INT((上限 – 下限 + 1)*RND+下限)%>
たとえば、次のスクリプトは 50 ~ 75 (両端の値を含む) の範囲の乱数を生成します。
<%=INT((75-50+1)*RND+50)%>
関数 RND() を使用すると、必ず同じ順序で同じ乱数が返されることに驚かれるかもしれません。次の例を考えてみましょう。
次のようにコードをコピーします。
<%
Pick_Greeting=INT((2+1)*RND)
SELECT CASE Pick_Greeting
ケース0
挨拶=「ようこそ!」
ケース1
挨拶=「こんにちは!」
ケース2
挨拶=「会えて嬉しいです!」
エンドセレクト
%>
<%=ご挨拶%>
このスクリプトは、ランダムな挨拶を作成して出力します。ただし、想像どおりに機能しない可能性もあります。誰かがこのスクリプトを含む Web ページをダウンロードすると、同じランダムな挨拶が印刷されます。誰かがこのページに複数回戻ってきた場合、同じ挨拶が表示されます。乱数が生成されますが、毎回同じ乱数になります。
この問題を解決する特別なステートメントがあります。 RANDOMIZE ステートメントは、関数 RND() に新しい乱数シーケンスの使用を強制するために使用されます。 RANDOMIZE ステートメントは、コンピューターのシステム タイマーを通じて関数 RND() に新しいシード値を提供します。次の例は、上記の例を変更して正しく動作するようにする方法を示しています。
次のようにコードをコピーします。
<%
ランダム化
Pick_Greeting=INT((2+1)*RND)
SELECT CASE Pick_Greeting
ケース0
挨拶=「ようこそ!」
ケース1
挨拶=「こんにちは!」
ケース2
挨拶=「会えて嬉しいです!」
エンドセレクト
%>
<%=ご挨拶%>
このスクリプトは正しく動作します。このスクリプトが実行されるたびに、新しいランダムな挨拶が生成されます。 RANDOMIZE ステートメントは、関数 RND() に新しい乱数シーケンスの使用を強制します。
最後に、関数 RND() によって生成された値の分布に興味がある場合は、次のスクリプトを使用してそれを確認できます。
次のようにコードをコピーします。
<%
CONST 上限 = 9、反復回数 = 100
REDIM DIST(上限)
ランダム化
FOR i=1 から反復まで
rnd_num=INT((上限+1)*RND)
DIST(rnd_num)=DIST(rnd_num)&”#”
次
FOR i=0 から上限まで
%>
<%=i&" : "&DIST(i)%><BR>
<%
次
%>
このスクリプトは、0 から 9 までの 100 個の乱数を生成します。各値に対して生成された乱数の数を追跡します。最後に、結果を表す棒グラフを印刷します。