全体の個数 n と選ぶ個数 r を入力してください。順番を区別して選ぶ「順列 nPr」と、順番を区別せずに選ぶ「組み合わせ nCr」を同時に計算します。下の数式は入力欄と連動していて、n・r の部分を直接書き換えても計算できます。
このページでできること
- 「全体の個数 \(n\)」と「選ぶ個数 \(r\)」を入れるだけで、順列 \({}_{n}\mathrm{P}_{r}\)(順番を区別して選ぶ場合の数)と組み合わせ \({}_{n}\mathrm{C}_{r}\)(順番を区別せずに選ぶ場合の数)が同時にわかります
- 「11人のサッカーチームからキャプテンとゴールキーパーを選ぶと何通り?」「フォワード2人を選ぶと何通り?」のような場合の数の計算が一発でできます
- 答えが何十桁・何百桁になる大きな \(n\) でも、丸めずに全桁を正確に表示します
- 式のやさしい解説・Excel/Googleスプレッドシート/Python用のコピペ数式・計算ドリル(演習問題)もこのページにまとまっています
この計算は何の役に立つ?
ロト6は、1〜43の43個の数字から6個を選ぶくじです。選び方は順番を区別しない組み合わせなので、全部で \({}_{43}\mathrm{C}_{6} = 6{,}096{,}454\) 通り。1等(6個すべて一致)はそのうち1通りなので、当せん確率は約609万分の1です。
組み合わせの式は、宝くじや懸賞の「当たりにくさ」を感覚ではなく具体的な数字で確かめるための土台になっています。
30人のクラスで学級委員長と副委員長を1人ずつ決めるのは、役割を区別するので順列で \({}_{30}\mathrm{P}_{2} = 30 \times 29 = 870\) 通り。一方、掃除当番を2人選ぶだけなら順番は関係ないので組み合わせで \({}_{30}\mathrm{C}_{2} = 435\) 通りです。
「役割や順番を区別するかどうかで数が変わる」ことを知っていると、くじ引きや選挙の場面で正しく数えられます。
総当たり戦の試合数は「対戦する2チームの選び方」なので、\(n\) チームなら \({}_{n}\mathrm{C}_{2}\) 試合です。10チームなら \({}_{10}\mathrm{C}_{2} = 45\) 試合になります。
スポーツ大会の運営や日程作りでは、この計算で必要な試合数・日数・会場数を見積もります。
0〜9の10種類の数字から、同じ数字を使わずに4桁の番号を作ると、順番を区別するので \({}_{10}\mathrm{P}_{4} = 5{,}040\) 通りです。パターン数が多いほど総当たりで破られにくく、桁数を増やすことがどれだけ効くかも順列で見積もれます。
ちなみに英語で「combination lock(組み合わせ錠)」と呼ばれるダイヤル錠は、順番が違うと開かないので、数学的には組み合わせではなく順列です。
100個の製品から検査用に5個を抜き取るとき、その選び方は \({}_{100}\mathrm{C}_{5} = 75{,}287{,}520\) 通りあります。
統計的な抜き取り検査(サンプリング検査)の理論は、この組み合わせの数を土台にして「不良品が混ざっていたとき検査で見つかる確率」を計算しており、工場の品質保証に欠かせない仕組みになっています。
式
用語・記号の解説
記号
| \(n\) | エヌ | 選ぶもとになる全体の個数。(例:11人から選ぶなら \(n = 11\)) |
| \(r\) | アール | 全体の中から選ぶ個数。(例:2人選ぶなら \(r = 2\)) |
| \(n!\) | エヌの階乗 | \(n\) から \(1\) までの整数をすべてかけ合わせた数。\(n\) 個すべてを1列に並べる並べ方の総数を表します。ただし \(0! = 1\) と約束します。(例:\(4! = 4 \times 3 \times 2 \times 1 = 24\)) |
| \({}_{n}\mathrm{P}_{r}\) | エヌ・ピー・アール | \(n\) 個から \(r\) 個選んで順番に並べる方法の総数(順列)。Pは順列を意味する英語 permutation の頭文字です。 |
| \({}_{n}\mathrm{C}_{r}\) | エヌ・シー・アール | \(n\) 個から \(r\) 個選ぶ方法の総数(組み合わせ)。Cは組み合わせを意味する英語 combination の頭文字です。 |
| \(\binom{n}{r}\) | エヌ・シー・アール(二項係数) | \({}_{n}\mathrm{C}_{r}\) の別の書き方。大学以降の数学や海外の教科書ではこちらの記法がよく使われます。 |
用語
| 場合の数 | ばあいのかず | 起こりうるパターンが全部で何通りあるかを数えた数。順列も組み合わせも、場合の数を数えるための道具です。 |
| 順列 | じゅんれつ | \(n\) 個から \(r\) 個選んで、順番を区別して1列に並べる並べ方。「キャプテンと副キャプテン」のように役割や順位の違いを別物として数えます。 |
| 組み合わせ (組合せ) |
くみあわせ | \(n\) 個から \(r\) 個選ぶだけで、順番を区別しない選び方。「掃除当番の2人」のように、選ばれた顔ぶれが同じなら1通りと数えます。数学の用語としては「組合せ」と送りがなを省いて書くのが正式です。 |
| 階乗 | かいじょう | \(n\) から \(1\) までの整数をすべてかけ合わせる計算。記号は \(n!\) で、\(n\) 個すべてを並べる並べ方の総数を表します。 |
| 二項係数 | にこうけいすう | \({}_{n}\mathrm{C}_{r}\) の別名。\((a+b)^n\) を展開したときの各項の係数がちょうど \({}_{n}\mathrm{C}_{r}\) になることからこう呼ばれます。 |
| 樹形図 | じゅけいず | 場合の数をもれなく・重複なく数えるために、枝分かれの図で全パターンを書き出す方法。順列・組み合わせの式は、樹形図の数え上げを計算で一気に行うものです。 |
| 重複順列 | ちょうふくじゅんれつ | 同じものを何回でも選べる場合の順列で、\(n^r\) 通りになります。このページの計算機が扱うのは「繰り返しなし」の場合だけです。 |
| 重複組合せ | ちょうふくくみあわせ | 同じものを何回でも選べる場合の組み合わせ。このページの計算機が扱うのは「繰り返しなし」の場合だけです。 |
前提として理解しておくといいこと
このページの計算を「意味がわかって」使えるようになるために、前提として理解しておくといいことをまとめました。
| 掛け算・割り算(小学3〜5年) |
|
| 場合の数と樹形図(小学6年〜中学2年) |
|
| 階乗の記号(高校 数学A) |
|
| 順列・組み合わせ(高校 数学A) |
|
Excelで計算する方法
| 並べる個数 n | 4 |
| すべての並べ方 n! | =FACT(B1) |
| 全体の個数 n | 11 |
| 選ぶ個数 r | 2 |
| 順列 nPr | =PERMUT(B1,B2) |
| 全体の個数 n | 11 |
| 選ぶ個数 r | 2 |
| 組み合わせ nCr | =COMBIN(B1,B2) |
FACTが階乗、PERMUTが順列、COMBINが組み合わせを計算するExcelの関数です。
例えば2つ目の表ならB3に110、3つ目の表ならB3に55と表示されます。B1とB2を自分の数値に書き換えるだけで使えます。
なお、Excelの数値は有効15桁までなので、n が大きく答えが何十桁にもなる場合は末尾の桁が丸められます。
Googleスプレッドシートで計算する方法
| 並べる個数 n | 4 |
| すべての並べ方 n! | =FACT(B1) |
| 全体の個数 n | 11 |
| 選ぶ個数 r | 2 |
| 順列 nPr | =PERMUT(B1,B2) |
| 全体の個数 n | 11 |
| 選ぶ個数 r | 2 |
| 組み合わせ nCr | =COMBIN(B1,B2) |
表を丸ごとコピーしてA1セルに貼り付け、B1とB2を自分の数値に書き換えてください。
Pythonで計算する方法
import math
total_items = 11 # 全体の個数 n
chosen_items = 2 # 選ぶ個数 r
permutations = math.perm(total_items, chosen_items) # 順列 nPr
combinations = math.comb(total_items, chosen_items) # 組み合わせ nCr
print(f"順列 nPr(順番を区別して選ぶ): {permutations}")
print(f"組み合わせ nCr(順番を区別せずに選ぶ): {combinations}")
数式記述言語(LaTeX等)での書き方(コピペ可)
n! = n × (n − 1) × ⋯ × 2 × 1
n! = n \times (n-1) \times \cdots \times 2 \times 1
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>n</mi><mo>!</mo>
<mo>=</mo>
<mi>n</mi>
<mo>×</mo>
<mo>(</mo><mi>n</mi><mo>−</mo><mn>1</mn><mo>)</mo>
<mo>×</mo>
<mo>⋯</mo>
<mo>×</mo>
<mn>2</mn>
<mo>×</mo>
<mn>1</mn>
</mrow>
</math>
n! = n xx (n-1) xx cdots xx 2 xx 1
Factorial[n]
nFactorial := factorial(n);
n_factorial = factorial(n);
n! = n × (n − 1) × ⋯ × 2 × 1
ₙPᵣ = n! ÷ (n − r)!
{}_{n}P_{r} = \dfrac{n!}{(n-r)!}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mmultiscripts>
<mi>P</mi>
<mi>r</mi><none/>
<mprescripts/>
<mi>n</mi><none/>
</mmultiscripts>
<mo>=</mo>
<mfrac>
<mrow><mi>n</mi><mo>!</mo></mrow>
<mrow><mo>(</mo><mi>n</mi><mo>−</mo><mi>r</mi><mo>)</mo><mo>!</mo></mrow>
</mfrac>
</mrow>
</math>
P(n, r) = (n!)/((n-r)!)
n!/(n - r)!
nPr := factorial(n)/factorial(n - r);
npr = factorial(n)/factorial(n - r);
P(n,r) = n!/(n − r)!
ₙCᵣ = n! ÷ (r! × (n − r)!)
{}_{n}C_{r} = \dfrac{n!}{r!\,(n-r)!}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mmultiscripts>
<mi>C</mi>
<mi>r</mi><none/>
<mprescripts/>
<mi>n</mi><none/>
</mmultiscripts>
<mo>=</mo>
<mfrac>
<mrow><mi>n</mi><mo>!</mo></mrow>
<mrow>
<mi>r</mi><mo>!</mo>
<mo>(</mo><mi>n</mi><mo>−</mo><mi>r</mi><mo>)</mo><mo>!</mo>
</mrow>
</mfrac>
</mrow>
</math>
C(n, r) = (n!)/(r!(n-r)!)
Binomial[n, r]
nCr := binomial(n, r);
ncr = nchoosek(n, r);
C(n,r) = n!/(r!(n − r)!)
ChatGPT に聞いて計算してもらう方法
あなたは場合の数(順列・組み合わせ)の計算アシスタントです。次の計算を、必ずPythonコードを実際に実行して行い、実行結果の数値だけを根拠に回答してください(暗算や推測で答えないでください)。 11人のサッカーチームがあります。 1. キャプテンとゴールキーパーを1人ずつ選ぶ方法は何通りありますか(役割を区別するので順列)。 2. フォワード2人を選ぶ方法は何通りありますか(2人の順番は区別しないので組み合わせ)。 それぞれについて、順列 nPr と組み合わせ nCr のどちらを使ったかと、実行結果の数値を示してください。
計算ドリル(演習問題)
このページの式を、自分の手で計算できるようになるための演習問題です。
答えと解説は解答ページにあります。
使い方
-
1数値を入力計算したい数値を入力欄に入力します
-
2計算「計算する」ボタンを押します
-
3結果を確認計算結果がその場に表示されます。計算の考え方や式の解説も同じページで確認できます
DataChefの特徴
専門知識不要、直感的で簡単な操作
個人情報を登録することなく使用できます
「ダウンロード」押下でファイルを自動削除
クレジット表記不要
商用利用許諾の連絡も不要です
