微软的两道智力题,不明白答案

gaoht 2010-07-20 10:57:21
加精
病狗问题

   一个住宅区内有100户人家,每户人家养一条狗,每天傍晚大家都在同一个地方遛狗。已知这些狗中有一部分病狗,由于某种原因,狗的主人无法判断自己的狗 是否是病狗,却能够分辨其他的狗是否有病,现在,上级传来通知,要求住户处决这些病狗,并且不允许指认他人的狗是病狗(就是只能判断自己的),过了7天之 后,所有的病狗都被处决了,问,一共有几只病狗?为什么?

答案:
7只(数学归纳法证明)

  1)若只有1只病狗,因为病狗主人看不到有其他病狗,必然会知道自己的狗是病狗(前提是一定存在病狗),所以他会在第一天把病狗处决。

  2)设有k只病狗的话,会在第k天被处决,那么,如果有k+1只,病狗的主人只会看到k只病狗,而第k天没有人处决病狗,病狗主人就会在第k+1天知道自己的狗是病狗,于是病狗在第k+1天被处决

  3)由1)2)得,若有n只病狗,必然在第n天被处决

--------------------------------------------------
感觉答案有问题,因为所有人家都不知道有几只病狗,如果一定有并且只有1条,好办;如果有n条(n>=2),病狗的主人能看到n-1条,其他主人能看到n条,可是这样,谁也不知道自己家的是不是病狗,一直就不会有人杀死自己家的狗,这么下去,多少天都没有答案啊。如果所有的住户,可以相互交流自己看到了几条病狗,那么病狗的主人就知道别人看到了n条而自己只能看到n-1条,从而知道并杀死自己的病狗。那也用不了7天,1天就可以搞定。所以感觉这道题有些条件没交代,答案也很牵强。大家怎么理解?


********************************************************************8

汽车加油问题

  一辆载油500升的汽车从A开往1000公里外的B,已知汽车每公里耗油量为1升,A处有无穷多的油,其他任何地点都没有油,但该车可以在任何地点存放油以备中转,问从A到B最少需要多少油

答案:
需要建立数学模 型

  (提示,严格证明该模型最优比较麻烦,但确实可证,大胆猜想是解题关键)

  题目可归结为求数列 an=500/(2n+1) n=0,1,2,3......的和Sn什么时候大于等于1000,解得n> 6

  当n=6时,S6=977.57

  所以第一个中转点离起始位置距离为1000-977.57=22.43公里

  所以第一次中转之前共耗油 22.43*(2*7+1)=336.50升

  此后每次中转耗油500升

  所以总耗油量为7*500+336.50=3836.50升

------------------------------------
这道题不明白答案,请高人指点~~~
...全文
22751 464 打赏 收藏 转发到动态 举报
写回复
用AI写文章
464 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq724219631 2012-06-05
  • 打赏
  • 举报
回复
第二题晕了,看到这儿还是晕的
天剑风缘 2012-05-01
  • 打赏
  • 举报
回复
第二题就怪了。车先加500升油,车上再带500升,1000升就到了。中途没油了用车上的加就行。
guyu2011 2011-04-14
  • 打赏
  • 举报
回复
第一题让我想到了一门选修课——科学逻辑方法论,上面就有一个类似的~~~
zhang6464 2011-04-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 michael122 的回复:]

答案没问题
1. 用数学归纳法,证明过n天病狗都被处决,那么就有n条病狗:
当n=1时,显然
n=2时,那么有2个人可以看到1个病狗,其他人可以看到2条。那么,2个病狗的主人就知道病狗要么是1条,要么就是2条。第一天什么都没发生,第二天2个病狗的主人还是看到了一条病狗,于是立刻知道病狗不能是1条(否则第一天就被处决了),即自己的狗是病狗,所以第二天2条病狗全被处决。
n更大的……
[/Quote]我对第二题不理解,啥叫车可以用1箱油把n箱油运到500/(2n+1)的地方?车里可以载油么?不是只能到一个地方之后再在车里往外抽油么?
pkluo 2011-04-08
  • 打赏
  • 举报
回复
让每个人把看到的病狗数目写下来,因为有健康狗,如果一共有k只病狗,则写k-1的人的狗都是病狗么。。。。
难道写了7天,。。。囧了:《
coolbaby1984 2011-03-25
  • 打赏
  • 举报
回复 1
解释一下第一题吧

假如n=1 那么第一天狗的主人看不到病狗 知道自己的狗是病狗 则处死
n=2 第一天 两只病狗的主人 各自看到一只病狗,所以谁都不会杀狗,到第二天,病狗的主人还看到有病狗存在,则会想到病狗是大于一只的,可自己只看到一只,表示自己的是病狗,则俩人都处死。
n=3 前两天什么都不发生,第三天,病狗的主人还是看到了两只病狗,这时候他的想法就是N=2的时候,也就是他会想,如果有2条,那么在第二天 狗的主人就会明白谁是病狗而杀死,可第三天 还能看到两条病狗,说明病狗数量大于2 所以明白自己的也是病狗 杀死
后面就是逐次类推... 第N天 想到的推理 就是借助N-1天的推理来判断自己的狗是否健康...
xali 2011-03-24
  • 打赏
  • 举报
