您的位置:首页 > 编程语言 > Ruby

庞果网建立基站问题ruby解答

2013-11-26 23:08 260 查看
题目地址:http://hero.pongo.cn/Question/Details?ID=81&ExamID=79

题目:

题目详情

要建立一个信号基站服务n个村庄,这n个村庄用平面上的n个点表示。假设基站建立的位置在(X,Y),则它对某个村庄(x,y)的距离为max{|X – x|, |Y – y|}, 其中| |表示绝对值,我们的目标是让所有村庄到信号基站的距离和最小。

基站可以建立在任何实数坐标位置上,也可以与某村庄重合。

输入

给定每个村庄的位置x[],y[],x,y都是整数,满足:

           -1000000000 < x,y < 1000000000

村庄个数大于1,小于101。

输出

所有村庄到信号基站的距离和的最小值。

关于精度:

因为输出是double。我们这样判断对错,如果标准答案是A,你的答案是a,如果|A – a| < 1e-3 我们认为是正确的,否则认为是错误的。

样例

假设有4个村庄位置分别为 (1,4) (2,3) (0,1) (1,1)

我们的结果是5。因为我们可以选择(1.5,2.5)来建立信号基站。

bestDistance = max(|1.5-1|, |2.5-4|) + max(|1.5-2|,|2.5-3|) + max(|1.5-0|,|2.5-1|) + max(|1.5-1|,|2.5-1|)

= max(0.5, 1.5) + max(0.5,0.5) + max(1.5,1.5) + max(0.5,1.5)

= 1.5 + 0.5 + 1.5 + 1.5

= 5

很不不幸, 这个问题写代码貌似很难写的样子。

从数学上讲,这就是一个分段函数求极值问题,每一个大学毕业生差不多都能做出来。但是一旦转换为代码,就不好实现了。最终没有办法,只能求助伟大的互联网了。

google搜索后发现下面的一片博文:

http://blog.csdn.net/sunnianzhong/article/details/11692417

竟然还要扯上切比雪夫距离等高等数学的内容。这可就蒙了, 都大学毕业快两年了,哪里还记得这些高深的内容,只是记得貌似在大学概率论里面提到这几个名词,切比雪夫一看就知道是一个俄国毛子,俄国的概率论的水平比较高。言归正转,
这可就超出我的能力了。mark一下, 有空再研究。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ruby