import random as rnd
import time
import os
from matplotlib import pyplot as plt
def lcg(seed, n, r):
m = 2**31
a = 1103515245
c = 12345
nums = []
indicies = []
x = seed
for i in range(n):
x = (a * x + c) % m
nums.append(x % r)
indicies.append(i)
return nums, indicies
def random(seed, n, r):
nums = []
indicies = []
rnd.seed(seed)
for i in range(n):
x = rnd.randint(0, r)
nums.append(x)
indicies.append(i)
return nums, indicies
if __name__ == "__main__":
print("Enter N (amount of numbers)")
n = int(input())
print("Enter R (maximum possible number)")
r = int(input())
seed = time.time()
lcg_nums, lcg_indicies = lcg(seed, n, r)
random_nums, random_indicies = random(seed, n, r)
fig = plt.figure(figsize=(20, 10))
lcg_plot = fig.add_subplot(1, 2, 1)
lcg_plot.set_title("linear congruential generator")
lcg_plot.scatter(lcg_indicies, lcg_nums)
random_plot = fig.add_subplot(1, 2, 2)
random_plot.set_title("built-in random")
random_plot.scatter(random_indicies, random_nums)
fig_path = os.path.join(os.path.dirname(__file__), 'rnd.png')
fig.savefig(fig_path)
print("Saved result as {}".format(fig_path))