算法-查找具有最大周长的三角形

时间:2018-09-03 19:53:59

标签: algorithm theory

我在2D平面中得到了一组N个点,表示为(x,y)坐标对。选择三个点以使由这些点形成的三角形具有最大周长的快速算法是什么?

2 个答案:

答案 0 :(得分:0)

这本质上是先发制人的

  • 从羊群中选一个最远的点,将其称为A点。
  • 绘制一条假想的直线,该直线穿过A到达羊群的其余部分。
  • 选择另一个相反的点,即它与假想的偏差 直线)是最高的。
  • 选择另一个相反的观点 是(与假想直线的)偏差最大 左。

检查是否可以制作三角形? 如果没有,请检查另一个轴上的另一个最高点

答案 1 :(得分:0)

这是一个粗略的想法(我不太精通计算几何)。具有固定的周长和底数的三角形可以生成椭圆。例如,这里BC是固定的,椭圆上的任何点A都会使三角形的周长保持不变:

enter image description here

对于连接两个点的每个分段,请在我们的集合中随机选择一个第三点。生成相关的椭圆,然后从我们的椭圆之外的集合中选择另一个随机点。每个椭圆将排除会生成相同或较小周长的三角形的点,直到我们用尽所有点(找到最大的点)为止。当然,我们需要一些有效的方法来找到相关的点(也许使用空间分区?)。