Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 为什么我们在最近对算法中最多比较7个点?_Algorithm - Fatal编程技术网

Algorithm 为什么我们在最近对算法中最多比较7个点?

Algorithm 为什么我们在最近对算法中最多比较7个点?,algorithm,Algorithm,因此,如果在δ*2δ矩形R内,我们只需要将左侧的一个点与右侧的7个点进行比较。我不明白的是,尽管读了校样,在R内我们可以在矩形内填充任意多的点,这可能超过7的总数。想象一下,如果我们有δ=2,一个点p(1.2,1.1)在左边,而在右边,我们有一整串的q,比如q(1.5,1.7),q(1.4,1.3),……怎么只能比较7个点来检测最近的一对?我认为如果是这样的话,我们必须比较矩形R内的每个点。请帮帮我。您的矩形内可能只有6个点,因为这是您可以放置在边δ和2δ的矩形中的最大点数,保持它们之间至少δ距

因此,如果在δ*2δ矩形R内,我们只需要将左侧的一个点与右侧的7个点进行比较。我不明白的是,尽管读了校样,在R内我们可以在矩形内填充任意多的点,这可能超过7的总数。想象一下,如果我们有δ=2,一个点p(1.2,1.1)在左边,而在右边,我们有一整串的q,比如q(1.5,1.7),q(1.4,1.3),……怎么只能比较7个点来检测最近的一对?我认为如果是这样的话,我们必须比较矩形R内的每个点。请帮帮我。

您的矩形内可能只有6个点,因为这是您可以放置在边δ和2δ的矩形中的最大点数,保持它们之间至少δ距离

这6个点的布置方式如下图所示:

您可以自己检查是否有方法在不违反距离属性的情况下将另一个点放置在矩形内。如果你加上超过6个点,它们之间的距离将小于δ,这是一个矛盾,因为δ应该是最接近的一对之间的距离

由于最多可能有6个点,测试7将保证您找到解决方案


我从中得到了数字,这可能对你有用。

我们可以找到“证据”的链接吗?我不认为这个问题不合适,但你可能会在数学网站上得到更好的答案:@BlueRaja DannyPflughoeft你可以在谷歌图书上查看算法简介:查看中的链接。它们提供了一个很好的参考。特别是。为了明确说明您的观点,
q(1.5,1.7)
q(1.4,1.3)
之间的距离小于
δ
,这是通过构造
δ
无法实现的。谢谢。通过你的简单解释,事情就清楚了一点。然而,在幻灯片中,有人说“如果每对至少相距\delta,R内可以有多少个点”?幻灯片中的答案是6
inside
R,不是在R的边界上。@Amumu是的,但它们真正的意思是“在边界内或在边界上”。如果你认为答案足够好,你应该接受当然,但唯一的困惑是7点常数。我的意思是,我不能把无限多的点放在R里面,来创建无限对,它们的距离小于δ。无限可能太多了,但是如果我有大约20个点的距离小于\delta,那么仅仅测试7个点又有什么意义呢?突然我得到了它。R中的所有对必须相距delta,因为如果它小于delta,则该对必须相距delta。这意味着一个矛盾,因为delta应该是最后一步之前的最小距离,这意味着我们的算法在实际实现中发现delta是错误的。如果你加上这个,我会记为正确答案。该死,这个隐藏的知识花了我不少时间才弄明白。@Amumu没错!我添加了一个关于矛盾部分的简要说明,以供将来参考。