順列・組み合わせ
サーバー通信ゼロ

順列・組み合わせ計算機

重複あり・なしの順列 (nPr) と組合せ (nCr) を高精度計算。途中式の約分展開、全組み合わせリスト生成、宝くじ当選確率のシミュレーションまで完全網羅。

100% クライアント側プライバシー
プリセットシナリオ
計算分野・表記標準
計算モード

一度選んだ要素は再度選べません(くじ引きやカードの配布など)。

49
050スライダー調整(0〜100、それ以上の数値は直接入力可能)
6
現在の主要算出結果C(n, r) = n! / [r! * (n - r)!] = 49! / [6! * (49 - 6)!]
13,983,816
当選オッズ確率分の1 13,983,816
確率パーセンテージ7.151e-6%
シャノン情報エントロピー23.74 ビット
順列 (nPr)
10,068,347,520n! / (n - r)!
組合せ (nCr)現在の選択
13,983,816n! / [r! * (n - r)!]
重複順列 (n^r)
13,841,287,201n^r
重複組合せ (nHr)
25,827,165C(n + r - 1, r)
二項分布曲線と組合せ確率
母集団の総数 (n) n = 49現在の選出条件 = 6
k = 0k = 25 (Peak)k = 49

対称性 C(n, r) = C(n, n-r) と二項係数の行和 (2^n) の幾何学的分布を可視化します。

倍率比較比(A / B)
順列 (nPr)33.2 ビット組合せ (nCr)23.7 ビット重複順列 (n^r)33.7 ビット重複組合せ (nHr)24.6 ビット

総パターン数から導出したシャノン情報量(ビット数:H = log₂(パターン数))です。

組み合わせ総数13,983,816
情報エントロピー (Bits)23.74 ビット
任意精度演算エンジン任意精度 BigInt(10,000! 対応)
技術リファレンス・アーキテクチャガイド

順列・組合せ計算ガイド — 技術リファレンス

重複あり・なしの順列(nPr)と組合せ(nCr)を瞬時に高精度算出。途中式の階乗約分展開、全組み合わせリストの自動生成、ロトや年末ジャンボなどの当選確率シミュレーションまで完全網羅。

順列・組合せ計算ガイド — 技術リファレンス — クライアントサイド完全ローカル実行アーキテクチャ図
順列・組合せ計算ガイド — 技術リファレンス — クライアントサイド完全ローカル実行アーキテクチャ図

主要パラメータと設定項目

母集団の総数・全体の要素数 (n)要素数(0以上の非負整数)

選出や並び替えの対象となる全体の母集団(選択肢・メンバー・アイテム)の総数です。重複を許さない一般的な抽出(チームメンバーの選抜やくじ引きの玉など)では、選ぶ個数 r がこの総数を超えることはできません(r ≦ n)。一方、何度でも重複して選べる場合(サイコロの出目やアイスのトッピング選択など)では、選択可能な種類の総数を表します。

初期値: n = 10(0〜10,000まで任意指定可能)
選ぶ個数・サンプルサイズ (r または k)選出数・グループ規模(0 ≦ r ≦ n)

母集団から実際に選抜する枠の数、または抽出する要素の個数です。並び順や役職が結果を左右する場合(リレー走者の1位・2位・3位や役員3役の選出など)は順列 P(n, r) の枠数となり、順序に関係なく構成メンバーのみを問う場合(3人のプロジェクト担当者の選抜など)は組合せ C(n, r) の人数となります。なお、r = 0 の場合は「何も選ばない」という1通りの状態を表し、常に 1 となります。

初期値: r = 3(0〜n まで任意指定可能)
並び順の考慮と重複の有無フラグ (isOrdered, withReplacement)配置ロジック・重複許容モード

計算の前提となる2つの基準を決定します。第1に「並び順を区別するかどうか」。順列では順序が意味を持ち(「1着-2着」と「2着-1着」は別物)、組合せでは順序を問いません(「リンゴとバナナ」は「バナナとリンゴ」と同等)。第2に「同一要素の再選択を許すかどうか(重複の有無)」。非復元抽出(重複なし)では1度選んだ要素は除外され、復元抽出(重複あり)では選んだ要素を母集団に戻して何度でも再選択できます。

初期値: 順序: 不問(組合せ) | 重複: なし(非復元抽出)
同じものを含む多項頻度分割 (n1, n2, ... nk)部分群の個数配分(合計 = n)

