最新消息:码丁实验室,一站式儿童编程学习产品,寻地方代理合作共赢,微信联系:leon121393608。

Scratch递归算法,画手绢

Scratch 少儿编程 3747浏览 0评论

码丁实验室,一站式儿童编程学习产品,寻地方代理合作共赢,微信联系:leon121393608。

用递归法画图时,程序简单,却常常弄不怎么明白它的过程。这一课我们再来仔细分析一下。

 

先看这个图,我们叫它是一块手绢或地毯吧。

 

Scratch递归算法,画手绢

它的程序是:

 

Scratch递归算法,画手绢

 

我们知道,上图中, “移动边长三分之一步” 的上间一句:“地毯 边长除以 3”, 它是递归法的体现程序。

上图中是边长大于 33 的,边长大于 33 所对应的图是:

 

Scratch递归算法,画手绢

 

我分别列出来:

 

Scratch递归算法,画手绢

这个边长是300。

Scratch递归算法,画手绢

这个边长是100。

Scratch递归算法,画手绢

这个边长是33.333。

Scratch递归算法,画手绢

这个边长是11.111。

Scratch递归算法,画手绢

这个边长是3.704。

 

看看递归运算时的走法:

 

Scratch递归算法,画手绢

 

当边长是300时,没有参与这种递归,直接画一个正方形。这是边大于100的情形。

 

当边长是100时,只要边长大于100的三分之一,都会画成边长是100. 为什么? 因为没有达到它的三分之一就不能再平均走到下一个台阶。所以输入99和34都是一样的图。在上图中,就是那两个小的红箭头,从第一个台阶走到第二个台阶,就回归了。

 

同样当边长是33.333时,只要没达到下一个台阶11.111,所有的设定值的图都是与33一样的。

。。。。。。

 

我们来看视频,感觉一下台阶的分界线:

 

 

 

 

如果有下一级,那么上面所有级的线都不会再画,直接画最下级了,但是回归还是要走到上一级的,就是说,画的是最下一级但是格局是每一级的都有。

我们再来慢速看看递归算法运行的轨迹,在拐角处停的时间为什么更长?是因为首先它要结束本级同时要回归到上级,所以时间更长。请看:

 

 

 

 

您必须 登录 才能发表评论!