程式 > 範例:遞歸函數
  
範例:遞歸函數
使用 PTC Mathcad 程式編寫功能可定義遞歸函數。
範例 1:定義階乘函數
1. 定義函數 Fac,以計算 n 的階乘。使用「函數」標籤標示您的函數。
按一下以複製此運算式
2. 使用 Fac 計算 6 的階乘,並使用 PTC Mathcad 階乘運算子加以檢查。
按一下以複製此運算式
按一下以複製此運算式
3. 以 n 的不同條件來定義另一個函數 Fac,並呼叫該函數,如下所示。
按一下以複製此運算式
按一下以複製此運算式
PTC Mathcad 會產生相同的結果,因為它會回頭查看 Fac 先前的定義以執行計算。
4. 停用 Fac 的第一個定義,查看結果中的差異。請勿重複使用函數名稱,以避免這種模稜兩可的情況。
範例 2:計算兩項正整數的最大公約數 (GCD)
1. 寫入計算兩數最大公約數的遞歸函數 GCD,那是能整除 xy 的最大整數。
按一下以複製此運算式
2. 以各種值呼叫此函數。
按一下以複製此運算式
按一下以複製此運算式
此程式與內建的最大公約數函數 gcd 相同:
按一下以複製此運算式
按一下以複製此運算式
範例 3:定義函數 f(x) 在點 a 的第 n 個疊代
1. 寫入遞歸函數嵌套,計算函數 f(x) 在點 a 的第 n 個疊代。
按一下以複製此運算式
2. 定義函數 f(x),並將 a 指派為 1。
按一下以複製此運算式
按一下以複製此運算式
3. 以各種值呼叫此函數。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
範例 4:定義費布那西序列 (每次呼叫各兩次遞歸呼叫)
1. 寫入函數 fib,計算 n 的費布那西序列值。
按一下以複製此運算式
2. 定義向量 k,並呼叫 fib 函數。
按一下以複製此運算式
按一下以複製此運算式
範例 5:定義資料分割函數
1. 撰寫以不同方式計算數字的遞歸函數 part,將 m 表示成不超過 n 的正整數總和。
按一下以複製此運算式
2. 以各種值呼叫此函數。
按一下以複製此運算式
按一下以複製此運算式
範例 6:建立隨機二進位樹
1. 撰寫遞歸函數 Tree,建立隨機二進位樹。
按一下以複製此運算式
2. 呼叫函數。
按一下以複製此運算式
按一下以複製此運算式
範例 7:求解二進位樹的高度
1. 撰寫遞歸函數 height,以傳回二進位樹的高度。
按一下以複製此運算式
2. 以您在上述範例中所建立的樹,呼叫函數。
按一下以複製此運算式
* 
因為 Tree 會建立一個隨機二進位樹,每次重新計算之後,傳回的高度都會發生變化。
範例 8:設定 Eratosthenes 求解質數
1. 使用 ceil 函數,撰寫遞歸函數 p,以使用 Eratosthenes 篩選法計算小於 n 的所有質數。
按一下以複製此運算式
2. 呼叫函數,以取得小於 200 之所有質數的向量。
按一下以複製此運算式