順列・組み合わせ計算

順列(nPr)

n個の中からr個を選んで並べる場合の数


組み合わせ(nCr)

n個の中からr個を選ぶ場合の数(順序は考えない)


階乗(n!)

n個すべてを並べる場合の数


重複組み合わせ(nHr)

n種類の中からr個を重複を許して選ぶ場合の数

順列・組み合わせの概要・基礎知識

順列(nPr)と組み合わせ(nCr)は、高校数学の「場合の数」の中心となる概念で、確率・統計・情報理論・暗号など実務でも頻繁に登場します。本ツールでは順列、組み合わせ、階乗(n!)、重複組み合わせ(nHr)の4種類をまとめて扱えます。「順序を区別するかどうか」「同じ要素を重複して選べるかどうか」の2軸で整理すると、どの公式を使えばよいかが明確になります。本ツールはJavaScriptの倍精度浮動小数点数で計算するため、結果が約1.8×10^308を超えない範囲(n=170前後)まで安定して算出できます。

4種類の公式と違い

種類記号順序重複公式
順列nPr区別する不可n! / (n−r)!
組み合わせnCr区別しない不可n! / (r! × (n−r)!)
階乗n!n × (n−1) × … × 1
重複組み合わせnHr区別しない(n+r−1)! / (r! × (n−1)!)

使い方の流れ

  1. 計算したい種類のセクション(順列・組み合わせ・階乗・重複組み合わせ)を選びます。
  2. n(全体の数または種類数)を入力します。最大値は170です。
  3. r(選ぶ数)を入力します。順列・組み合わせの場合はr ≤ nである必要があります。
  4. 「計算する」を押すと、結果と計算式の両方が表示されます。式を見れば手計算の検算もしやすくなります。
  5. 必要なら「結果をコピー」でクリップボードに転送し、レポートやノートに貼り付けます。

こんな場面で使う

  • 受験勉強・数学の検算:高校数学A「場合の数と確率」、共通テスト、私立大入試の演習で式と答えを同時に確認できます。
  • 確率の計算:くじ引き・トランプ・サイコロなど、分母分子の場合の数を計算するのに使えます。例えば52枚から5枚を選ぶ手は52C5=2,598,960通りです。
  • パスワード強度の見積もり:使える文字種の総当たり数を試算し、何ビット相当の強度があるかを把握できます。
  • リーグ戦・トーナメント設計:n人の総当たりの試合数はnC2、n人のトーナメントの試合数はn−1試合という基本式を素早く検算できます。
  • 抽選・サンプリング設計:マーケティング調査や品質管理で、何通りの選び方があるかを把握する際に役立ちます。

使う前に知っておきたい注意点

  • nが170を超える計算はJavaScriptの最大値(Number.MAX_VALUE ≈ 1.8×10^308)を超え、Infinityとして扱われます。それ以上の精度が必要な場合はPythonやWolframAlphaなどBigInt対応の環境を使ってください。
  • nやrに小数を入れた場合は整数にまるめて扱われます。意図せず小数を入れていないかご確認ください。
  • 順列か組み合わせか迷ったら「並び順を変えたものを別物として数えるか」を基準にしてください。ABCとBACを別と数えるなら順列、同じなら組み合わせです。
  • nCrとnPrは r=0 のとき1、r=nのときも順列・組み合わせの定義から1またはn!となります。境界値の挙動に注意してください。

用語の補足

  • パスカルの三角形:nCrを並べた三角形の図。各数字は左上と右上の和になっており、組み合わせの計算と密接に結びついています。
  • 二項定理:(a+b)^nの展開係数がnCrと一致するという定理。組み合わせの応用例として頻出します。
  • 順列の特殊形:円順列(n−1)!、じゅず順列(n−1)!/2、同じものを含む順列(多項係数)など、用途別に派生公式があります。

よくある質問

170まで対応しています。171!以上はJavaScriptの数値範囲(約1.8×10^308)を超えるため、170が実用上の上限です。それ以上の値が必要な場合はBigInt対応の数学処理系(PythonやWolframAlphaなど)の利用をおすすめします。
0! = 1 です。数学の定義として「何も選ばない方法は1通り」と決められており、二項定理や組み合わせの公式に整合させるための約束事になっています。本ツールも0!=1として計算します。
「並び順が違えば別の場合として数えるか」を基準にしてください。リレーの走順や席順は順列、委員会のメンバー選びやくじ引きは組み合わせです。問題文に「並べる」「順番に」とあれば順列、「選ぶ」「組」とあれば組み合わせの目印になります。
同じ種類のものを何度でも選べる場合の数え方です。例えば「3種類のジュースから5本買う」「6面サイコロを4回振った目の組合せ(順序無視)」などが該当します。式は (n+r−1)Crと等しく、本ツールでもこの形で計算しています。
総当たりリーグの試合数はnC2で求められます。10チームのリーグなら10C2=45試合、5チームなら5C2=10試合です。「組み合わせ」セクションでn=チーム数、r=2を入力してください。ホーム&アウェイ方式ならその2倍が総試合数になります。
「重複可・順序あり」のパスワードは順列でも組み合わせでもなく、単純に文字種^桁数で求まります。例:英数62種で8桁ならおよそ62^8 ≈ 218兆通り。本ツールの順列・組み合わせ機能は重複なしの選び方なので、パスワード強度計算には別途累乗計算をご利用ください。
いいえ、すべての計算はブラウザで完結し、外部送信は一切ありません。入力したnやrの値が外部サーバーに記録されることはありません。