我需要澄清一下算法,为我的宠物射线跟踪仪生成随机值。
我从一个点发射射线。我有这些射线分布的问题:我需要的分布是统一的,但它不是...单位球体上的统一随机(蒙特卡洛)分布
我现在面临的问题是,最初统一的分布是不统一后,我的扭曲结果的空间。
因此,例如,如果极坐标系统生成r和t角度。分布不均匀,并且不均匀:靠近每个极点的空间比靠近赤道的结果密度要大得多。原因很明显:我将均匀分布的点从圆柱空间转换为球形空间。我扭曲了结果。同样的问题是,如果我规范化多维数据集中随机生成的点。
我的想法现在是这样的:我想创建一个四面体,规范其顶点,用中间的点分割每个面(三角形),归一化它并递归地重复,直到我有足够的点。然后我“扭曲”这些点。然后我再次正常化它们。而已。
我知道这种方法不是纯粹的数学蒙特卡洛方法本身,因为除了最后一个步骤外,我没有在任何步骤中使用随机分布。我不喜欢这种复杂性的解决方案。
任何人都可以提出什么更简单,但仍
- 随机
- 均匀
- 快速
- 简单
谢谢!
编辑:
我需要一个快速的方法,而不是正确的。这就是为什么我要问蒙特卡洛。提供的答案是正确的,但不是很快。四面体的方法很快,但不是很“随机”=>不正确。
我真的需要更适合的东西。
你是对的,这不是真的答案,但它是非常有趣的阅读。 – avp 2009-12-03 18:05:45