【发布时间】:2012-07-21 15:13:14
【问题描述】:
Cormen 的《算法简介》一书在第 9 章中有一个问题邮局位置问题。
给定 n 个点 p1,p2,...pn,权重为 w1,w2,....wn。找到一个点 p(不一定是输入点之一),它使总和 wi*d(pi,p) 最小化,其中 d(a,b) = 点 a,b 之间的距离。
查看相同的解决方案,我知道加权中位数将是解决此问题的最佳解决方案。
但是我对实际的编码部分和用法有一些基本的怀疑。
如果所有元素的权重相等,那么要找到加权中位数,我们会找到所有权重总和
给定一个真实场景,将要在各个房屋投递的信件数量作为权重,我们希望通过找到邮局的位置来最小化要行驶的距离,x 坐标给定(假设所有房子是一维的),我们实际上该怎么做?
有人可以帮助我消除疑虑并理解问题。
编辑:
我也在考虑一个非常相似的问题:有一个矩形网格(2d),不同地方的人数不同,都想在1点见面(肯定有整数坐标),那么会有什么区别从上面的问题,我们将如何解决它?
【问题讨论】:
-
应该是
d(pi, p),而不是d(pi, pj),不是吗? -
是的,很抱歉打错了。