关闭

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

1588人阅读 评论(0) 收藏 举报

 

证明:必有一站出发可走完环行公路(转)
 
看到一个有趣的问题:一条环形公路,公路上有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也成立。
那么就这样一直开下去,就能把整个公路开完。

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:840152次
    • 积分:11114
    • 等级:
    • 排名:第1421名
    • 原创:231篇
    • 转载:15篇
    • 译文:0篇
    • 评论:444条
    最新评论