📅  最后修改于: 2023-12-03 15:07:26.880000             🧑  作者: Mango
在 N 边正多边形中,有一个能够内接于多边形的最大边的多边形,那么我们该如何找到它呢?这是一个相当有趣的几何问题,有很多有意思的做法来解决这个问题。
该解法的主要思路是:二分边长,然后判断是否能够构成一个能够内接于多边形的多边形。具体实现过程可以参考 这篇文章。
该方法的时间复杂度为 O(N * log(N))。
该解法的主要思路是:三分边长,然后判断是否能够构成一个能够内接于多边形的多边形。具体实现过程可以参考 这篇文章。
需要注意的是,该方法只适用于 N > 6 的情况。
该方法的时间复杂度为 O(N)。
该解法的主要思路是:从多边形的一条边开始向右旋转,找到第一个与另一条边相交的点,然后以该点作为多边形的一个顶点,继续向右寻找,直到构成一个能够内接于多边形的多边形为止。
该方法的时间复杂度为 O(N)。
该解法的主要思路是:设多边形的一个端点为 P0,构造以 P0 为中心的圆,对于多边形上的每一个点,算出它与 P0 的距离的平方,然后通过旋转卡壳的方法取出最大的距离,以此来求出能够内接于多边形的最大边长。
该方法的时间复杂度为 O(N)。
以上介绍了四种方法来寻找能够内接于 N 边正多边形的最大边长,其中二分答案和三分答案的方法比较适用于比较均匀的多边形,而枚举至右交点和旋转卡壳的方法则比较适用于比较规则的多边形。根据具体场景来选择适合自己的方法即可。