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()
样本的直方图如下: