UpdateSeed (RandomNumberGenerator subroutine)

From m204wiki
Revision as of 21:35, 6 November 2012 by JAL (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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 parameter specifications.

Syntax

randomNumberGenerator:UpdateSeed[( [Seed= string], [Salt= string])]

Syntax terms

randomNumberGenerator A RandomNumberGenerator object variable.
Seed An optional, name required, string 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.
Salt An optional, name required, string 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.

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

See also