如何解决将随机点放置在正方形区域中,同时保持最小距离Python
我有一个正方形的区域,大小为[a,a],其中包含实数坐标。我想用N个随机点填充它。条件是任意两点之间的距离必须大于最小距离D。
蛮力方式是不断生成一个随机点,直到满足条件为止。但是,要用所有其他要点检查条件是很昂贵的。有没有更好的算法可以做到这一点?
解决方法
如果在这些点上方有一些网格覆盖,则可以生成一个圆,其半径是围绕每个点的最小距离,并标记这些圆中的每个网格单元。然后,随机选择一个未标记的网格单元以在处生成一个点,然后重复进行直到没有剩余空间为止。
, 我不确定您的问题是否有分析解决方案。实际上,如上所述,可能会有:-)。
但是,通过使用R-tree和执行最近的邻居搜索,可以使您建议的蛮力方法更加有效。 基本上,我将随机插入一个点,寻找其最近的邻居,然后根据与这些NN的距离将其移动。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。