「CHEESE」という英単語の並べ替え(Eが3個)や、赤・青のユニフォームの並び順など、同一の区別がつかない要素を含む集まりを一列に並べるときに使用します。多項係数の公式 n! / (n1! × n2! × ... × nk!) によって、同一要素同士の無意味な入れ替えパターンを割り引くことで、見た目として区別可能な純粋な配置パターン数を導き出します。

初期値: すべて異なる個別要素(n1 = n2 = ... = nk = 1)
完全順列・劣階乗演算子 (!n)モンモール数・劣階乗整数列

どの要素も元の位置に戻らないシャッフルパターン数(完全順列・攪乱順列)を算出します。クリスマス会のプレゼント交換で『全員が自分以外のプレゼントを受け取る』場合や、クローク札を取り違えて『全員が他人の上着を受け取る』確率計算などに用いられます。参加人数が4名を超えると、完全にランダムに配り直したときに全員が他人のものを受け取る確率は、極めて迅速に 1/e(約36.79%)へと収束します。

初期値: !n = floor(n! / e + 0.5)(n ≧ 1 の場合)
キースペースエントロピーとセキュリティ強度 (H = log2(S))ビット単位の情報エントロピー

パスワードや暗号キーの推測困難性を2進数ビット単位で測定した指標です(H = log2(総パターン数))。情報セキュリティにおいて、ビットエントロピーが高いほど総当たり攻撃(ブルートフォース攻撃)に対する耐性が指数関数的に高まります。例えば数字6桁の暗証番号(10^6通り)はわずか約19.9ビット(市販PCで1秒未満で解読)ですが、大小英数字・記号を混在させた12桁のパスフレーズなら約78.6ビットの極めて強固な防御力を誇ります。

初期値: H = log2(総パターン数) ビット

現場のベストプラクティス・実践Tips

逐次的な掛け算と約分を活用して桁あふれ(オーバーフロー)を防ぐ

組合せ C(n, r) を計算する際、n! のような巨大な階乗を直接計算すると、JavaScriptの通常の数値型では n が 170 を超えた時点で無限大(Infinity)となり計算不能になります。そこで、数学的対称性 C(n, r) = C(n, n - r) を利用して r を小さく保ち、1 から r までの各項について C(n, r) = Π((n - r + i) / i) と掛け算と割り算を交互に逐次実行します。各ステップの除算は常に綺麗な整数となるため、オーバーフローを防ぎながら高速かつ極めて正確に算出できます。

「役職テスト」で見分ける順列と組合せの決定的な境界線

現実の事象が「順列」か「組合せ」かを迷ったときは、「役割や役職を割り当ててみる」テストが有効です。例えば「会長・副会長・会計」や「金・銀・銅メダル」のように、選ばれた2人の立場を入れ替えたときに意味や結果が変わるなら順序を考慮する【順列 P(n, r)】を用います。一方、3人の「共同プロジェクト委員」のようにメンバーを入れ替えても組織全体として何も変わらない場合は【組合せ C(n, r)】を用います。

「〇と仕切り(Stars & Bars)」の解法で重複組合せを直感的に攻略する

n 種類の商品から重複を許して r 個を選ぶ場合(例:4種類のフレーバーから合計8個のアイスを選ぶ)、8個の「〇(アイス)」と、フレーバーを区切る3本の「仕切り(|)」を一列に並べるモデルをイメージしてください。公式 C(n + r - 1, r) を適用することで、複雑に見える重複選択が「合計11箇所の配置場所から8個の〇の場所を選ぶ」という標準的な重複なし組合せ問題に帰着します:C(4 + 8 - 1, 8) = C(11, 8) = 165通りとなります。

相補的対称性 C(n, r) = C(n, n - r) を利用して計算量を劇的に削減する

100人の候補者から98人の合格者を選ぶ行為は、裏を返せば「不合格にする2人を選ぶ」ことと数学的に完全に同義です。したがって、常に C(n, r) = C(n, n - r) が成立します。例えば C(100, 98) をそのまま計算する代わりに、C(100, 2) = (100 × 99) / (2 × 1) = 4,950通り と置き換えることで、手計算はもちろんプログラムの演算負荷も劇的に圧縮できます。常に r を min(r, n - r) に変換して処理するのが鉄則です。

直線の並びと「円順列・数珠順列」の回転対称性の違いを見極める

