プログラム > 例: 再帰関数
例: 再帰関数
PTC Mathcad のプログラミング機能を使用して、再帰関数を定義します。
例 1: 階乗関数の定義
1. n の階乗を計算する関数 Fac を定義します。「関数」ラベルを使用して、関数にラベルを付けます。
クリックしてこの式をコピー
2. Fac を使用して 6 の階乗を計算し、PTC Mathcad の階乗演算子を使用して確認します。
クリックしてこの式をコピー
クリックしてこの式をコピー
3. 次のように、Fac の条件を変えた別の関数 n を定義して、関数を呼び出します。
クリックしてこの式をコピー
クリックしてこの式をコピー
PTC Mathcad では以前の Fac の定義を適用して計算が実行されるので、同じ結果が得られます。
4. Fac の最初の定義を無効にして、結果の違いを確認します。関数名を再利用しないことで、このようなあいまいさを回避します。
例 2: 2 つの正の整数の最大公約数 (GCD) の計算
1. 2 つの数字の最大公約数を計算する再帰関数 GCD を作成します。最大公約数は、xy に共通な約数のうちで最大の整数です。
クリックしてこの式をコピー
2. この関数をさまざまな値で呼び出します。
クリックしてこの式をコピー
クリックしてこの式をコピー
このプログラムは最大公約数を求める組み込み関数gcdと同じです。
クリックしてこの式をコピー
クリックしてこの式をコピー
例 3: 点 a で n 回繰り返す関数 f(x) の定義
1. a で関数 f(x) を n 回繰り返して計算する再帰関数 nest を作成します。
クリックしてこの式をコピー
2. 関数 f(x) を定義して a に 1 を割り当てます。
クリックしてこの式をコピー
クリックしてこの式をコピー
3. この関数をさまざまな値で呼び出します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
例 4: フィボナッチ数列 (呼び出すたびに 2 回の再帰呼び出しを行う) の定義
1. n 番目のフィボナッチ数列の値を計算する関数 fib を作成します。
クリックしてこの式をコピー
2. ベクトル k を定義して、fib 関数を呼び出します。
クリックしてこの式をコピー
クリックしてこの式をコピー
例 5: 分数関数の定義
1. m を n を超えない正の整数の和として表すやり方の数を計算する再帰関数 part を定義します。
クリックしてこの式をコピー
2. 関数をさまざまな値で呼び出します。
クリックしてこの式をコピー
クリックしてこの式をコピー
例 6: ランダムな二分木の作成
1. ランダムな二分木を作成する再帰関数 Tree を作成します。
クリックしてこの式をコピー
2. 関数を呼び出します。
クリックしてこの式をコピー
クリックしてこの式をコピー
例 7: 二分木の高さを求める
1. 二分木の高さを返す再帰関数 height を作成します。
クリックしてこの式をコピー
2. 前の例で作成した二分木で関数を呼び出します。
クリックしてこの式をコピー
* 
Tree はランダムな二分木を作成するため、返される高さは再計算のたびに変わります。
例 8: エラトステネスの篩を設定して素数を求める
1. ceil関数を使用して、エラトステネスの篩を使用した、n よりも小さいすべての素数を計算する再帰関数 p を作成します。
クリックしてこの式をコピー
2. 関数を呼び出して、200 より小さいすべての素数のベクトルを求めます。
クリックしてこの式をコピー
これは役に立ちましたか?