幻想的羽毛

算法学习之路——有趣的逻辑题
近期因为面临毕业,到处投简历找工作,很多互联网公司也都很喜欢用各种测评、编程笔试题筛选人才。我本身能力不太擅长算法...
扫描右侧二维码阅读全文
30
2018/08

算法学习之路——有趣的逻辑题

近期因为面临毕业,到处投简历找工作,很多互联网公司也都很喜欢用各种测评、编程笔试题筛选人才。我本身能力不太擅长算法,对于一件现实中的难题然后对其转化为计算机上的问题的能力也是普普通通,所以一路上也是碰壁不少。

由于这种现实的原因威胁,所以最近都在死磕算法,最近正在读一本很经典的算法教材《算法设计与分析基础》,目前这本书已经出到第三版,想要了解了解算法的童鞋,我推荐给你这本书,下面可以看到这本书的样子~

book.jpg


这本书里呢,我觉得有两个很有意思但是也有一些难度的逻辑题

古典谜题

一个农夫带着一只狼、一只羊和一棵白菜来到河边。他需要用船把它们带到河对岸。然而,这艘船只能容下农夫本人和另外一样东西(要么是狼、要么是羊、要么是白菜)。如果农夫不在场的话,狼就会吃掉羊,羊也会吃掉白菜。请为农夫解决这个问题,或者证明它无解(为了有助于解决这个问题,我们假设农夫是一位不爱吃白菜的素食主义者,所以他既不吃羊,也不吃白菜。而且,我们也不假设这只狼是一种受保护的动物)。

这个问题似乎在很多锻炼逻辑能力的书里都有,想思考一下答案的童鞋可以试试看,答案在下面默认藏起来~

答案戳我

整个过程如下

  1. 带羊到对岸,然后空船回来
  2. 带着白菜到对岸,然后把白菜放在对岸,带羊回来
  3. 把羊放在原地,带着狼到对岸,然后空船回来
  4. 最后带着羊到对岸

现代谜题

有4个人打算过桥,他们都在桥的某一端。我们有17分钟让他们全部到达大桥的另一头。时间是晚上,他们只有一只手电筒。一次最多只能有两个人同时过桥,而且必须携带手电筒。必须步行将手电筒带来带去,即扔来扔去是不行的。每个人走路的速度不同:甲过桥要用1分钟,乙要用2分钟,丙要用5分钟,丁要用10分钟。两个人一起走的速度等于其中走得慢的那个人的速度。

这个问题就需要点时间来思考思考了,答案放在下面

答案戳我

整体上,我们假设甲为A,乙为B,丙为C,丁为D
过桥顺序如下

  1. A、B 过桥 耗时 2分钟
  2. A 回来 耗时 1分钟
  3. C、D 过桥 耗时 10分钟
  4. B 回来 耗时 2分钟
  5. A、B 过桥 耗时 2分钟

整体上感觉重要的两点是“两个人一起走的速度等于其中走得慢的那个人的速度”以及“需要有人步行将手电筒带来带去”,多试试各种组合方案,答案也就知晓了。

Last modification:August 30th, 2018 at 04:03 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment