# GAMS Support Wiki

### Site Tools

gams:generate_different_random_numbers_when_re-running_one_of_the_random_number_generators

# Ho do I generate different random numbers when re-running one of the random number generators?

Q: I tried to generate some random numbers by using uniform(x,y), but I got the same “random” numbers every time. My code is attached below.

```loop(i,
A(i)= uniform(0,1);
); ```

The random numbers are generated using a deterministic algorithm (called a generator) inside GAMS to ensure reproducible runs. If you want different numbers on different runs, you must reseed the generator (by setting `execseed`). The value of `execseed` has to be between 0.0 and 10**9. You may use something like:

```set i /i1*i10/;
parameter A(i);
execseed = 1e8*(frac(jnow));
loop(i,
A(i) = uniform(0,1);
);
option decimals=0;display A;```

Running this model twice returns:

```----      7 PARAMETER A

i1  9.284681E-1,    i2  6.635613E-1,    i3  5.481121E-1,    i4  8.099392E-1
i5  6.981181E-1,    i6  3.511729E-1,    i7  8.274803E-1,    i8  1.329265E-1
i9  5.253862E-1,    i10 5.751743E-1
```

and:

```----      7 PARAMETER A

i1  7.756601E-1,    i2  8.195542E-2,    i3  1.093455E-1,    i4  6.673705E-1
i5  3.787748E-2,    i6  3.917081E-1,    i7  6.981375E-1,    i8  5.950382E-2
i9  9.432999E-1,    i10 6.857027E-1```

Do not update the seed within the loop! There is no need for doing that and the value of `jnow` may not be updated for each element of the loop (and thus `execseed` may not change). The following code illustrates this:

```Scalar old, new, count;
new = jnow;
old = new;
count = 0;
While(new=old,
count = count + 1;
new   = jnow;
);
Display count;```

The outcome depends on the speed of your PC, but on a current machine it goes through the While loop 216 times before jnow changes:

`----      9 PARAMETER count                =      216.000  `