其实不难猜到,这个最优的解就是这些数的中位数(即排序以后位于中间的数)。
我们证明的是给定数轴上n个点,在数轴上的所有点中,中位数离所有顶点之和的距离之和最小。
想象一数轴,任意找一个点,它左边有4个点,右边有2个点,把该点往左移动一点点,不要移动太多,以免碰到其他输入点。假设移动了d单位距离,则该点到左边4个点的距离各减少d,该点都右边2个点的距离各增加d,但总的来说,距离之和减少了2d。
同理,该点的左边有2个点,右边有4个点时,类似,不过此时应该是向右移动。
换句话说,只要该点的左右两边的输入点个数不一样多,就不是最优解。那什么情况下,左右点一样多勒?如果输入点有奇数个,则最优解应该是中间那个点即中位数。如果有偶数个,则可以位于最中间两个点的任意位置(还是中位数)。
凡是可以转换为这个模型的问题都能用中位数求解。