1. 程式人生 > >求數軸上一點到數軸上一些點距離之和最小

求數軸上一點到數軸上一些點距離之和最小

也就是求|x-a1|+|x-a2|+...+|x-an|的最小值。

可以證明,當x為a1,a2,...,an的中位數時該式有最小值。

怎麼證明呢?

第一個:

絕對值不等式:||a|-|b|| ≤|a±b|≤|a|+|b|

這裡要用的是|a|+|b|≥|a+b|

可以推出如|a|+|b|+|c|≥|a+b+c|以及更多未知數時的情況,

對於這樣的形式,取等號時要求a、b等字母代表的數字同號。

第二個:

先將a1到an排好序。

|x-a1|+|x-an|在a1<=x<=an時最小。

|x-a2|+|x-a(n-1)|在a2<=x<=a(n-1)時最小。

...

如果n為奇數:

|x-a([n/2])|+|x-a([n/2]+2)|在a([n/2])<=x<=a([n/2]+2)時最小。

|x-a([n/2]+1)|在x=a([n/2]+1)時最小。

顯然,要使原式最小,則x=a([n/2]+1)

如果n為偶數:

|x-a([n/2])|+|x-a([n/2]+1)|在a([n/2])<=x<=a([n/2]+1)時最小。

顯然,要使原式最小,則a([n/2])<=x<=a([n/2]+1)

綜上所述,x應為a1到an的中位數

第三個:

其實就是劉汝佳的藍書上寫的...