早教吧 育儿知识 作业答案 考试题库 百科 知识分享

点到直线上多个点的距离之和最短,如何求这一点在一条直线上有n个点,坐标为A1,A2,...An,如何找到同一直线上的一点B,使得B到A的距离之和最小。也就是sum(ABS(An-B)最小,其中n=1,2

题目详情
点到直线上多个点的距离之和最短,如何求这一点
在一条直线上有n个点,坐标为A1,A2,...An,如何找到同一直线上的一点B,使得B到A的距离之和最小。也就是sum(ABS(An-B)最小,其中n=1,2,...n
abs代表绝对值,An>0,而且An分布不均匀。
例如:n个点的坐标为:1,2,9,10,11,12,13,14,15。那么,B点一定在9和15之间,找到B点的公式有没有?
如果只考虑B点为整数,那么B点应该为11时,与A点距离之和最短,=32。这个是用excel表格试算出来的,求公式。
谢谢了。
▼优质解答
答案和解析
将A1,A2,...An按坐标大小排序,得到P1,P2,...,Pn
如果n是奇数,取B=P((n+1)/2),即最中间那个点
如果n是偶数,取B为线段P(n/2)P(n/2+1)上的任何一点都可以
道理很简单,记f(x)=sum(ABS(An-x)),当x偏右侧(即在中间那点或那段线段右侧)时f是斜率为正的(连续)折线段,x偏左侧时f是斜率为负的折线段,根据单调性就能判断出最小值。
看了 点到直线上多个点的距离之和最...的网友还看了以下: