RANDRANGE  
説明

指定された 2 つの数値間の範囲で擬似乱数 (整数) を生成します。

 
戻り値

擬似乱数 (整数)

 
カテゴリ

算術関数、セキュリティ関数

 
関数のシンタックス
RandRange(number1, number2[, algorithm])
 
ヒストリ

ColdFusion MX 7: algorithm パラメータが追加されました。

 
関連項目

Rand、Randomize

 
パラメータ

 
使用方法

number1 パラメータおよび number2 パラメータが正または負の非常に大きな値である場合、得られる結果のランダム性が低下することがあります。この問題を回避するには、-1,000,000,000 〜 1,000,000,000 の範囲外の数値を指定しないようにします。

ColdFusion MX 7 では、JCE (Java Cryptography Extension) を使用し、Sun JCE デフォルトセキュリティプロバイダを含む Sun Java 1.4.2 ランタイムがインストールされます。このプロバイダには、前の「パラメータ」に示したアルゴリズム (デフォルトのアルゴリズムを除く) が含まれています。JCE フレームワークには、他のプロバイダを実装するための機能も含まれています。ただし、当社ではサードパーティのセキュリティプロバイダに対するテクニカルサポートは提供していません。

 

次の例では、乱数の値の範囲を指定し、必要に応じて乱数のシード値を指定するフォームを使用します。cfform のコントロールおよび属性を使用して、デフォルトの範囲が指定され、範囲フィールドに値が設定され、そのフィールド値が指定の範囲内にあることが確認されます。フォームを送信すると、シードフィールドに空の文字列がないかどうかが確認されます。フィールドに値がある場合、コードはその値を使用して乱数ジェネレータのシードを設定します。次に、乱数が生成され、表示されます。

<h3>RandRange の例</h3>

<!--- フォームが送信された場合に限り、次の処理を実行します。 --->
<cfif IsDefined("Form.mySeed")>

   <!--- シードフィールドに空の文字列がない場合に限り、次の処理を実行します。 --->
   <cfif Form.mySeed NEQ "">
      <cfoutput>
         <b>シード値 : #FORM.mySeed#</b><br>
      </cfoutput>
      <br>

      <!--- Randomize を呼び出して、乱数ジェネレータのシードを設定します。 --->
      <cfset r = Randomize(FORM.mySeed, "SHA1PRNG")>
   <cfelse>
      <b>送信されるシード値なし</b><br>
   </cfif>

   <!--- 乱数を生成して表示 --->
   <cfoutput><p><b>
      返される RandRange : #RandRange(FORM.myInt, FORM.myInt2, "SHA1PRNG")#
   </cfoutput></b></p>
</cfif>

<!--- このフォームでは cfform 入力検証を使用して入力範囲をチェックします。 --->
<cfform action = "#CGI.SCRIPT_NAME#">
<p>乱数の範囲を入力します。 : From 
<cfinput type = "Text" name = "MyInt" value = "1" 
   RANGE = "-1000000000,1000000000"
   message = "-1,000,000,000 〜 1,000,000,000 の範囲内の値を入力してください。"
   validate = "integer" required = "Yes">
To 
<cfinput type = "Text" name = "MyInt2" value = "9999" 
   RANGE = "-1000000000,1000000000"
   message = "-1,000,000,000 〜 1,000,000,000 の範囲内の値を入力してください。"
   validate = "integer" required = "Yes"></p>
<p>乱数ジェネレータのシードに使用する値を入力してください。 
<cfinput type = "Text" name = "mySeed" RANGE = "-1000000000,1000000000"
   message = "-1,000,000,000 〜 1,000,000,000 の範囲内の値を入力してください。"
   validate = "integer" required = "No"></p>
<p><input type = "Submit" name = "">
</cfform>
NUMBER1、NUMBER2  
整数です。数値が -2,147,483,648 〜 2,147,483,647 の範囲外である場合、ColdFusion ではエラーが生成されます。
ALGORITHM  
(オプション) 乱数を生成するために使用するアルゴリズムです。ColdFusion MX では、 次のアルゴリズムを使用する暗号ライブラリがインストールされます。
  • CFMX_COMPAT: (デフォルト) ColdFusion MX で使用するアルゴリズムです。
  • SHA1PRNG: Sun Java SHA1PRNG アルゴリズムを使用して数値を生成します。このアルゴリズムでは、デフォルトのアルゴリズムよりもランダム性を高めることができます。
  • IBMSecureRandom: IBM WebSphere 用のアルゴリズムです。IBM JVM は SHA1PRNG アルゴリズムをサポートしません。