n 人を円卓に着席させる場合、全員が時計回りに1席ずつ移動しても左右の隣人は変わらないため、回転して重なる n 通りの配置は同一とみなします。基準となる1人を固定して回転を止めることで、円順列の総数は n! ではなく (n - 1)! 通りとなります。さらに、キーホルダーやブレスレットのビーズのように「裏返すと同じになる」数珠順列(ネックレス順列)の場合は、鏡像の重複を除くためさらに2で割り、(n - 1)! / 2 通りとなります。

よくある落とし穴とトラブルシューティング

⚠️n が 170 を超えると計算結果が Infinity や NaN と表示される

JavaScriptの標準的な倍精度浮動小数点数(64ビット)は、171!(約 1.24 × 10^309)に達した時点で許容最大値を超えオーバーフローします。当ツールは JavaScript の BigInt(任意精度整数演算)エンジンを完全実装しているため、n が最大 10,000 に達する超巨大な階乗・順列・組合せであっても、指数の桁落ちや丸め誤差なしにすべての有効桁を完全に出力します。

⚠️選ぶ個数 r が母集団 n より大きく、結果が 0 またはエラーになる

重複を許さない非復元抽出(各要素を1回しか使えない条件)では、母集団に存在する数以上の要素を取り出すことは物理的に不可能なため、r > n のときは数学的に P(n, r) = 0 および C(n, r) = 0 と定義されます。サイコロを10回振る場合や4桁の暗証番号のように、同じ数字を何度でも再利用できる場面では、「重複あり(復元抽出)」設定を有効に切り替えて n^r や C(n + r - 1, r) を計算してください。

⚠️計算した宝くじの当選確率が、公式発表の1等当選確率と一致しない

日本の「ロト6」は43個の数字から6個を選ぶため C(43, 6) = 6,096,454 分の 1 と単一の組合せで求まります。一方、「ロト7」は37個から7個(C(37, 7) = 10,295,472分の1)であり、米国のパワーボールなどの複合型くじは「白球5個(69個中)」と「赤球1個(26個中)」という2つの独立した抽選機を用います。複合抽選の場合は各独立試行の組合せを掛け合わせる必要があり、C(69, 5) × C(26, 1) = 11,238,513 × 26 = 292,201,338 分の 1 となります。

⚠️組み合わせ一覧リストを全件生成しようとすると動作が重くなる、または件数が制限される

組合せのパターン数は階乗的に爆発します。わずか5要素の並び替えでも120件、10要素で約363万件、15要素では1.3兆件を超え、全件をブラウザ上に描画するとメモリ枯渇により画面がクラッシュします。そのため、本ツールのリスト生成機能は快適な操作性を維持すべく、画面プレビュー表示を最大5,000件に安全に制限しています。数学的な総数は全桁正確に算出し、必要に応じてCSVやテキストでの出力も可能です。

⚠️アナグラム(文字の並べ替え)の単語数が通常の順列公式 nPr と一致しない

「TOKYO」(Oが2個)や「BANANA」(Aが3個、Nが2個)のように同じ文字が重複して含まれる単語では、通常の nPr を適用すると同一文字同士の入れ替えも別物として数えてしまいます。見た目として区別できる真のアナグラム総数を求めるには、多項順列公式 n! / (n1! × n2! × ... × nk!) を使用し、重複する各文字の階乗で全体を割ることで無駄な重複パターンを除去してください。

よくある質問 (FAQ)

「順列(Permutation)」と「組合せ(Combination)」の根本的な違いは何ですか?▼

決定的な違いは「並び順を区別するかどうか」です。順列(nPr)は選んだ要素の並ぶ順序を考慮するため、金・銀・銅メダルの配分(1位-2位-3位)と(3位-2位-1位)は全く異なる結果として別々にカウントされます。これに対して組合せ(nCr)はメンバーの構成のみに注目し順序は無視するため、「田中・佐藤・鈴木」の3人を選んだグループは、選んだ順番が「鈴木・田中・佐藤」であっても同一の1通りとして扱われます。

順列と組合せの計算はどのような手順で行われますか?(計算ステップの解説)▼

