输入n(n>1)个不同的点坐标, 要求找到一个最小的圆,使得该圆包含该n个点。
输入n(n>1)个不同的点坐标(x, y) (x,y ∈ R)。现在我们希望找到一个最小的圆,使得该圆包含该n个点。
请提供程序代码,以及思路文档。
1、证明:至少有两个点在该最小的圆上。
2、假设我们记在该最小的圆上两个点为A、B。
则任取n点中的两个点M、N,必然满足以下条件之一:
1)M、N中有一个点在AB构成的线段上。
2)M、N在AB所在的直线的同侧。
3)N、N在AB所在的直线的两侧,且
∠AMB + ∠ANB >= π
3、试编写一个函数,实现本题要求的最终功能。即:
找到包含n个点的最小圆。求出该圆的圆心(x, y),以及半径r。
4、试分析你写的函数的时间复杂度。