离散数学拾趣(二):逻辑难题

简介:

Raymond Smullyan与岛屿居民难题

Raymond Smullyan是美国的数学家和逻辑学家,他写过多本与逻辑难题的书。其中的一类题目是,通过逻辑推理确定给定的几个岛屿居民的身份。看下面两题。

Q1(1.1例15):一个岛上居住着两类人——骑士和流氓。骑士说的都是真话,而流氓总是说谎。现在碰到了两个人A和B,如果A说“B是骑士”,B说“我们两人不是一类人”。请判断A、B两人到底是骑士还是流氓。

:每个人要么是骑士,要么是流氓,可以分别假设A是骑士或流氓,然后看是否与题中给出的条件一致。

假设A是骑士,那么他说的是真话,则B也是骑士,那么B也应当说真话,但B所说的并非如此,所以A不是骑士。

假设A是流氓,那么他说的是谎话,则B也是流氓,那么B也应当说谎话,与题目所给的条件一致,所以A和B都是流氓。

在本题中,A和B都有可能是两种身份,那总共有2*2种可能的情况,较为简单。再来看下面更复杂一点儿的题目。

Q2(补充练习题9):

假定在一个岛上住着三类人:骑士、流氓和普通人。骑士总是说真话,流氓总是说假话,普通人说话亦真亦假。侦探为了找出罪犯,询问了岛上的三个人Amy、Brenda和Claire。侦探知道三人中有一个是罪犯,但不知道是哪个人;同时他也知道罪犯是一个骑士,另两个不是骑士;此外,侦探还记录了如下供述。Amy说:“我是清白的。”Brenda说:“Amy说的是真的。”Claire说:“Brenda不是普通人。”经过分析,侦探找到了罪犯,他是谁呢?

谁是那个罪犯?

上面两道题都不复杂,通过穷举容易找到答案。

Q3爱因斯坦难题

在一条街上,有5座房子,喷了5种颜色。每个房子了住着不同国籍的人,每个人喝着不同的饮料,抽不同品牌的香烟,养着不同的宠物,这有一些他们的信息:
英国人住在红房子里,
瑞典人养了一条狗,
丹麦人喝茶,
绿房子在白房子左边,
绿房子主人喝咖啡,
抽PALL MALL烟的人养了一只鸟,
黄房子主人抽DUNHILL烟,
住在中间那间房子的人喝牛奶,
挪威人住第一间房子,
抽BLENDS烟的人住在养猫人的旁边,
养马的人住在DUNHILL烟的人旁边,
抽BLUE MASTER烟的人喝啤酒,
德国人抽PRINCE烟,
挪威人住在蓝房子旁边,
抽BLENDS烟的人的邻居喝矿泉水。
那么谁在养鱼?

谁在养鱼?
得到答案了吗?据说98%的人得不出答案,这让人很得意:) 不过如果你不是通过纸笔和表格就得到了答案,才真正属于那2%的人。

这三道题尽管复杂度有别,但方法却相同。初始条件不完整,需要通过逻辑规则去推理,排除不可能的结果,对其余结果进行验证,得到最终的答案。


本文转自一个程序员的自省博客园博客,原文链接:http://www.cnblogs.com/anderslly/archive/2011/03/04/discrete-math-part2.html,如需转载请自行联系原作者。

目录
相关文章
探索软件测试中的“禅”:寻找内在的平和与外在的效率####
在软件测试的世界里,我们常常被缺陷的数量、测试用例的覆盖度以及上线时间的紧迫性所困扰。但如果我们能像禅宗修行者一样,将注意力转向内心的平静与专注,或许能在纷繁复杂的测试工作中找到一种全新的效率和质量提升之道。本文将带您走进软件测试的“禅意世界”,探讨如何在看似枯燥无味的测试过程中,通过调整心态、优化方法,实现个人成长与项目成功的双赢。 ####
【绝技揭秘】Rails应用如何借助状态机巧化繁为简?一文带你走出复杂逻辑的迷宫!
【8月更文挑战第31天】状态机是简化复杂业务流程的强大工具,尤其适用于需遵循特定转换规则的对象,如订单系统。本文通过技术博客形式,介绍如何在Rails应用中利用`state_machine`这一流行gem实现状态机,通过具体示例代码展示其定义与使用方法,帮助你更清晰、高效地管理订单状态转换等业务逻辑。
58 0
代码之舞:从逻辑之美到技术之艺
在数字世界的舞台上,代码不仅仅是冷冰冰的文字序列,而是充满韵律与美感的艺术。本文将带领读者走进编程的世界,探索如何通过逻辑的严谨性与创造性思维的结合,将代码变成一种独特的艺术形式。我们将一同见证技术与艺术如何交织在一起,创造出令人惊叹的作品。
重构·改善既有代码的设计.03之重构手法(上)
之前的重构系列中,介绍了书中提到的重构基础,以及识别代码的坏味道。今天继续第三更,讲述那些重构手法(上)。看看哪些手法对你的项目能有所帮助......
19294 1
重构·改善既有代码的设计.03之重构手法(上)
重构·改善既有代码的设计.02之代码的“坏味道”
之前在《重构·改善既有代码的设计.01》中初步了解了重构的基本前提,基础原则等入门知识。今天我们继续第二更......
280 1
重构·改善既有代码的设计.02之代码的“坏味道”
【前端开发】前端架构与具体的应用的矛盾,最终的简单才是王道。
写在前面   年关将近,这年味愈加的浓烈了哈,似乎无心工作,似乎家乡的叨念从远远的方向传进了你的心里,坚持住哈,马上,就回家了。        进入正题,首先,我需要先解释下这个标题所表达的意思,以及它背后引出的具体的问题,前端架构与具体的应用的矛盾 这句话为什么要这么说,相信大部分公司,不论你...
1388 0