重複なし順列は公式 P(n, r) = n! / (n - r)! を用い、n から始めて1ずつ小さくした数字を r 個掛け合わせます。例えば P(5, 3) ならば 5 × 4 × 3 = 60 通りです。重複なし組合せは公式 C(n, r) = n! / [r! × (n - r)!] を用い、順列の結果をグループ内の並び替えパターン数 r! で割って重複を相殺します。例えば C(5, 3) ならば (5 × 4 × 3) / (3 × 2 × 1) = 60 / 6 = 10 通りとなります。

「重複組合せ(nHr)」の計算公式と仕組みはどうなっていますか?▼

重複組合せの公式は nHr = C(n + r - 1, r) = (n + r - 1)! / [r! × (n - 1)!] で表され、高校数学では「〇と仕切りの問題」として知られています。これは n 種類のカテゴリーから重複を許して r 個を選ぶ場合のパターン数を算出するもので、例えば3種類の和菓子から合計5個を自由に選んで箱詰めする場合、C(3 + 5 - 1, 5) = C(7, 5) = C(7, 2) = 21 通りの詰め合わせパターンが存在します。

なぜ 0 の階乗(0!)は 0 ではなく 1 になるのですか?▼

組合せ数学において、「0個の要素を並べる方法」は「何も置かない(空集合)」という1通りの状態が存在するためです。また代数的な整合性からも、階乗の漸化式 (n - 1)! = n! / n に n = 1 を代入すると 0! = 1! / 1 = 1 と導かれます。さらに 0! = 1 と定義することで、全要素を一列に並べる順列 P(n, n) = n! / (n - n)! = n! / 0! = n! という基本公式がゼロ除算で破綻することなく綺麗に成立します。

宝くじの1等当選確率は組合せの公式を使ってどのように計算しますか?▼

宝くじの当選確率は、抽選器内の総数字数 n と当選番号の個数 r を用いた重複なし組合せ C(n, r) で計算します。例えば日本の「ロト6」では、1〜43の数字から異なる6個を選ぶため、全組合せ数は C(43, 6) = 43! / [6! × 37!] = 6,096,454 通りとなります。したがって1口購入したときの1等当選確率は正確に 6,096,454 分の 1(約0.0000164%)です。また「ロト7」の場合は C(37, 7) = 10,295,472 分の 1 となります。

順列・組合せの理論はパスワードのセキュリティ強度や解読時間とどう関係していますか?▼

パスワードの強度計算には重複順列(文字種プール数 N、パスワード長 L としたときの N^L 通り)が用いられます。英小文字のみ(26種)の8桁パスワードの総パターン数は 26^8 ≒ 約2,088億通りで、最新のGPUを用いればわずか数秒で総当たり解読(クラッキング)されます。一方、英大文字・小文字・数字・特殊記号を混在させた94文字種で8桁を設定すると 94^8 ≒ 6.1 × 10^15 通りへと爆発的に増加し、同じ攻撃性能下でも解読に必要な期間は数カ月から数年規模へと跳ね上がります。

関連開発者ツール

全ツール一覧 →
二次方程式計算(解の公式)math

二次方程式を解の公式で瞬時に計算。実数解・重解・虚数解(複素数解)の判別式、頂点座標、平方根の根号簡約・約分の導出過程まで完全表示します。

ツールを開く→
純資産計算シミュレーターfinance

流動資産・投資信託・不動産・各種負債を一括集計し、真の純資産額を瞬時に算出。負債比率の健全性診断から複利資産形成の将来推移まで高精度に予測します。

ツールを開く→
モールス信号音声解読器ユーティリティ

マイク音声やオーディオファイルからモールス信号をリアルタイムに自動解読。搬送波周波数の自動検出、適応型ノイズ低減、WPM速度計測、音響スペクトログラム表示を搭載しています。

ツールを開く→
行列式計算機(途中式表示)math

2×2から8×8までの行列式を瞬時に計算。LU分解や余因子展開のステップ別途中式、固有値、トレース、正則性・逆行列の有無まで詳細に解説します。

ツールを開く→
粗利率・値入率・原価計算機finance

粗利率・営業利益率・値入率(マークアップ)を瞬時に逆算・シミュレーション。決済手数料や送料の控除、損益分岐点、価格感度マトリクスまで完全対応。

ツールを開く→
断食タイマー(16時間断食)ユーティリティ

16:8・18:6・一日一食(OMAD)の食事可能時間を自動計算。血糖値・ケトン体・オートファジーの体内代謝ステージをリアルタイムで追跡し、夕食会に合わせた逆算設定やiCalカレンダー連携も完全対応。

ツールを開く→