本ページには広告が含まれています。
階乗の定義
階乗とは自然数\(n\)から1までのすべての整数を掛け合せたもので\(n!\)と表記します。
定義式は以下のとおりです。\(\prod\)はパイと読みます。円周率で使われる\(\pi\)の大文字です。
- 総乗記号を用いた定義 \[n!=\prod_{k=1}^{n} k=n \times (n-1) \times … \times 3 \times 2 \times 1\]
- 再帰的な定義 \[ n!= \left\{ \begin{align*} 1, && (n=0) \\ n \times (n-1)! && (n>0) \end{align*} \right. \]
なお、0の階乗は1と定められています。
階乗の計算
例えば5の階乗は総乗記号を用いて計算すると以下のようになります。5から1までの整数の積で求めることができます。
\[5! = \prod_{k=1}^{5} k = 5 \times 4 \times 3 \times 2 \times 1=120\]0から20までの階乗は以下のとおりです。
値(\(n\)) | 表記 | 結果(\(n!\)) |
---|---|---|
0 | 0! | 1 |
1 | 1! | 1 |
2 | 2! | 2 |
3 | 3! | 6 |
4 | 4! | 24 |
5 | 5! | 120 |
6 | 6! | 720 |
7 | 7! | 5,040 |
8 | 8! | 40,320 |
9 | 9! | 362,880 |
10 | 10! | 3,628,800 |
11 | 11! | 39,916,800 |
12 | 12! | 479,001,600 |
13 | 13! | 6,227,020,800 |
14 | 14! | 87,178,291,200 |
15 | 15! | 1,307,674,368,000 |
16 | 16! | 20,922,789,888,000 |
17 | 17! | 355,687,428,096,000 |
18 | 18! | 6,402.373,705,728,000 |
19 | 19! | 121,645,100,408,832,000 |
20 | 20! | 2,432,902,008,176,640,000 |
表を見てわかるとおり、\(n\)の値が大きくなると\(n!\)は指数関数的に増えていきます。ビックリマーク(!)を使う理由は、階乗がびっくりするくらい大きな数になるからとも言われています。
階乗のプログラミング実装
FOR-TO文を使った階乗計算
FUNCTION fact(n)
DIM num = 1
FOR i = 2 TO n
num = num * i
NEXT
RESULT = num
FEND
再帰処理を使った階乗計算
FUNCTION fact(n)
IFB n = 0 OR n = 1 THEN
RESULT = 1
ELSE
RESULT = n * fact(n - 1)
ENDIF
FEND