Scratch

状课网-少儿编程网课专业平台

Scratch 跟我学scratch编程:数学系列——逻辑推理题

发布时间:2021-11-26 11:06:54 浏览 0

  昨天跟大家用计算机算法做了一个鸡兔同笼的问题,用的是计算机擅长的枚举的做法,今天再跟大家用计算机做一下小学数学的逻辑推理题。

  ———— / 小升初的逻辑推理题 / ————

  例 1】 刘刚、马辉、李强三个男孩各有一个妹妹,六个人进行乒乓球混合双打比赛.事先规定:兄妹二人不许搭伴.第一盘:刘刚和小丽对李强和小英;第二盘:李强和小红对刘刚和马辉的妹妹.问:三个男孩的妹妹分别是谁?

  解析:由题知兄妹二人不许搭伴,那么根据第一盘可以知道刘刚与小丽、李强与小英都不是兄妹.由第二盘可以看出,李强与小红不是兄妹.那么李强和小丽是兄妹关系,又根据第二盘李强和小红对刘刚和马辉的妹妹,那么这里李强和小丽是兄妹关系,小红又和李强一组,那么马辉的妹妹就只能是小英,继续推理下去就得到:所刘刚与小红、马辉与小英、李强与小丽分别是兄妹.

 

  大家看懂没有,这种是基本的小升初逻辑推理题。如果不会做肯定考不上重点初中的

跟我学scratch编程:数学系列——逻辑推理题

  先看看程序效果:

跟我学scratch编程:数学系列——逻辑推理题

  ———— / 计算机算法逻辑讲解 / ————

  计算机逻辑算法很简单,还是穷举,就是把所有的情况都试一遍。三个男生,三个女生,所有的可能性就是3*3*3=27种,全部试一遍,把题中给出的不符合的条件的组合都去掉,剩下的就是正确答案。所以逻辑很简单,不用翻来覆去的推理。

  福尔摩斯的逻辑:除去一切不可能,剩下的无论多么不可能都是事实。

跟我学scratch编程:数学系列——逻辑推理题

  所以题中不可能的条件都有哪些?

  1:每个人只有一个妹子,所以要把那些重复妹子的可能性去掉。

  2:刘刚和小丽不是兄妹,要去掉。

  3:李强和小英也不是兄妹,要去掉。

  4:李强和小红也不是兄妹,要去掉。

  5:最后一条有点坑,既然第二局是“李强和小红对刘刚和马辉的妹妹”,那就说明小红可不是马辉的妹妹。

  这些就是所有不可能的情况,把他们都去掉,就剩下可能了。

  ———— /scratch代码讲解 / ————

  那这段程序怎么编写呢?

  第一步创建一个链表,三个哥哥放到链表里,分别是链表中的第一项,第二项和第三项。

跟我学scratch编程:数学系列——逻辑推理题

  然后我们在去创建三个变量,分别是:Hong,Li,Ying,分别代表小红,小丽,小英。那么这三个变量可能的数字就是1~3,对应链表中第几项里面哥哥名字的妹妹。比如小英等于1,那么就代表是刘刚妹妹的这种可能性。Hong,Li,Ying,分别都有1、2、3这三种可能性。然后我们去用循环的算法去把hong, Li, Ying所有的可能性全部试一遍,然后把不可能的去掉,就是答案了。

  小女孩的代码:

跟我学scratch编程:数学系列——逻辑推理题

  初始化部分:

跟我学scratch编程:数学系列——逻辑推理题

  这部分代码是初始化。注意程序每次执行的一开始记得清空链表,否则下次执行时每次都会往里面插入变量。

  条件判断部分:

跟我学scratch编程:数学系列——逻辑推理题

  第一个循环是(最外面的循环)小丽的循环,从1到3,3种可能性。每次循环开始执行的时候要记得把小红和小英先归零。

  第二个循环(中间的循环)是小英的循环,也是从1到3,3种可能性,不过这里面就要去除小英跟小丽都是同一个哥哥的所有情况。所以加了一个判断:小英不等于小丽。

  第三个循环(最里面的循环)是小红的循环,这里就要去除小红跟小英或者是小红跟小丽是同一个哥哥的情况,所以加了一个判断:小红既不等于小丽也不能等于小英。

  这样5种不可能的第一条不可能就被去掉了。

  剩下的4种不可能用一条判断语句就搞定了:

跟我学scratch编程:数学系列——逻辑推理题

  这种连续组合的 ‘与’ 怎么写大家可能有点容易写错,这里教大家一个技巧:

  1:首先把这四个小条件单独列出来:

跟我学scratch编程:数学系列——逻辑推理题

  2:再把连续4个‘与’的空语句放好:

跟我学scratch编程:数学系列——逻辑推理题

  这样看到没?有可以放条件的四个空格,并且都是“与操作”。

  3:那现在就可以把刚才提前写好的四个条件判断一个一个放进去了:

跟我学scratch编程:数学系列——逻辑推理题

  记住要从左往右一个一个填,填好之后拖动的时候,一定要点住最底下那层,否则就会把贴上去的条件又给拖下来了。

  最后还有一条长语句:就是符合上面五种条件后,剩下的可能性就是最终答案了,怎么把答案说出来呢?这里面要用到昨天学的连接命令,把文字和变量连接起来。(把“小英的哥哥是”这段文本和链表第‘Yin’个变量链接起来)

  技巧也是先把每个基础的语句先连接好,然后再把基础语句连接在一起,跟刚才拼接条件一样。

跟我学scratch编程:数学系列——逻辑推理题

跟我学scratch编程:数学系列——逻辑推理题

  其他的小细节的程序代码就不介绍了。

  小猫的代码:

跟我学scratch编程:数学系列——逻辑推理题

  ———— /总结 / ————

 

  今天学到了计算机的逻辑推理算法,还用到了链表,还教了大家长条件和长语句的组合技巧。

 

  文章来源:跟我学Scratch编程

本文链接:https://www.ascratch.com/news/17624.html

上一篇:跟我学scratch编程:用编程方法解决鸡兔同笼问题 下一篇:返回列表