 # Programming-Idioms • Or search :

# Idiom #69 Seed random generator

Use seed s to initialize a random generator.

If s is constant, the generator output will be the same each time the program runs. If s is based on the current value of the system clock, the generator output will be different each time.

`with Ada.Numerics.Discrete_Random;`
```declare
Package Rand is new Ada.Numerics.Discrete_Random (Integer);
Gen : Rand.Generator;
begin
Rand.Reset (Gen, Initiator => S);
end;```
`#include <stdlib.h>`
`srand(s);`
`#include <stdlib.h>`
`srand(s);`
`using System;`
`var random = new Random(s);`
`std.random, std.stdio;`
```auto s = 8;
auto gen = Random(s);
writeln(gen.front);```
`import "dart:math";`
```var r = new Random(s);
```
```  call random_seed(size = n)
allocate(seed(n))
! ...
call random_seed(put=seed)
```
`import "math/rand"`
`rand.Seed(s)`
`import "math/rand"`
`r := rand.New(rand.NewSource(s))`
```System.Random.mkStdGen s
```
`const seed = require ('seedrandom')`
`seed (s)`
`import java.util.Random;`
`Random r = new Random(s);`
`val random = Random(seed=s)`
`call random_seed (put=s)`
`math.randomseed(s)`
`srand(\$s);`
```var
SomeInteger: Integer;
Value: double;
begin
...
//initializes the PRNG's seed with a value depensing on system time
Randomize;
Value := random;
...
//Output will be the same eacht time the program runs
RandSeed := SomeInteger;
Value := random;
...
end.```
`srand(\$s);`
`import random`
`rand = random.Random(s)`
`r = Random.new(s)`
`use rand::{Rng, SeedableRng, rngs::StdRng};`
```let s = 32;
let mut rng = StdRng::seed_from_u64(s);```

programming-idioms.org