【发布时间】:2021-02-24 22:10:29
【问题描述】:
我的方法
N=20
X1 = np.zeros((N,))
X2 = np.zeros((N,))
X3 = np.zeros((N,))
for i in range(N):
while (X1[i]+X2[i]+X3[i]>1+sys.float_info.epsilon) or (X1[i]+X2[i]+X3[i]<1-sys.float_info.epsilon):
X1[i]= np.random.random()
X2[i]= np.random.random()
X3[i]= np.random.random()
这是行不通的,因为计算机程序会运行很长时间。有什么聪明的方法吗?
【问题讨论】:
-
因为它要求 X1 X2 X3 从 0 到 1 均匀分布
-
很确定这在数学上对于 n>2 是不可能的。即使使用您展示的方法,您的拒绝抽样也会使最终分布不均匀。