[ Arithmetic | Reference Manual | Alphabetic Index ]
seed(+Seed)
Seed the pseudo-random number generator
- Seed
- Integer.
Description
   Used to initialise the seed value used for generating sequences
   of pseudo-random numbers in random/1, random/2 and frandom/1.
   Every seed leads to a particular pseudo-random sequence.  Random
   generation is repeatable by setting the seed to identical values.
   The seed value should be an integer in the range 1 .. 2^31-1.
   The scope of the seed setting depends on the setting of the
   'random_mode' flag (see set_flag/2, get_flag/2):
    - lcg (default)
- 
        The seed is local to the calling engine.
    
- xs
- 
        The seed is local to the calling engine.
    
- system
- 
        The seed has process-wide effect.
    
The initial seed on startup depends on the environment and should
    be considered random.  When a new engine is created from a parent
    engine, it inherits its seed from the parent.  When an engine is
    cloned from an original, it inherits its seed from the original.Modes and Determinism
Exceptions
- (4) instantiation fault 
- Seed is not instantiated.
- (5) type error 
- Seed is instantiated, but not to an integer.
Examples
    ?- (for(_,1,9), foreach(R,Rs) do random(100,R)).
    Rs = [93, 56, 11, 88, 98, 34, 22, 18, 30]
    Yes (0.00s cpu)
    ?- seed(123), (for(_,1,9), foreach(R,Rs) do random(100,R)).
    Rs = [33, 92, 47, 28, 50, 28, 42, 59, 89]
    Yes (0.00s cpu)
    ?- seed(123), (for(_,1,9), foreach(R,Rs) do random(100,R)).
    Rs = [33, 92, 47, 28, 50, 28, 42, 59, 89]
    Yes (0.00s cpu)
See Also
random / 1, random / 2, frandom / 1