階乗 (Factorial)
数学において、
自然数 $n$ の階乗(かいじょう)、記号としては $n!$ で表される、とは
1 から $n$ までの整数をすべて掛け合わせた結果を指します。例えば、6の階乗は次のように表されます。
$$
6! = 6 \times 5 \times
4 \times 3 \times 2 \times
1 = 720
$$
さらに、階乗の定義には特別な規則があります。具体的には、空の積としての $0!$ は
1 と定義されます。
階乗は様々な
数学の分野で用いられる重要な概念です。特に組合せ論、
代[[数学]]、
解析学において、その役割は非常に顕著です。階乗の基本的な考え方は、$n$ 個の異なる対象を
1列に並べる方法、即ち置換の総数が $n!$ 通りであるという事実です。
階乗の定義
階乗の定義は、いくつかの同値な条件に基づいています。これには次のような表現が含まれます。
1.
自然数 $n$ に対する階乗の定義:
$$
n! = \prod_{k=
1}^{n} k = n \times (n -
1) \times \cdots \times 3 \times 2 \times
1
$$
2. 再帰的定義:
$$
n! = \begin{cases}
1, & (n = 0) \\
n \times (n -
1)!, & (n > 0)
\end{cases}
$$
3. 微分に関する冪の法則を用いた定義:
$$
n! = \frac{d^n}{dx^n} x^n \quad (n \geq 0)
$$
いずれの定義においても、$0!$ の値は
1 とされており、これは「0項の積は
1と定おる」という規約によるものです。このように定義する理由は、進んだ
数学的な解析において階乗が重要であることに依存しています。
プログラミング言語における階乗
多くのプログラミング言語では、階乗の計算は再帰的な定義を用いて実装されます。例えば、
C言語での階乗の実装例は下記のようになります:
```c
unsigned long long factorial(int n) {
if(n == 0) return
1;
return n * factorial(n -
1);
}
```
ただし、$2
1!$ 以上の数値になると、通常の `unsigned long long` 型ではオーバーフローしますので、大きな階乗については専用のデータ型や任意精度演算を用いる必要があります。
組合せ論における階乗の重要性
階乗は多くの
数学の分野に登場しますが、その根本的な出発点は組合せ論にあります。特に、相異なる $n$ 個の対象に対する
順列($k$-
順列)の総数は $n!$ 通りです。階乗は、しばしば順序を無視する事実を反映するものとして分母に現れます。このことは、$k$ 個の元を $n$ 個の元から選ぶ組み合わせにおいても同様です。具体的には、$k$-
順列の総数は次のように表されます:
$$
n^{\underline{k}} = n(n -
1)(n - 2) \cdots (n - k +
1)
$$
順列から組み合わせを得る手法として、$k$-
順列の数を $k!$ で割ることで、$k$-組合せの総数が求められます。具体的には、$C(n, k) = \frac{n^{\underline{k}}}{k!}$ と表され、これは二項係数の計算にも使用されます。
微分積分学でも階乗は重要な役割を果たします。例えば、テイラー級数において、関数 $f(x)$ の $n$ 階導関数が $n!$ で割られる形式が現れます。
確率論においても階乗はしばしば用いられ、
数論にも多くの応用が見られます。
結論
階乗は、
数学の多くの分野において基礎となる重要な概念です。その性質を理解することは、組合せ的な問題の解決や、解析的な手法の利用において不可欠です。階乗に関連する計算や、特定の理論の適用は、今後の
数学的研究にも益することでしょう。