New (RandomNumberGenerator constructor): Difference between revisions
Jump to navigation
Jump to search
m (1 revision) |
m (1 revision) |
||
Line 1: | Line 1: | ||
{{Template:RandomNumberGenerator:New subtitle}} | {{Template:RandomNumberGenerator:New subtitle}} | ||
The New method creates a random number. | The <var>New</var> method creates a random number. | ||
The kind of random number depends on the parameters specified when New is invoked: | The kind of random number depends on the parameters specified when <var>New</var> is invoked: | ||
<ul> | <ul> | ||
<li>If no parameters are specified, New returns an unpredictable random number | <li>If no parameters are specified, <var>New</var> returns an unpredictable random number | ||
each time it is called. | each time it is called. | ||
<li>If a Salt parameter is specified, New returns an unpredictable random number | <li>If a Salt parameter is specified, <var>New</var> returns an unpredictable random number | ||
that is based on initial input that has an extra degree of randomness. | that is based on initial input that has an extra degree of randomness. | ||
<li>If only a Seed parameter is specified, New returns the next number in a | <li>If only a Seed parameter is specified, <var>New</var> returns the next number in a | ||
specific series of pseudo-random numbers. | specific series of pseudo-random numbers. | ||
Subsequent identical calls produce the next items in the series; | Subsequent identical calls produce the next items in the series; | ||
Line 18: | Line 18: | ||
<table class="syntaxTable"> | <table class="syntaxTable"> | ||
<tr><th>%rand</th> | <tr><th>%rand</th> | ||
<td>A RandomNumberGenerator object variable. </td></tr> | <td>A <var>RandomNumberGenerator</var> object variable. </td></tr> | ||
<tr><th>Seed=seed</th> | <tr><th>Seed=seed</th> | ||
<td>An optional, name required, argument that lets you specify a "seed" for the random number generator. If you provide no seed, the method generates a new, "random," starting value for the random number generator, which produces an unpredictable random number result. | <td>An optional, name required, argument that lets you specify a "seed" for the random number generator. If you provide no seed, the method generates a new, "random," starting value for the random number generator, which produces an unpredictable random number result. | ||
Line 31: | Line 31: | ||
==Usage notes== | ==Usage notes== | ||
<ul> | <ul> | ||
<li>If no Seed argument is specified, the New method generates a random seed | <li>If no Seed argument is specified, the <var>New</var> method generates a random seed | ||
(based on multiple, internal system data like STCK value, frequently-changed parts of | (based on multiple, internal system data like STCK value, frequently-changed parts of | ||
memory, and so on). | memory, and so on). | ||
Line 42: | Line 42: | ||
is to produce a reproducible random sequence, there is probably not much reason | is to produce a reproducible random sequence, there is probably not much reason | ||
to specify both a salt and a seed, which would nullify reproducibility. | to specify both a salt and a seed, which would nullify reproducibility. | ||
<li>For an example of the New method, see the [[RandomNumberGenerator class#Example|RandomNumberGenerator class]] page. | <li>For an example of the <var>New</var> method, see the [[RandomNumberGenerator class#Example|RandomNumberGenerator class]] page. | ||
</ul> | </ul> | ||
==See also== | ==See also== | ||
{{Template:RandomNumberGenerator:New footer}} | {{Template:RandomNumberGenerator:New footer}} |
Revision as of 21:50, 6 February 2011
Create a new RandomNumberGenerator (RandomNumberGenerator class)
The New method creates a random number.
The kind of random number depends on the parameters specified when New is invoked:
- If no parameters are specified, New returns an unpredictable random number each time it is called.
- If a Salt parameter is specified, New returns an unpredictable random number that is based on initial input that has an extra degree of randomness.
- If only a Seed parameter is specified, New returns the next number in a specific series of pseudo-random numbers. Subsequent identical calls produce the next items in the series; recreating or resetting the object with the same seed lets you reproduce the series.
Syntax
%randomNumberGenerator = [%(RandomNumberGenerator):]New[( [Seed= string], - [Salt= string])]
Syntax terms
%rand | A RandomNumberGenerator object variable. |
---|---|
Seed=seed | An optional, name required, argument that lets you specify a "seed" for the random number generator. If you provide no seed, the method generates a new, "random," starting value for the random number generator, which produces an unpredictable random number result.
seed is a string or a longstring. |
Salt=salt | An optional, name required, argument that lets you specify a "salt" for the random number generator. A salt is additional data to be used (along with the explicit or default seed) to improve the randomness of the random generator's initial value.
salt is a string or a longstring. |
Usage notes
- If no Seed argument is specified, the New method generates a random seed (based on multiple, internal system data like STCK value, frequently-changed parts of memory, and so on).
- If you want to increase the randomness of the initial value passed to the random number generator, but you don't want a reproducible sequence, you can pass additional data to be used to generate the random starting value, maybe from something a user types in. This additional value is called a salt.
- Since the likely use of explicitly specifying a seed is to produce a reproducible random sequence, there is probably not much reason to specify both a salt and a seed, which would nullify reproducibility.
- For an example of the New method, see the RandomNumberGenerator class page.