今天我們用scratch來畫出神奇的斐波那契曲線。
神奇的斐波那契曲線在我們的生活中隨處可見,海螺,樓梯,圖案……
知識普及1:斐波那契數列
義大利數學家列昂納多·斐波那契(Leonardo Fibonacci)在研究兔子繁殖的時候發現:如果一開始有一對兔子,它們每月生育一對兔子,小兔在出生後一個月又開始生育且繁殖情況與最初的那對兔子一樣,那麼每月兔子的總數可以用以下數列表示:1,1,2,3,5,8,13,21,34,55,89,144,233…這一數列看起來相當簡單,但卻隱藏著一些有趣的東西,如果從第0項開始,它的值是0 ,第1項是1,……那麼數列中後面的每一項都等於前兩項之和,稱為斐波那契數列(Fibonacci sequence)。
一、準備工作
1、背景:選擇背景庫中的「戶外」類;
2、角色:選擇角色庫中的「所有」類中的畫筆;
3、變量:新建四個變量,分別命名為「f1」、「f2」、「f3」、「n」、「x」;
二、編輯腳本
1、自製新的積木模塊:
單擊代碼區的「自製積木」,製作新積木模塊,新積木中的參數默認是文本項,單擊後修改文體內容為「項斐波那契數列」,在文本項參數前面再添加一個輸入項參數,用來接收輸入的數字,表示第n項斐波那契數;
2、編輯自製積木腳本:自製積木模塊實現的功能是生成斐波那契數;
通過分析斐波那契數列的定義,我們可以迭代法來完成腳本;
知識普及2:迭代法
——也稱輾轉法,是一種不斷用變量的舊值遞推新值的過程;迭代算法是用計算機解決問題的一種基本方法。它利用計算機運算速度快、適合做重複性操作的特點,讓計算機對一組指令(或一定步驟)進行重複執行,在每次執行這組指令(或這些步驟)時,都從變量的原值推出它的一個新值;
(1)初始化:給四個變量「f1」「f2」「f3」「n」設置初始值。給f1賦值為1,再將f1的值賦予第f2、f3。變量n控制循環次數。
(2)循環與迭代:通過三個變量的迭代,用一個循環,計算出變量f3的值,即第n項斐波那契數值;
3、主程序腳本:
(1)畫筆初始化:設置畫筆的位置,粗細,顏色,初始狀態為清除;
(2)繪製斐波那契曲線:循環30次,選取30項斐波那契數;
因為斐波那契數值在變化,所以當移動步數為斐波那契數值,旋轉角度為90度除以斐波那契數值時,就形成了神奇變化的斐波那契曲線;
三、完整腳本
想一想,改變腳本中的旋轉角度與循環次數後,斐波那契曲線會有什麼變化呢?