给定二维平面上n个点,有哪个点距离所有点的距离最小?这个点不一定来自给定点集。它是重心吗?还是其他什么?
如何用算法找到所有这样的点(如果有多个)?
可能存在多个点。考虑一个只有两个点的平面。这些点描述了一条线段。该线段上的任何点到两个端点的总距离相同。
n^2
。 - Thomas Ahle这个问题在这里有详细讨论 http://www.ddj.com/architect/184405252?pgno=1
暴力算法可能会给您最好的结果。首先,找到包围输入点的矩形/任何四边形。最后,对于矩形内的每个点,计算与其他点的距离。将该点与输入集的距离总和。称这是该点的“成本”。为每个点重复此操作,并选择具有最小成本的点。
智能也可以添加到算法中。它可以根据平均成本等消除区域...
至少这就是我处理问题的方式...希望它有所帮助。