0

给定 gunction float frand(),生成均匀分布的随机浮点值,范围为 [0.0, 1.0)

如何创建均匀分布的随机 3D 单位向量和 4D 单位四元数?(因此 3D 矢量位于单位球体上,4D - 在单位超球面上,矢量均匀分布在对应的表面之间)

4

1 回答 1

1

您应该使用您的函数从高斯分布(均值 = 0,偏差 = 1)中选择向量的分量,frand()然后对其进行归一化。

另一种更简单的方法是生成随机向量 (x, y, z...) 作为x = frand(); y = frand(); ...并丢弃它(生成新的),如果它长于 1。然后规范化这个向量。这将消除扭曲分布的情况。然而,我觉得这种方法很难看,因为它是拉斯维加斯算法的不必要示例,它可能不会终止。

查看类似问题的答案:多维空间中的随机单位向量

于 2019-08-21T12:05:23.877 回答