Problem this random seed()

Steven D'Aprano steve+comp.lang.python at
Tue Mar 19 15:18:36 CET 2013

On Tue, 19 Mar 2013 06:50:34 -0700, NZach wrote:

> Sorry, my previous reply was completely wrong. The time is initialized
> through the initialize() to 0. So, each time i call main() the
> simulation time is initialized to 0.
> I changed the code in order to print and check the values of
> G.Rnd.expovariate(MachineClass.SrvRate) and
> G.Rnd.expovariate(ArrivalClass.ArvRate)
> here is the code and the changes i made :
> The values are not the same.

Why you think that they should be? They are using random values, of 
course they will be different, until you reset the seed.

py> from random import expovariate, seed
py> seed(123)
py> [expovariate(1) for i in range(3)]
[2.949543607473089, 2.4397037404431217, 0.8983482559638]
py> [expovariate(1) for i in range(3)]
[2.2284035134067692, 0.10402931548508174, 3.2661334288222377]
py> seed(123)  # reset the seed
py> [expovariate(1) for i in range(3)]
[2.949543607473089, 2.4397037404431217, 0.8983482559638]

In your case, you initialise the seed once, using:

class G:
    Rnd = Random(12345)

so when you want to run the same results again, you have to call:


By the way, what is the purpose of class G? 

Also, you import expovariate from the Random module, but never use it.


More information about the Python-list mailing list