import math
import time
import numpy as np
import matplotlib.pylab as plt
import random
class Samples:
def __init__(self):
pass
def rand(self, num, seed = 1):
m = math.pow(2, 32)
a = 214013
c = 2531011
i = 1
x = np.zeros(num)
x[0] = seed
while(i < num):
x[i] = (a * x[i-1] + c) % m
i += 1
return x
def uniform(self, num, seed = 1):
m = math.pow(2, 32)
x = self.rand(num, seed)
return x / m
if __name__=='__main__':
s = Samples()
x00 = s.uniform(1000)
plt.hist(x00,200)
plt.show()
样本的直方图如下: