recursive「再帰的」では、タスクは一つと考えていい。
ある人がコンピュータでプログラムを実行している時は、オペレーティングシステムは、その人に対応してタスクを想定する。
このタスクが、階乗計算のサブプログラム(手続きと言っても良い)を実行している。
階乗計算factorialのサブプログラムは、繰り返しでも書けるが、次のような形態でプログラムすることもできる。
factorial(n)={if n=1 then 1 else n*factorial(n-1)}
この形式をrecursive 「再帰的」と言う。
これは「あるプログラムの中に、そのプログラムと同じものを(パラメータを変えて)呼び出す形式。
(ファク・トーリアル=階乗(n以下すべての自然数の積;n!を表す)
数学において自然数 n の階乗(かいじょう、英: factorial)n ! とは、1 から n までの全ての整数の積のことである[1]。例えば、
階乗は数学の様々な場面に出現するが、特に組合せ論、代数学、解析学などが著しい。階乗の最も基本的な出自は n 個の相異なる対象を1列に並べる方法(対象の置換)の総数が n! 通りであるという事実である。
0! | 1 |
---|---|
1! | 1 |
2! | 2 |
3! | 6 |
4! | 24 |
5! | 120 |
6! | 720 |
7! | 5040 |
8! | 40320 |
9! | 362880 |
10! | 3628800 |
11! | 39916800 |
12! | 479001600 |
13! | 6227020800 |
14! | 87178291200 |
15! | 1307674368000 |
16! | 20922789888000 |
17! | 355687428096000 |
18! | 6402373705728000 |
19! | 121645100408832000 |
20! | 2432902008176640000 |
21! | 51090942171709440000 |
22! | 1124000727777607680000 |
23! | 25852016738884976640000 |
階乗の定義は、最も重要な性質を残したまま、非整数を引数とする函数に拡張することができる。そうすれば解析学における著しい手法などの進んだ数学を利用できるようになる。
定義[編集]
いくつか同値な条件により定義することが可能である。
上記の何れの定義においても、
となることが織り込み済みである(最初の定義では「0 項の積は 1 と定める」という規約によって)[注釈 1]。このように定義する理由は: