【发布时间】:2021-05-10 01:36:26
【问题描述】:
给定 2D 平面上的 N 个点,确定是否有一条线将它们分成两组,每组 N / 2 个点。
还有两条规则:
- 每组点到这条线的距离总和应该相同。
- 线不能通过任何点。
附加(不确定是否有帮助):
我们可以假设N 很大(~100k); -2000
你们对这个问题有什么见解吗?我真的尝试了很多东西,但我相信我应该使用某种相等性,或者证明类似:sum(distancesSet1[i]) = sum(distancesSet2[i])。 如果你愿意,我也可以在这里发布我尝试过但失败(或者我认为失败)的东西,但在此之前我想看看你的建议。
非常感谢!
#编辑: 对于这个问题,我需要知道的是,在给定 N 个点的集合的情况下,准确地说出它是否可能。
【问题讨论】:
-
看到您的编辑后,我会将问题的标题更改为以下内容:“给定 2D 平面中的 N 个点,确定是否有一条线将它们分开(...) "
-
我不太习惯堆栈溢出,谢谢建议。
-
别担心,但你把它当真了!我写了“(...)”来代表问题的其余部分。重新完成标题可能是个好主意。
-
我不确定这样做是否可行,但我想再次提出这个问题。有没有人有任何提示或您知道与解决这个问题有关的任何事情?
-
这是一个想法:1)选择一个轴,例如X; 2)求中位数和平均值; 3)如果中位数和平均值之间没有点,那么有一条垂直于该轴的线穿过平均值并将这些点分开; 4)否则,尝试与其他轴相同。如果两者都失败,那么这条线可能仍然存在,但我不知道如何证明任何一种方式。希望这有助于作为一个开始。
标签: algorithm line computer-science computational-geometry point