Random 均匀采样(x,y,z),使x+y+z=0

Random 均匀采样(x,y,z),使x+y+z=0,random,geometry,Random,Geometry,我试图从所有点x,y,z的集合中均匀取样,这样x+y+z=0和-1你的六边形由三个平行四边形组成。所以,随机选择其中一个平行四边形,然后均匀地在所选平行四边形内生成点是值得的 平行四边形的基向量: v[0][0] = (-1,1,0) v[0][1] = (0,-1,1) v[1][0] = (0,-1,1) v[1][1] = (1,0,-1) v[2][0] = (1,0,-1) v[2][1] = (-1,1,0) 生成步骤: np = randominteger(0..2) t = r

我试图从所有点x,y,z的集合中均匀取样,这样x+y+z=0和-1你的六边形由三个平行四边形组成。所以,随机选择其中一个平行四边形,然后均匀地在所选平行四边形内生成点是值得的

平行四边形的基向量:

v[0][0] = (-1,1,0)
v[0][1] = (0,-1,1)
v[1][0] = (0,-1,1)
v[1][1] = (1,0,-1)
v[2][0] = (1,0,-1)
v[2][1] = (-1,1,0)
生成步骤:

np = randominteger(0..2)
t = randomfloat(0..1)
u = randomfloat(0..1)
point = t * v[np][0] + u * v[np][1]

引用消息来源的答案:。。。如果从超立方体中均匀采样,则无法在单纯形中均匀采样。但是,如果你用适当的指数分布从超立方体中取样,这个效应就会抵消。不,我在做一个算法,其中一个排序n-1个点,然后取差。这就是你所指的算法正上方提出的算法。是的,这个算法没有给出期望的结果,但是归一化指数算法给出了期望的结果−从区间0,1取1个随机数,然后将0和1相加,得到n+1个数的列表。对列表进行排序,然后记录两个连续元素之间的差异。这将为您提供一个n个数字的列表,这些数字的总和为1。而且这种抽样是均匀的。这个想法可以在Donald B.Rubin(贝叶斯引导Ann)中找到。统计学家。9,1981,130-134。得到的采样点分布是均匀的,但不是随机数分布。OP首先使用0,1的朴素均匀分布,并表明它没有给出正确的结果,然后是指数分布,它给出了正确的结果。