这是具有抢占性质的 选择离群最远的一个点,我们称之为点A。 画一条想象的直线穿过A到达其余的群体。 选择另一个相反的点,它偏离(想象的直线)向右最高。 选择另一个相反的点,它偏离(想象的直线)向左最高。 检查是否可以构成三角形? 如果不行,请在另一个轴上选择另一个最高点。
这是一个大致的想法(我对计算几何不太熟悉)。具有固定周长和底边的三角形可以生成一个椭圆。例如,在这里,B和C是固定的,任何点A在椭圆上将保持三角形周长相同: 对于连接两点的每个线段,从我们的集合中选择一个随机的第三个点。生成相应的椭圆,然后从我们的集合中选择另一个在该椭圆外的随机点。每个椭圆将排除生成周长相同或更小的三角形的点,直到我们用完所有点,找到最大的那个。当然,我们需要一些有效的方法来找到相关的点(也许使用空间划分?)。
O(n^3)
。 - nice_dev