APP下载

算法练习

2021-06-28

电脑报 2021年10期

斐波那契数列又称黄金分割数列,而斐波那契螺旋线是在斐波那契数列为边长的一系列正方形中绘制一个90度的弧线,将这些弧线连接起来组成的一条漂亮的螺旋线,又称为“黄金螺旋”。自然界中存在许多“黄金螺旋”的图案,不得不感叹大自然的鬼斧神工(图1)。

先思考斐波那契螺旋线的绘制算法,需要产生符合斐波那契数列的数字(0,1,1,2,3,5,8,13……),这个数列可以用递归的方法定义F0=0,F1=1,Fn=F(n-1)+F(n-2)。接着按这个数列绘制出对应边长的正方形并拼接在一起,然后绘制出对应的弧度进行组合完成“黄金螺旋”。

接下来思考用Scratch完成这个算法需要将绘制过程分为几个步骤。对应分成三个步骤:1.绘制正方形;2.计算斐波那契数列;3.绘制弧线(图2)。

開始编程,删除小猫角色,新增铅笔角色用于绘制正方形,在绘制前先在造型中将笔尖的位置调整到中心。初始化画笔的粗细、角色大小、抬笔状态。接下来考虑需要使用的变量,变量有三个:“正方形的边长”,从图中观察到初始值是1;为了用递归产生斐波那契数列的数字,还需变量F1初始值0和F2初始值1。图中有六个正方形,所以可以定义循环重复执行6次(也可以手动输入其他循环次数)。增加两个自制积木:“绘制正方形”和“计算斐波那契数列”;正方形的绘制比较简单,就不细说了,用(“正方形的边长”×30)让正方形大小更好看。需要注意一个细节,画完一个正方形后下一个正方形的起点不是在上一个正方形的终点,图2中绿色箭头标注的就是前三个正方形的起点,仔细分析知道画完后还要移动两次。

登录APP查看全文