UpdateSeed (RandomNumberGenerator subroutine): Difference between revisions
m (1 revision) |
m (→Examples) |
||
Line 26: | Line 26: | ||
<p class="code">begin | <p class="code">begin | ||
%i is float | %i is float | ||
%rand is object | %rand is object RandomNumberGenerator | ||
%rand = new(seed='help') | %rand = new(seed='help') | ||
Line 73: | Line 73: | ||
%rand:value = -807607538 | %rand:value = -807607538 | ||
</p> | </p> | ||
==See also== | ==See also== | ||
{{Template:RandomNumberGenerator:UpdateSeed footer}} | {{Template:RandomNumberGenerator:UpdateSeed footer}} |
Revision as of 21:58, 6 February 2011
Reset random sequence with new salt and seed (RandomNumberGenerator class)
This method sets a random number object to the number
that would be created by the New constructor
with the given Seed and Salt specifications.
Syntax
randomNumberGenerator:UpdateSeed[( [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.
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. |
Examples
In the following request, calling updateSeed enables the production of a second series of three values of %rand that matches the initial series of three values of %rand:
begin %i is float %rand is object RandomNumberGenerator %rand = new(seed='help') for %i from 1 to 3 printtext {~} = {%rand:value} end for %rand:updateSeed(seed='help') for %i from 1 to 3 printtext {~} = {%rand:value} end for end
The result is:
%rand:value = 816969049 %rand:value = -148817379 %rand:value = 895846046 %rand:value = 816969049 %rand:value = -148817379 %rand:value = 895846046
If instead the random number is created with a salt, as in the following fragment, an updateSeed call using the salt produces a unique series of three values (salted numbers are not reproducible):
... %rand = new(salt='iou') for %i from 1 to 3 printtext {~} = {%rand:value} end for %rand:updateSeed(salt='iou') for %i from 1 to 3 printtext {~} = {%rand:value} end for
A sample result is:
%rand:value = 320947512 %rand:value = 535019615 %rand:value = -526589924 %rand:value = 387949238 %rand:value = 413468100 %rand:value = -807607538