我的代码的简化版本,生成两个具有随机状态的对象,这些状态从圆圈中统一选取状态。问题是检查对象的状态返回相同的随机点。有什么问题?
import numpy as np
def uniform_spherical_sample(dim=2,size=1):
"""returns a sample of size `size` uniformly from a hypersphere with dimension `dim`"""
a=np.random.multivariate_normal(mean=np.zeros(dim),cov=np.identity(dim),size=size)
normed_a=a/np.linalg.norm(a,axis=1)[...,None]
return normed_a
class a:
def __init__(self,state=uniform_spherical_sample()):
a.state=state
obj=a()
obj2=a()
print obj.state
print obj2.state
两个对象的输出始终是相同的值。我必须强调,运行该函数两次会给出不同的值。