階乗(n!)とは|0!=1の理由・順列組合せとの関係・急増する性質をやさしく解説
階乗は「1からnまでをすべて掛け合わせた数」で、n!と書きます。並べ方の総数を数えるときに自然に登場し、順列や組合せ、確率の計算の土台になります。本記事では、階乗とは何かという定義から、0!=1になる理由、値が爆発的に大きくなる性質、順列・組合せとの関係、用途、そして計算機で起きる桁あふれの注意点までをやさしく解説します。
数学の教科書や電卓のボタンで「n!」という表記を見たことはないでしょうか。これが階乗(かいじょう)です。エクスクラメーションマーク(!)が付いているので強調のように見えますが、これはれっきとした演算記号で、「1からその数までをすべて掛け合わせる」という意味を持ちます。本記事では、階乗とは何か、なぜ0の階乗が1になるのか、そしてなぜ値があっという間に巨大になるのかを順を追って解説します。
階乗(n!)とは何か
階乗とは、1から正の整数nまでの整数をすべて掛け合わせた積のことで、n!と書きます。読み方は「nの階乗」または「nファクトリアル」です。定義を式で書くと次のようになります。
n! = n × (n − 1) × (n − 2) × … × 3 × 2 × 1
具体的な値を見るのが一番わかりやすいでしょう。小さい数の階乗を並べてみます。
| n | 計算 | n! |
|---|---|---|
| 1 | 1 | 1 |
| 2 | 2 × 1 | 2 |
| 3 | 3 × 2 × 1 | 6 |
| 4 | 4 × 3 × 2 × 1 | 24 |
| 5 | 5 × 4 × 3 × 2 × 1 | 120 |
階乗には便利な性質があります。それはn! = n × (n − 1)!という関係です。たとえば5! は 5 × 4! = 5 × 24 = 120 と計算できます。前の階乗の値に次の数を掛けるだけで求められるため、順に計算していけば簡単に値が得られます。実際に手元で値を確かめたいときは、階乗キー(x!)を備えた関数電卓ツールを使うと、大きな数でも一発で計算できて便利です。
なぜ0!=1になるのか
階乗の定義を素直に読むと「1から掛け合わせる」のですから、0の階乗である0!は一見すると0や、定義できない値になりそうに思えます。ところが数学では0! = 1と定められています。これは思いつきで決めたのではなく、いくつかの理由から「1とするのが最も自然で都合がよい」からです。
まず、先ほどのn! = n × (n − 1)!という関係を逆向きにたどってみます。この式をn − 1の階乗について解くと、(n − 1)! = n! ÷ n となります。ここにn = 1を当てはめると、0! = 1! ÷ 1 = 1 ÷ 1 = 1 となり、自然に0! = 1が導かれます。
もう一つの理由は「数え上げ」の観点です。階乗は「n個のものを一列に並べる並べ方の総数」を表します。では、0個のもの(何もない状態)の並べ方は何通りあるでしょうか。「何も並べない」という並べ方がちょうど1通りだけ存在すると考えるのが自然です。だから0! = 1とするのが、現実の数え上げとも一致します。この考え方は、組合せの個数を求める計算でも重要な役割を果たします。
階乗は爆発的に大きくなる
階乗のもっとも印象的な性質は、nが少し増えるだけで値が桁違いに大きくなることです。掛け算を繰り返すため、足し算やかけ算ひとつとは比べものにならない速さで増えていきます。次の表でその急増ぶりを見てみましょう。
| n | n! |
|---|---|
| 5 | 120 |
| 10 | 3,628,800(約362万) |
| 13 | 6,227,020,800(約62億) |
| 20 | 約2.43 × 10の18乗 |
| 70 | 10の100乗を超える(1の後に0が100個以上) |
たった10でも約362万、20でおよそ243京という途方もない数になります。70! にいたっては、宇宙にある原子の数の見積もりすら超えると言われる「10の100乗」を上回ります。このように、階乗は指数関数よりもさらに速く増加する関数として知られています。トランプ52枚を並べる順番が52! 通りもあり、その値が宇宙の年齢を秒で数えた数よりはるかに大きい、といった話が成り立つのも、この急増する性質のためです。
順列・組合せとの関係
階乗が活躍する代表的な場面が、順列と組合せです。どちらも「いくつかのものから選んで並べる/選ぶ方法は何通りあるか」を数えるもので、その式に階乗が登場します。
順列(並べ方)
異なるn個のものからr個を選んで順番をつけて並べる方法の数を順列といい、次の式で表されます。
nPr = n! ÷ (n − r)!
たとえば5人から3人を選んで1列に並べる場合は、5P3 = 5! ÷ 2! = 120 ÷ 2 = 60通りです。並べる順番の違いを区別して数えるのが順列の特徴です。
組合せ(選び方)
順番を区別せず、ただr個を選ぶだけの方法の数が組合せで、次の式になります。
nCr = n! ÷ ( r! × (n − r)! )
順列を、選んだr個の並べ替え方であるr! で割った形になっています。先ほど0! = 1としたおかげで、nCn(全部選ぶ場合)が n! ÷ (n! × 0!) = 1通りときれいに計算できるのも、定義のうまさを示しています。実際に数値を入れて確かめたいときは、組合せ計算ツールを使えば、nとrを入力するだけで順列・組合せの値がすぐに求められます。複雑な階乗の割り算を手で計算する必要はありません。
何に使うのか:確率と数え上げ
階乗は、純粋な数学の問題だけでなく、身近な確率や数え上げの計算で広く使われます。「全部で何通りあるか」を数える場面のほとんどに、階乗が関わっていると言ってもよいほどです。
- 確率の計算:くじやカードで特定の並びが出る確率は、「条件に合う場合の数 ÷ 全体の場合の数」で求めます。この分母・分子の場合の数を数えるのに階乗(順列・組合せ)が使われます。
- 並べ方・座席の数え上げ:何人かを一列に並べる、円卓に座らせる、といった並べ方の総数は階乗で表されます。
- 統計・データ分析:二項分布などの確率分布の式には、組合せ(つまり階乗)が含まれています。
たとえば「7人を一列に並べる方法は何通り?」なら答えは7! = 5,040通り、「10人から3人の委員を選ぶ方法は?」なら組合せで10C3 = 120通り、というように、日常的な数え上げの問題が階乗で表現できます。こうした計算を素早く正確に行いたいときは、組合せ計算ツールや、階乗キーのある関数電卓ツールが役立ちます。
桁あふれ(オーバーフロー)の注意
階乗を計算機やプログラムで扱うときに、必ず知っておきたいのが桁あふれ(オーバーフロー)です。前述のとおり階乗は爆発的に増えるため、ほんの少し大きいnを入れただけで、コンピュータが扱える数の上限をあっという間に超えてしまいます。
たとえば多くのプログラミング言語で整数として安全に扱える範囲は、符号付き64ビット整数でおよそ9.2 × 10の18乗までです。階乗でいうと20! までは収まりますが、21! はこの範囲を超えてしまい、正しく計算できなくなります。上限を超えると、エラーになるか、あるいは何の警告もなくまったく違う(しばしば負の)値が返ることもあり、後者は特に気づきにくく危険です。
また、小数(浮動小数点数)で計算すると、より大きなnまで扱える代わりに、今度は細かい部分の精度が失われ、近似値になるという別の問題が出てきます。大きな階乗を正確に求めたい場合は、桁数に制限のない「多倍長整数」に対応した環境やツールを使う必要があります。階乗を含む計算をするときは、「使っている道具がどこまで正確に計算できるのか」を意識することが大切です。手元で安全に確かめたいときは、表示桁数に配慮した関数電卓ツールで、まずは小さめのnから試してみるとよいでしょう。
階乗は、1からnまでの積という単純な定義でありながら、0! = 1という約束、爆発的に増える性質、順列・組合せや確率への広がりまで、数学の数え上げの世界を支える基礎概念です。まずは組合せ計算ツールで順列・組合せの値を、関数電卓ツールで階乗そのものの値を実際に計算し、数がどれほど速く大きくなるかを体感してみてください。
なお本記事は一般的な情報の提供を目的としたものです。階乗を用いた計算の結果は入力やツールの仕様によって精度や上限が変わります。重要な計算では複数の方法で検算し、最新の公式情報や信頼できる資料も確認したうえで判断してください。
よくある質問
階乗(n!)とは何ですか?
階乗とは、1からその正の整数nまでの整数をすべて掛け合わせた積のことで、n!と書きます。たとえば5! = 5 × 4 × 3 × 2 × 1 = 120です。n個のものを一列に並べる並べ方の総数を表し、順列・組合せや確率の計算の土台になります。「nの階乗」または「nファクトリアル」と読みます。
なぜ0!(0の階乗)は1になるのですか?
n! = n × (n − 1)! という関係から(n − 1)! = n! ÷ n が導け、n = 1を入れると0! = 1! ÷ 1 = 1となるためです。また「0個のものの並べ方は『何も並べない』という1通りだけある」と考えるのが自然で、組合せの式もこの約束のおかげできれいに成り立ちます。
階乗はどれくらい大きくなりますか?
非常に速く大きくなります。10! は約362万、20! は約2.43 × 10の18乗、70! になると1の後に0が100個以上並ぶ「10の100乗」を超えます。階乗は指数関数よりさらに速く増加するため、わずかにnを増やしただけで値が桁違いに大きくなる点に注意が必要です。
階乗と順列・組合せはどう関係していますか?
順列はnPr = n! ÷ (n − r)!、組合せはnCr = n! ÷ ( r! × (n − r)! ) と、いずれも式の中に階乗が含まれます。順列は順番を区別した並べ方、組合せは順番を区別しない選び方の数で、確率や数え上げの計算に欠かせません。WAZA TOOLSの組合せ計算ツールでnとrを入れるとすぐ求められます。
階乗の計算ツールに入力した値はサーバーに送信されますか?
WAZA TOOLSの組合せ計算ツールや関数電卓ツールはすべてブラウザ内で処理され、入力した数値や計算結果がサーバーに送信・保存されることはありません。スマートフォンでも利用でき、何度でも無料で階乗や順列・組合せを計算できます。