def __init__(self, seed=0): self.state = seed
def setSeed(self, seed): self.state = seed
def rand(self): return 1.0*self.next()/(1<<32)
def current(self): return self.state
def next(self):
self.state = (69069 * self.state + 12345) & 0xFFFFFFFF
return self.state
class rngB():
def __init__(self, seed=1): self.state = seed
def setSeed(self, seed): self.state = seed
def rand(self): return 1.0*self.next()/(1<<31)
def current(self): return self.state
def next(self):
self.state = (65539 * self.state + 4294967296) & 0x7FFFFFFF
return self.state
class rngC():
def __init__(self, seed=1): self.state = seed
def setSeed(self, seed): self.state = seed
def rand(self): return 1.0*self.next()/(1<<8)
def current(self): return self.state
def next(self):
self.state = ((((16339 * self.state>>4 + 1) & 0xFF) + 4294967296) & 0x7FFFFFFF)<<4
return self.state
class rngD():
def __init__(self, seed=1):
self.state = self.store = seed
def setSeed(self, seed): self.state = seed
def rand(self): return 1.0*self.next()/(1<<31)
def current(self): return self.state
def next(self):
self.store = self.state
self.state = (69069 * self.state + 12345) & 0xFFFFFFFF
self.state = int(.8*self.state+0.2*self.store)
return self.state
class rngE():
def __init__(self, seed=12345): self.state = seed
def setSeed(self, seed): self.state = seed
def rand(self): return 1.0*self.next()/(1<<31)
def current(self): return self.state
def next(self):
self.state = (397204094 * self.state ) & 0x7FFFFFFF
return self.state
- Evaluate the five pseudo random number generators (RNGs) supplied with respect to the quality of the generated random sequence. High quality random number generators are fundamental in ensuring reliable simulations.
Determine the criteria (set of tests) to be used in evaluating RNG.
Write a short report describing the given random number generators and the quality of their output.
1. Evaluate and rank in order of quality, the random number generators (RNGs) given A-E
2. To use the RNGs given you will need first to import the module
From rng import *
3. Create an instant of any of the generators using, rngA, rngB, rngC etc....using
rng = rngA (seed) where the argument (seed) is optional
4. To generate a random integer use rng.next ( )
But you will most probably want to generate floating point number in range [0 1) using
rng.rand ( )
: - import, create an instance, generate, => evaluate and rank => write a detailed report