对于很多未经过系统学习的孩子来说,Scratch可能只是一个游戏工具,用来玩乐或是打发时间,而这显然是把Scratch大材小用了!Scratch其实是一款目前十分流行的少儿编程工具,其优势就是可视化图形编程,非常适合零编程基础的孩子入门学习。除了能设计出游戏、动画外,Scratch还可用来解决数学问题。今天南京小码王Scratch培训班老师就来教教大家用Scratch解决爱因斯坦阶梯问题,一起来学习一下。
【问题】有一次,爱因斯坦给他的朋友出了这样一道有趣的数学题:有一条长长的阶梯,如果每步跨2阶,此后剩1阶;每步跨3阶,此后剩2阶;每步跨5阶,此后剩4阶;每步跨6阶,此后剩5阶。只有每步跨7阶时,才正好到头,一阶也不剩。请问这条阶梯至少有多少阶?请你编写一个Scratch程序求解这个问题。
【编程解题】我们用一个变量n来表示阶梯数,那么阶梯数n要同时满足以下5个条件:
2.jpg
接下来,我们采用枚举法来求解该问题。我们使用“重复执行直到……”指令构建一个循环结构,在循环体内让变量n的值不断增加,并判断n的值是否满足上述5个条件。
由于阶梯数是7的整数倍,因此我们调整一下,在循环体内让变量n每次增加7,这样就不需要判断第5个条件了。如果变量n的值同时满足前4个条件,那么我们就求得这个问题的解。
程序比较简单,完整的程序清单如下:
3.jpg
点击绿旗运行程序,得到结果:这条阶梯非常少有119阶。
4.png
通过上面的程序我们已经求得这个问题的解,但是仍然有改进的空间。
回头再仔细看爱因斯坦阶梯问题,我们发现,阶梯数依次除以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的整数倍。
经过改进的程序更为简洁,完整程序如下:
5.png
点击绿旗运行程序,得到结果:这条阶梯非常少有119阶。
在本文中,我们口算就能求出2、3、5、6的非常小公倍数是30,或者用笔算也能很快求出一般数的非常小公倍数。但是如果遇到一些大数或很多个数的时候,用口算或笔算就不能很快算出非常小公倍数了。这个时候,我们可以编写程序,借助计算机来帮助我们求非常小公倍数。
通过解决爱因斯坦阶梯问题,我们发现数学思维在编程中有着重要的作用,它能使我们的程序更加简洁、更有效率。
其实Scratch的功能是很强大的,其包含了各种各样的程序模块,只要用鼠标拖拽就能实现编程,不需要自己编写代码,比较适合零基础入门的孩子学习,还有多样的图形和声音,有助于提升孩子们的编程兴趣。南京小码王Scratch培训班目前正在火热进行中,欢迎家长带领孩子前来试学了解,还有更多Scratch教程,让孩子们能够感受编程的乐趣。