🌐 JA

高度な順列・組み合わせ計算機

基本的な順列と組み合わせから、重複順列、重複組み合わせ、完全順列まで、さまざまな場合の数を計算します。確率と統計の問題を解くための必須ツールです。

計算結果
順列 (nPr) - 順序あり
組み合わせ (nCr) - 順序なし
重複順列 (n^r)
重複組み合わせ H(n,r)
完全順列 !n
n! (階乗)
順列の確率 組み合わせの確率

公式

nPr = n! / (n-r)!
nCr = n! / (r! × (n-r)!)
n^r (重複あり)
H(n,r) = C(n+r-1, r)
!n = n! × Σ((-1)^k / k!)

視覚的な例

5個の中から3個を選ぶ場合

視覚的な例 5個の中から3個を選ぶ場合 1 2 3 4 5 全体の個数 (n): 5, 選ぶ個数 (r): 3
ガイド

詳しく見る

01

順列と組み合わせ、何が違う?

順列(Permutation)は順序を考慮して選ぶ場合の数であり、組み合わせ(Combination)は順序を考慮せずに選ぶ場合の数です。例えばABCの3文字から2つを選ぶとき、順列ではABとBAを別のものとして数えるため6通り(AB, BA, AC, CA, BC, CB)になりますが、組み合わせではABとBAを同じものとして数えるため3通り(AB, AC, BC)になります。パスワードやレースの順位のように順序が重要な状況では順列を、チーム編成や宝くじの番号のように順序が重要でない状況では組み合わせを使います。

02

重複順列と重複組み合わせの理解

重複順列は、n個の中からr個を選ぶ際に重複を許して順序を考慮する場合で、n^rで計算されます。例えばサイコロを3回振る場合の数は6^3 = 216通りです。重複組み合わせは、重複を許すが順序は考慮しない場合で、H(n,r) = C(n+r-1, r)で計算されます。5種類の味の中からアイスクリームを3つ選ぶ場合(同じ味の重複が可能)が代表的な例です。これらの概念は、実生活のさまざまな選択の場面を数学的にモデル化するのに役立ちます。

03

完全順列(攪乱順列、Derangement)の概念

完全順列とは、n個の要素を並べるときに、どれも元の位置にない場合の数を意味します。記号では !n と表記し、!n = n! × (1/0! - 1/1! + 1/2! - ... + (-1)^n/n!) で計算されます。例えば3人が帽子を脱いで置き、無作為に一つずつ取っていくとき、誰も自分の帽子を取らない確率を求めるのに使われます。!3 = 2 であり、これはABCがBCAまたはCABに並ぶ2通りの場合です。この概念は確率論と組み合わせ論で重要な応用を持ち、シークレットサンタのゲームやカードシャッフルの問題などに活用されます。

04

確率計算における順列と組み合わせの活用

確率の問題を解くとき、全体の場合の数と特定の事象の場合の数を求めることが鍵となります。例えば52枚のカードから5枚を引くとき、特定の手札を受け取る確率は組み合わせを使って計算します(全体: C(52,5))。ポーカーでフラッシュが出る確率、ロトの当選確率、暗号解読の可能性など、さまざまな実生活の問題に応用されます。順列と組み合わせを正しく区別することが正確な確率計算の第一歩であり、この計算機を使えば複雑な確率の問題も簡単に解決できます。

05

階乗の概念と素早い計算法

階乗(n!)は1からnまでのすべての自然数を掛け合わせた値で、順列と組み合わせの基礎となります。5! = 5×4×3×2×1 = 120 であり、0! は1と定義されます。大きな数の階乗は非常に速く増加するため(10! = 3,628,800、20! ≈ 2.4×10^18)、計算時にはオーバーフローに注意が必要です。スターリングの近似(Stirling approximation)を使えば、大きなnに対して n! ≈ √(2πn) × (n/e)^n と近似できます。階乗はコンピュータサイエンスのアルゴリズム計算量の分析や、統計学の分布関数の計算などにも広く使われています。

06

実生活への応用 - さまざまな選択と配列の問題

順列と組み合わせは私たちの日常のいたるところに潜んでいます。会議の出席者5名の中から3名を選ぶ場合(C(5,3)=10)、4桁のパスワードを作る場合(10^4=10,000)、10人が3脚の椅子に座る方法(P(10,3)=720)、5種類の味の中からアイスクリームを2スクープ選ぶ場合(H(5,2)=C(6,2)=15)など、あらゆる選択と配列の場面で活用されます。さらにプログラミングにおけるアルゴリズム設計、データ構造の分析、場合の数の計算、確率シミュレーションなどにも欠かせません。この計算機を使えば、複雑な実生活の問題を数学的に分析し、最適な意思決定を下すことができます。