【Scratch数学编程】爱因斯坦阶梯问题

爱因斯坦阶梯问题

阿尔伯特·爱因斯坦(1879-1955),犹太裔物理学家,诺贝尔物理奖获得者。他创立了代表现代科学的相对论,并为核能开发奠定了理论基础,开创了现代科学技术新纪元,被公认为是继伽利略、牛顿以来最伟大的物理学家。

【Scratch数学编程】爱因斯坦阶梯问题-少儿编程网

【问题】有一次,爱因斯坦给他的朋友出了这样一道有趣的数学题:有一条长长的阶梯,如果每步跨2阶,最后剩1阶;每步跨3阶,最后剩2阶;每步跨5阶,最后剩4阶;每步跨6阶,最后剩5阶。只有每步跨7阶时,才正好到头,一阶也不剩。请问这条阶梯至少有多少阶?请你编写一个Scratch程序求解这个问题。

【编程解题】我们用一个变量n来表示阶梯数,那么阶梯数n要同时满足以下5个条件:
【Scratch数学编程】爱因斯坦阶梯问题-少儿编程网

接下来,我们采用枚举法来求解该问题。我们使用“重复执行直到……”指令构建一个循环结构,在循环体内让变量n的值不断增加,并判断n的值是否满足上述5个条件。

由于阶梯数是7的整数倍,因此我们调整一下,在循环体内让变量n每次增加7,这样就不需要判断第5个条件了。如果变量n的值同时满足前4个条件,那么我们就求得这个问题的解。

程序比较简单,完整的程序清单如下:

【Scratch数学编程】爱因斯坦阶梯问题-少儿编程网

点击绿旗运行程序,得到结果:这条阶梯最少有119阶。

【Scratch数学编程】爱因斯坦阶梯问题-少儿编程网

通过上面的程序我们已经求得这个问题的解,但是仍然有改进的空间。

回头再仔细看爱因斯坦阶梯问题,我们发现,阶梯数依次除以2、3、5、6的余数分别是1、2、4、5,能同时满足这四个条件的最小阶梯数是29,而2、3、5、6的最小公倍数是30,也就是说,阶梯数是2、3、5、6的最小公倍数减去1,这样才会出现余数是1、2、4、5的现象。

根据这个发现,我们修改上述程序,让变量n从29开始,每次递增30。而要判断的条件只有一个,就是判断变量n是否是7的整数倍。

经过改进的程序更为简洁,完整程序如下:

【Scratch数学编程】爱因斯坦阶梯问题-少儿编程网

点击绿旗运行程序,得到结果:这条阶梯最少有119阶。

在本文中,我们口算就能求出2、3、5、6的最小公倍数是30,或者用笔算也能很快求出一般数的最小公倍数。但是如果遇到一些大数或很多个数的时候,用口算或笔算就不能很快算出最小公倍数了。这个时候,我们可以编写程序,借助计算机来帮助我们求最小公倍数。

通过解决爱因斯坦阶梯问题,我们发现数学思维在编程中有着重要的作用,它能使我们的程序更加简洁、更有效率。

*文章为作者独立观点,不代表少儿编程网立场
发表评论

坐等沙发
相关文章
适合孩子学编程的教育游戏APP有哪些?
适合孩子学编程的教育游戏APP有哪些?
为什么大多数学编程的孩子表达能力高于同龄人?
为什么大多数学编程的孩子表达能力高于…
编程少年丨崔少天:幼儿园里学编程的6岁男孩
编程少年丨崔少天:幼儿园里学编程的6岁…
如果孩子系统学完Scratch、Python、NOIP,编程能力可以达到什么水平?
如果孩子系统学完Scratch、Python、NOIP…
编程少年丨夏启航:10岁男孩的“慢”哲学
编程少年丨夏启航:10岁男孩的“慢”哲学
编程少年丨林于森:一个7岁男孩的编程奇缘
编程少年丨林于森:一个7岁男孩的编程奇缘
Scratch是由麻省理工学院(MIT)设计开发的一款面向少年的简易编程工具,是适合于全世界儿童学习编程和交流的工具和平台