在三维空间中给定N个点,如何找到包含这些N个点的最小球?
针对这个问题,有几种算法和实现方法可用。
对于2D和3D, Gärtner的实现可能是最快的。
对于更高维度(比如说10,000),可以看看https://github.com/hbf/miniball,这是Gärtner、Kutz和Fischer提出的一种算法的实现(注意:我是其中的合著者之一)。
对于非常高的维度,核心集(近似)算法会更快。
注意:如果你正在寻找一种计算最小包围球的球体的算法,你可以在计算几何算法库(CGAL)中找到一个C++实现。(你不需要使用CGAL的全部内容;只需提取所需的头文件和源文件即可。)