我正在尝试实现一个算法,并为此构建了一个类:class Ksampler:
def __init__(self, K,N,L0):
self.M31=2147483647
self.L0=L0
self.N=N
self.error=self.prob=float(1)/N
self.LNUM =31
self.K=self.t=K
self.M61 = 2305843009213693951
self.Kmax=5*self.K
self.n=pow(2,31)
print 'k=',self.K,'l=',self.LNUM
rn.seed()
self.r=[int(rn.uniform(0,self.M61-1)) for i in range(self.t)]
......
然后我构建了许多实例:
^{pr2}$
但是我的输出是错误的,所以我打印随机数:def prin(self):
print self.r
当我调用这个函数时,我发现这100个随机数只是10组或9组随机数,而不是100组。
例如,这4组随机数就是同一组!在[2193020450880616192, 2067278345537971968, 1594906683693397504, 2120708475826965504, 756774356426756096]
[2193020450880616192, 2067278345537971968, 1594906683693397504, 2120708475826965504, 756774356426756096]
[2193020450880616192, 2067278345537971968, 1594906683693397504, 2120708475826965504, 756774356426756096]
[2193020450880616192, 2067278345537971968, 1594906683693397504, 2120708475826965504, 756774356426756096]
为什么会这样?我在初始化每个实例时使用rn.seed()。在