递归算法在scratch学习中的运用
递归算法应用
学习scratch编程的同学,到了进阶课程阶段会接触到递归的概念。
但是很多人很难理解什么是递归。
因为正常人的思维,一般是迭代(iteration),比如人都是先学习加减法,再学习乘除法,最后学习微积分。归纳法其实就是一种迭代,从一个简单的起点,推广到一般情况。
而递归(recursion),则是一种反人类的逆向思维,会让程序变得非常之简洁。
递归算法简介递归算法是一种直接或者间接调用自身函数或者方法的算法,其实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。递归算法对解决一大类问题很有效,它可以使算法简洁和易于理解。
同学们小时候经常念的:从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事!故事是什么呢?“从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事!故事是什么呢?
如此循环往复,是不是像极了scratch里的重复执行模块?
递归算法在scratch里的实际运用
其实重复执行除了可以通过循环结构实现外,还可以通过另一个强大的技术实现,那就是递归。
以画正三角形为例,通常我们是这样画的:
绘制三角形需要循环3次
如果用递归算法怎么做?
这里需要运用到scratch里的更多模块
通过更多模块,我们创建新的功能块,给新功能块命名,并且可以自定义新功能块的含义。
我们将循环3次而成的正三角形重新打包,定义为新的功能块,最终程序改为:
同学们理解了吗?
递归思想的运用非常之广泛,来凤凰机器人一起探索编程的奥秘吧!
递归算法小练习让我们加点难度吧?下图怎么用递归算法画出来?
--end--
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com