我有m
个点,我希望在n
维空间中均匀分布。 “均匀”是指所有最短距离对具有相似的值。
换句话说,我希望这些点尽可能均匀地填充空间。
拜托,有谁知道如何实现这一目标?这个问题有名字吗?
编辑:
例如,当我有4个点和2D平面时,坐标应该是[0,1],[1,0],[0,-1],[-1,0]。只是一个广场。对于3D来说,它是一个立方体。但是如果有不同的点数而不是2 ^ n,我不知道该怎么办。
另一种思考方式是将点作为带电粒子彼此排斥。但是运行这样的模拟非常慢......
答案 0 :(得分:3)
我相信你可能对low discrepancy sequences感兴趣。它们被用作n.m.评论中描述的均匀分布的确定性类比。它们经常被用在所谓的“准蒙特卡罗”算法中,而不是随机抽样,而是使用在域上或多或少均匀分布的某种点网格。
这样的点序列不一定满足你给出的条件“所有最短距离对具有相似的值”,但我更多地将其解释为尝试描述而不是对问题的硬性要求。如果这非常重要,那么这可能无法解决您的问题。
答案 1 :(得分:2)
我想你可能想看看Sphere Packing。
答案 2 :(得分:1)
这是另一个想法(它并不完美,但我认为这里没有任何内容,您可能需要根据具体情况的详细信息进行选择):使用binary space partitioning(more info here)。
一般的想法是你采用你的n维空间并使用(n-1)维表面将其分成两个。然后你拆分这两个新闻空间,依此类推。如果你仔细选择表面(以便它们分成大致相等的体积并避免有趣的形状,对某些有趣的定义),那么你可以看到这将是你所要求的近似值。
这种方法的主要优点是它通常非常快(它用于视频游戏和空间模拟)。它不会像低差异序列那样快(或统一)(听起来真的很酷),但我想它可以在任意凸壳内部工作。