函式的遞迴及科赫曲線繪製

pray_HKY2002發表於2020-11-30

函式的遞迴及科赫曲線繪製

1 遞迴的定義

遞迴:在函式中呼叫自己本身
在這裡插入圖片描述
階乘的例子表現了遞迴的兩個特徵:
1、存在一個或多個基例,基例不需要再次遞迴,它是確定的表示式
2、所有遞迴鏈要已一個或多個基例結尾

2 遞迴的使用方法

階乘的計算

根據使用者輸入的整數n,計算並輸出n的階乘值(本例n取10,12.56兩種形式數值)
定義fact()函式
在這裡插入圖片描述

在這裡插入圖片描述
fact()函式通過if語句給出n為0的基例,當n==0時,fact()函式返回數值1,不再遞迴;n!=0時,通過遞迴返回n與n-1階乘的乘積
負數和小數則通過abs()與int()函式將對應數值轉換為非負整數

注意:若基例的構建錯誤則遞迴無法返回將會報錯**

字串的反轉

輸入字串n ,輸出反轉後的字串
錯例如下圖

在這裡插入圖片描述
此錯誤表明系統無法執行reverse()函式建立的遞迴
reverse()函式沒有基例,遞迴層數超過最大(預設情況為1000),此時需通過下面的程式碼設定一個新的遞迴層數在這裡插入圖片描述
上面的方法較為麻煩,可以通過設定基例為最短形式(空字串)來進行
正確程式碼為下圖
在這裡插入圖片描述

科赫曲線繪製

形狀類似雪花,也稱雪花曲線在這裡插入圖片描述

科赫曲線的基本概念和繪製方法如下:

正整數n代表科赫曲線的階數,表示生成科赫曲線過程的操
作次數。科赫曲線初始化階數為0,表示一個長度為L的直線。
對於直線L,將其等分為三段,中間一段用邊長為L/3的等邊三
角形的兩個邊替代,得到1階科赫曲線,它包含四條線段。進
一步對每條線段重複同樣的操作後得到2階科赫曲線。繼續重
復同樣的操作n次可以得到n階科赫曲線。

一階科赫曲線

在這裡插入圖片描述

n階科赫曲線的雪花效果

在這裡插入圖片描述

相關文章