一道简单的推理题,80%的人答不上,学编程的孩子却可以轻松破解
#少儿编程#能有效锻炼孩子的逻辑思维能力,提高他们解决问题的能力。就拿下面这样一道推理题来说,80%的人会因为逻辑混乱,无法推算出结果,而学习少儿编程的孩子,通过简单的Scratch图形化编程,就能轻松地找出答案。(文末还有推理题的加强版哦,敢来挑战吗?)
吉姆歌号杀人事件
题目是这样的:某当红女星受邀参加一个私人派对,却在派对的举办地——一艘名为吉姆歌号的游艇上身亡,经调查为他杀!根据知情者提供的线索,警方很快锁定了4名嫌疑人(ABCD),4人每人提供了一句证词后就开始沉默。证词如下:
A说:B是凶手。
B说:D才是凶手。
C说:我不是凶手。
D说:我也不是凶手。
已知4人中,只有1人说了真话,请推理谁才是凶手呢?
聪明如你,能否超越80%的人群,推理出答案呢?下面我们一起跟着Scratch编程小侦探,看看他是怎样破解迷案的。
Scratch编程破解迷案
利用编程破解问题,首先要对问题进行分解,然后找出内在的联系和规律,最后借助计算机的强大运算能力找出答案。
①问题分解
解决问题要找对方法,推理问题一般的解题思路是:分别假设,根据假设条件进行一系列分析,最终与题目限定条件进行匹配,如果匹配成功,那么这个假设就是答案。
这个题目的限定条件是:只有1个人说了真话。所以,需要分别假设ABCD为凶手,看看最后是否符合这个条件就可以了。
②条件关联
假设之后,如果进行推理运算呢?这就要看4名嫌疑人的证词了,4句证词都是围绕是不是凶手,所以凶手的真实身份,就是证词之间的联系。我们可以将证词条件公式化:
A说:B是凶手。(凶手=B)
B说:D才是凶手。(凶手=D)
C说:我不是凶手。(凶手≠C)
D说:我也不是凶手。(凶手≠D)
条件公式化之后,看起来非常简单,接下来就是验证是否符合限定条件,只有1个人说了真话。
我们知道逻辑表达式的结果只有true和false,即1和0,所以,用下面的公式就能很方便地验证是否只有1个为真:
(凶手=B)+(凶手=D)+(凶手≠C)+(凶手≠D)= 1
③编程解答
有了上面的分析,借助Scratch编程软件,很容易就能破解谜题了。
在Scratch中,建立一个嫌疑人列表,利用重复执行依次将列表中的ABCD假设为凶手,如果满足条件相加=1这个条件,则假设成立。
当点击绿旗后,小猫瞬间就给出了答案:凶手是C!你答对了吗?
谁是凶手推理加强版
如果你超越80%的人,自己算出了上面谜题的答案,那看看这个加强版吧:
某凶案找到3名嫌疑人(甲乙丙),3人还是每人说了一句供词:
甲说:“我们三个人中有一个凶手”;
乙说:“我们三个人中有两个凶手”;
丙说:“我们三个人中有两个凶手”。
已知,真正的凶手肯定说假话,不是凶手的人肯定说真话。请推理甲、乙、丙的身份。欢迎你把答案写在评论区,与大家一起交流,积木哥将在下一篇文章中用Scratch破解这个推理谜题。
举报/反馈