面试之逻辑推理系列--必有一站出发可走完环行公路(转)

转载 2007年10月01日 15:41:00

 

证明:必有一站出发可走完环行公路(转)
 
http://hi.baidu.com/faithyacht/blog/item/95c7d42a7938689b033bf693.html
看到一个有趣的问题:一条环形公路,公路上有n个加油站,每个加油站有若干油,这n个加油站的油的总和,刚好可以走完整条环形公路。求证,一定可以找到一个加油站,开车从这里出发(出发时车上没油,方向不定),然后走完这条公路。
 
假设任意两个相邻的加油站都不能抵达,则易反证得,所有油的总和走不完这条环形公路。(分类)
 
所以,可以合并那些两两之间可以到达的相邻加油站,让他们变成一个加油站,这个加油站的油的数量是这若干个可达加油站的油总和减去两个端点距离所耗油数量,结果就是环形公路变短了,变成了一个小环,这个时候油也变少了(归纳)
 
然后又回到起点,在这个小一点的环上进行分类,一直递归下去。(演绎)
classification这个词太漂亮了,目前来说,我觉得问题大多可以直接靠它来解决,小部分可以间接靠它解决。
 
证明不一定要反证,可以正面证明。证明这个问题等价于必然可以找到一个点(假设为P(0))可以走到P(n-1),其中路线是p(0)->p(1)->p(2)...p(n-1),因为如果这样的话,车子必然已经加到所有油站的油,而剩下只有一段路,肯定能走完,所有问题转化为p(0)->p(n-1),同理合并p(0)和p(n-1)(因为二者可达),以此归纳下去,直到两个加油站,显然这两个加油站是可达的。
通过将问题的转化,归纳,将规模分解,求证即易得。
 
我的想法是:
1.必存在一个站,它可以达到它相邻的两个站中的一个。
证明:假设环形公路总长为L,n个站分别为S1,S2,...,Sn,汽车每行驶一个单位长度的路耗油量为一个单位容积,那么总油量在数值上等于L(转化为某特定单位,便于用数学分析),设为V,有V==L。每个站的储油量分别为V1,V2,...Vn,相邻两站的距离为L12,L23,...Ln1。
假设不存在这样的站,则有
V1 < L12, V1 < Ln1
V2 < L12, V2 < V23
V3 < L23, V3 < L34
...
Vn < Ln1, Vn < Ln-1n
将所有式子叠加,则有
V1+V2+...+Vn < L12 + L23 + ... + Ln1
与题设的V1+V2+...+Vn == L12 + L23 + ... + Ln1矛盾,所以1成立。

2.将这个站与它所能达到的那个邻位站合并,则所得新站必能达到和它相邻的两个站中的一个。
证明:假设结论1中的那个站编号为S1(假设而已,便于分析,本质上任意点都可以),那么由1得
V1 >= L12 或者 V1 >= Ln1,随便取一个,取V1 >= L12,那么合并的站是S1和S2,此时新站S12的储油量(数值上)为V12 = V1+V2-L12,总路长为L23 + L34 + ... + Ln1,类似1的证明,假设V12 < L23 且 V12 < Ln1,那么就有
V12 + V2 + ... + Vn < L23 + L34 + ... + Ln1,将V12的表达式代入并移项,则又得到了1的那个不等式,与题设矛盾,因此2也成立。
那么就这样一直开下去,就能把整个公路开完。

呵呵感觉写得罗嗦了一点,其实也可以算是一种正向的思路,因为也是从某一个站开始,一个一个走完整条公路的,只是用了反正法(还包括了递归)证明~~~

必有一站出发可走完环行公路

From: http://blog.csdn.net/sailor_8318/article/details/1809001 看到一个有趣的问题:一条环形公路,公路上有n个加油站,每个加油站...

微软面试100题系列-第2题

注:微软面试100题系列中的题都是v_JULY_v(http://blog.csdn.net/v_JULY_v)收集的面试题,具体PDF下载地址为:http://download.csdn.net/d...

我所钟爱的电影之二-公路片

我爱公路片,人生只不过一次流浪,命运之途中,沿途风景或许都会遗忘,咫尺和遥远或许就在一瞬间,逝去的我们会怀念。一辈子就是活着的每一天。也许我不能环游世界 ,但幸好这个世界上有电影可以带我去,不管出...

Oracle面试问题-技术篇(转)

Oracle面试问题-技术篇(转) Oracle面试问题-技术篇 这也许是你一直期待的文章,在关注这部分技术问题的同时,请务必阅读有关面试中有关个人的问题和解答。这里的回答并不是十分全面,这...

【转帖】OllyDBG 入门系列(二)-字串参考

标 题: 【原创】OllyDBG 入门系列(二)-字串参考作 者: CCDebuger时 间: 2006-02-14,13:34:43链 接: http://bbs.pediy.com/showthr...

数学之美系列二十一 - 布隆过滤器(Bloom Filter)(转)

转自:http://www.google.com.hk/ggblog/googlechinablog/2007/07/bloom-filter_7469.html 数学之美系列二十一 - 布隆过...
  • hairetz
  • hairetz
  • 2012年03月14日 18:09
  • 1759

抽屉原理---从1到20这20个数中,任取11个数,必有两个数,其中一个数是另一个数的倍数

import java.util.*; class Acm { public static void main(String args[]) { Scann...

SAP 高级教程系列-QM模块

  • 2015年09月13日 07:24
  • 4.59MB
  • 下载

C#高级编程系列(共13个文件)-10

  • 2011年04月25日 17:15
  • 8.97MB
  • 下载

C/C++面试之算法系列--怎样快速检测出一个巨大的单链表中是否具备死链及其位置

怎样快速检测出一个巨大的单链表中是否具备死链及其位置   Sailor_forever  sailing_9806@163.com 转载请注明 http://blog.csdn.net/sail...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:面试之逻辑推理系列--必有一站出发可走完环行公路(转)
举报原因:
原因补充:

(最多只允许输入30个字)