回复
第一道题可能是病狗出的,我不明白。
第二道题是假设车装满油,到个地方留下一些油,回到起点。这么来回,将油存到中途,如此反复,直到将油能存到AB中点C 500升时,并到达C,问题就解决了。
为了达到此目的,就需要在AC间再设某点,运到此点更多油,才能当车到此点时,能最终运至C 500升油。
a,如果将AC平分成3段:A:13500升 -> AC1:4500升 -> AC2:1500升 ->C:500升 即需要13500升。
b,如果将AC平分成4段:A:8000升 -> AC1:4000升 -> AC2:2000升 -> AC3:1000升 ->C:500升 即需要8000升。
c,粗略的,将AC平分成n段:需500*(n/(n-2))**n. 极限值是500*7.39=3695升。
d,但问题是:为了运到某点1升油,车总需要来回,这总要消耗。于是,为了省油,车总是出发时尽量装满,每一段的最后一次将油运得尽可能远些。
e,所以,问题就复杂了。不继续算了,好像出题人诚心想把人折磨一番,聪明人到此为止了。
Baesky 2011-03-24
  • 打赏
  • 举报
回复
主要因为题目写这是微软出的,所以。。。
如果换成某应聘公司出的,那么。。。
夕阳123 2011-03-12
  • 打赏
  • 举报
回复
不错,练脑
eric07wu 2011-03-11
  • 打赏
  • 举报
回复
7樓;55樓觀念都粉清楚
kk508 2011-03-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lightboat09 的回复:]
问题一:
答案没牵强了,其实还有一个条件是:所有的人都足够聪明,且遵守规则,
[/Quote]
点错了 丢了个板砖 呵呵 对要所有人都足够聪明,且遵守规则
wyf5060060 2011-03-08
  • 打赏
  • 举报
回复
呵呵 这个题我也困惑了好久
tulipcaicai 2011-03-08
  • 打赏
  • 举报
回复
学习啦
zhangjiupeng 2011-03-08
  • 打赏
  • 举报
回复
第一题没看。第二题绝对错了。。。。。为什么?????
请大家按着他答案的思路想想,若是要求走10000公里的话。。。。要多少有升油啊????
答案是。。5.458148*10^35升,恐怕10个宇宙也没这么多石油啊。
违背常识啊。。。。
很明显,就算每次走100公里,一次运300升油,也就是有60%的存油,
照这样递减一百次,也不会到这种程度吧。。。。
大家可以想想看啊。。。
别被某些人的假借权威所迷惑啊。
竞天问 2011-03-07
  • 打赏
  • 举报
回复
都是数学题,不是智力题,真正的智力是大道至简
可能也就是通常所说的大智若愚
zhanlonglong 2011-03-05
  • 打赏
  • 举报
回复
第一道不是IBM的面试题吗?
青蛙爱大莹宝 2011-03-05
  • 打赏
  • 举报
回复
不是很理解,有谁一看就理解了的,跟我讲讲
liuhex 2011-02-17
  • 打赏
  • 举报
回复
⊙﹏⊙b汗,以为只有一页,没想多有好几页,并且第二题已有人说过了,我还自作聪明@!!
liuhex 2011-02-16
  • 打赏
  • 举报
回复
大家都在回答第一题,没看到第二题的答案,那我来献个丑。其实第一题和第二题思维还挺像的。第一题7条病狗是毫无疑问的,上面有解释了。我来说说我对第二题的想法。
首先,从A直接跑到B肯定是不行了,所以就必须考虑到折返运油。我们就从最后一步来考虑,也就是从AB之中的某个地点直接跑到B,这个地点应该是距B 500米得地方(设为C1),因为这样才是最省油的,C1到B直接不需要折返。我们现在就把路程缩小到了500米,现在的问题也变成从A运送500斤的油到C1.如何解决这个问题了,我们还是从后考虑。直接运肯定不行,所以还是假设A到C1之间的某个点(设为C2),从C2运油500斤到C1,一次肯定不行,那到底要几次了?两次。为什么?因为要求最小耗油,所以就要考虑折返最少。两次可以实现。两次运油,那么在C2到C1之间就要跑上3次,最后运到C1 500斤油。
那么C2处需要多少油了同时还要保证有油最少?只要C2处能够保证最后运到C1处有500斤油即可。还要用油最少,就是要让C2到C1的距离竟可能的远。要跑3个来回,其中有两次是运油,一次折返耗油。假设每次运油油箱都装满,就可以运500斤,两次1000斤油。而最后C1处只要500斤油,那剩下的500斤油就是3次往返所耗油总量。C2到C1的距离就是500/3.
 好了,现在问题变成,从A处运油到C2处1000斤油.运一次不行,两次最多也就1000,但是还要耗油,所以至少要运3次,那就要跑5个来回,从哪里运了,我们还是假设A到C2之间的某点C3吧。从C3运油1000斤到C2,这就要运油3次,往返5次,最后才能剩下1000斤。3次运油(从C3到C2)1500斤,那么其间(5个往返)耗油就是500斤,那么C3到C2的距离就是500/5了。
接着分析下去,C4到C3的距离500/7,C5到C4的距离500/9........知道出现CN使得CN到B的距离大于等于1000.CN到B的距离即为:500/1+500/3+500/5+500/7+...+500/(2n+1)>1000,解出n最小为7,也就是C7到B的距离大于1000.而用油最小。取C7为A。这样就求的运输过程的每一点,然后算出油量即可。



觉得这两个问题挺有含量的,就是觉得给的分数太少。
maijiech 2011-02-16
  • 打赏
  • 举报
回复
感觉题目有许多细节没交代清楚~~~不过长了不少见识!
加载更多回复(444)

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