如何在尺寸D的单位立方体/球体中均匀地生成一组K点

fai*_*dox 2 java math geometry

我正在尝试生成一组均匀分布固定空间的K点,我认为单位球体或立方体最容易.对于2维而言这很容易,但不幸的是,当我们达到任意维D时要困难得多.

我认为这是在"准蒙特卡罗方法"中完成的,但我一直无法找到一个公式,甚至不能说明这是否是一个容易处理的问题.任何输入将不胜感激.

Gen*_*ene 5

这取决于你所说的“均匀”是什么意思。一种方法是随机定位这些点,然后使用牛顿运动方程的数值积分器模拟阻尼介质中的粒子运动,其中粒子和边界相互排斥。这当然将允许任何边界形状。

  • 对此的一个很好的修改是通过粗略地划分区域网格然后将点放置在每个网格元素的中心来设置起始值。如果您将网格设置为具有大致正确的元素数量,并且只是随机添加或删除值以获得正确的计数,您应该获得更好的起始分布,这将导致更好的收敛。 (2认同)

Mic*_*son 5

要看到计算最好的情况是"非常微不足道",请查看立方体中的等重球的密集包装,它解决了3D立方体中的点的子范围:它具有精确的解决方案和"最知名的"解决方案,最多只能达到28个点.

它确实提供了一种用于找到这些最佳间隔配置的算法,他们称之为"随机台球"程序.但是我不知道这是否可以适应球体,更高尺寸或更大数量的点.

看起来有些包装和封面一书中可能会涉及更一般情况的某些方面- (我没有副本,因此无法验证.)

2D情况更容易处理,你可以在维基百科上看到方形圆形的更多细节.