from random import Random class MyRandom(Random): def seed(self, seed): self.x = seed def random(self): m, a, c = 2**31, 1103515245, 12345 self.x = (a * self.x + c) % m return self.x / m def getrandbits(self, k): result = 0 for i in range(0, k, 10): result *= 1024 result += int(self.random() * 1024) return result % (2 ** k) prng = MyRandom(8675309) for i in range(3): prng.seed(64640323) print(prng.random(), prng.random(), prng.randrange(100_000)) print(prng.randrange(10 ** 100)) data = list('abcdefghijklm') print(prng.choice(data)) print(prng.choices(data, k=10)) print(prng.sample(data, k=8)) prng.shuffle(data) print(data) print(prng.normalvariate(100, 15), prng.expovariate(5), prng.uniform(1000, 2000)) print(prng.triangular(100, 200), prng.lognormvariate(100, 15)) print(prng.getrandbits(20), prng.getrandbits(20)) if hasattr(prng, 'randbytes'): print(prng.randbytes(20)) print()