UpdateSeed (RandomNumberGenerator subroutine): Difference between revisions

From m204wiki
Jump to navigation Jump to search
m (1 revision)
m (1 revision)
Line 1: Line 1:
<span style="font-size:120%; color:black"><b>Reset random number object using specified Seed an</b></span>
{{Template:RandomNumberGenerator:UpdateSeed subtitle}}
[[Category:RandomNumberGenerator methods|UpdateSeed subroutine]]
<!--DPL?? Category:RandomNumberGenerator methods|UpdateSeed subroutine: Reset random number object using specified Seed an-->
<!--DPL?? Category:System methods|UpdateSeed (RandomNumberGenerator subroutine): Reset random number object using specified Seed an-->
<p>
UpdateSeed is a member of the [[RandomNumberGenerator class]].
</p>


This method sets a random number object to the number
This method sets a random number object to the number
that would be created by the [[New (RandomNumberGenerator constructor)|New constructor]]
that would be created by the [[New (RandomNumberGenerator constructor)|New constructor]]
with the given Seed and Salt specifications.
with the given Seed and Salt specifications.
===Syntax===
==Syntax==
  %rand:UpdateSeed([Seed=seed] [,&nbsp;Salt=salt])
{{Template:RandomNumberGenerator:UpdateSeed syntax}}
===Syntax terms===
===Syntax terms===
<table class="syntaxTable">
<table class="syntaxTable">
Line 17: Line 11:
<td>A RandomNumberGenerator object variable. </td></tr>
<td>A RandomNumberGenerator object variable. </td></tr>
<tr><th><b>Seed=</b><i>seed</i></th>
<tr><th><b>Seed=</b><i>seed</i></th>
<td>An optional, name required, argument that lets you specify a &ldquo;seed&rdquo; for the random number generator. If you provide no seed, the method generates a new, &ldquo;random,&rdquo; starting value for the random number generator.
<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.
  ''seed'' is a string or a longstring. </td></tr>
  ''seed'' is a string or a longstring. </td></tr>
<tr><th><b>Salt=</b><i>salt</i></th>
<tr><th><b>Salt=</b><i>salt</i></th>
<td>An optional, name required, argument that lets you specify a &ldquo;salt&rdquo; 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.
<td>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.</td></tr>
  ''salt'' is a string or a longstring.</td></tr>
</table>
</table>
===Examples===
==Examples==


In the following request, calling updateSeed enables the production of a second
In the following request, calling updateSeed enables the production of a second
Line 81: Line 75:
     %rand:value = -807607538
     %rand:value = -807607538
</pre>
</pre>
==See also==
{{Template:RandomNumberGenerator:UpdateSeed footer}}

Revision as of 19:49, 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

See also