|
RandRange
DescriptionGenerates
a pseudo-random integer in the range between two specified numbers.
ReturnsA pseudo-random
integer.
Function syntaxRandRange(number1, number2[, algorithm])
HistoryColdFusion
MX 7: Added the algorithm parameter.
Parameters
Parameter
|
Description
|
number1, number2
|
Integer numbers. If the numbers are not
in the range -2,147,483,648 – 2,147,483,647, ColdFusion generates
an error.
|
algorithm
|
(Optional) The algorithm to use to generate
the random number. ColdFusion installs a cryptography library with the
following algorithms:
CFMX_COMPAT: the algorithm
used in ColdFusion (default).
SHA1PRNG: generates a number using the Sun Java SHA1PRNG
algorithm. This algorithm provides greater randomness than the default
algorithm
IBMSecureRandom: for IBM WebSphere (IBM JVM does not support
the SHA1PRNG algorithm.)
|
UsageVery large
positive or negative values for the number1 and number2 parameters might
result in poor randomness in the results. To prevent this problem,
do not specify numbers outside the range -1,000,000,000 – 1,000,000,000.
ColdFusion
uses the Java Cryptography Extension (JCE) and installs a Sun Java 1.4.2
runtime that includes the Sun JCE default security provider. This
provider includes the algorithms listed in the Parameters section
(except the default algorithm). The JCE framework includes facilities
for using other provider implementations; however, cannot provide
technical support for third-party security providers.
ExampleThe
following example contains a form that requires random number range values,
and lets you optionally specify a random number seed value. It uses cfform controls
and attributes to specify a default range, ensure that the range fields
have values, and validate that the field values are in a specified
integer range. When you submit the form, it checks whether the seed
field has an empty string; if the field has a value, the code uses
the number to seed the random number generator. It then generates
and displays the random number.
<h3>RandRange Example</h3>
<!--- Do the following only if the form has been submitted. --->
<cfif IsDefined("Form.mySeed")>
<!--- Do the following only if the seed field has a non-empty string. --->
<cfif Form.mySeed NEQ "">
<cfoutput>
<b>Seed value is #FORM.mySeed#</b><br>
</cfoutput>
<br>
<!--- Call Randomize to seed the random number generator. --->
<cfset r = Randomize(FORM.mySeed, "SHA1PRNG")>
<cfelse>
<b>No Seed value submitted</b><br>
</cfif>
<!--- Generate and display the random number. --->
<cfoutput><p><b>
RandRange returned: #RandRange(FORM.myInt, FORM.myInt2, "SHA1PRNG")#
</cfoutput></b></p>
</cfif>
<!--- This form uses cfform input validation to check the input range. --->
<cfform action = "#CGI.SCRIPT_NAME#">
<p>Enter the random number Range: From
<cfinput type = "Text" name = "MyInt" value = "1"
RANGE = "-1000000000,1000000000"
message = "Please enter a value between -1,000,000,000 and 1,000,000,000"
validate = "integer" required = "Yes">
To
<cfinput type = "Text" name = "MyInt2" value = "9999"
RANGE = "-1000000000,1000000000"
message = "Please enter a value between --1,000,000,000and 1,000,000,000"
validate = "integer" required = "Yes"></p>
<p>Enter a number to seed the randomizer:
<cfinput type = "Text" name = "mySeed" RANGE = "-1000000000,1000000000"
message = "Please enter a value between -1,000,000,000 and 1,000,000,000"
validate = "integer" required = "No"></p>
<p><input type = "Submit" name = "">
</cfform>
|