コンビネーションとパーミュテーションの覚え方

数学的に厳密ではないが、覚えやすい覚え方

コンビネーション

例えば、あなたがお笑い芸人養成所に入ったとしましょう。

同期の3人(A, B, C)の中から2人でコンビを組む場合の組み合わせはどうなるでしょうか?(あぶれた一人はピン芸人になるとかいうことは、この際考えません。)

以下のように3通りになります。

ボケ担当ツッコミ担当
コンビ1AB
コンビ2AC
コンビ3BC
コンビネーションの表

このとき、ボケとツッコミを逆にした以下の組み合わせが抜けている。6通りのコンビができるのでは?と思った人もいるかも知れません。

ボケ担当ツッコミ担当
コンビ4BA
コンビ5CA
コンビ6CB
余分な組み合わせ

しかし、忘れてはならないのは漫才コンビにおいてボケとツッコミの役割は交代できないということです。

仮にボケの能力の大小が以下のようであった場合には上の表の3通りしかないのです。

A > B > C

では、もしも、3人とも同じくらいのボケの能力があったとしたらどうでしょうか?

そうです、3人とも同じくらいボケられる(パーになれる)ということで、パーミュテーションの出番です。

パーミュテーション

笑い飯のようにダブルボケが可能であれば、以下のような6通りの漫才コンビを誕生させることができるでしょう。

ボケ担当ツッコミ担当
コンビ1AB
コンビ2BA
コンビ3BC
コンビ4CB
コンビ5CA
コンビ6AC
パーミュテーションの表

これがパーミュテーション【permutaiton】("per"= 「パーになれる」、"mutaion"= 「突然変異」)ということなのです。(ウソです)

数学的に正しい説明

コンビネーション(組み合わせ)

コンビネーション【Combination】は、順序を気にせずに、いくつかのものを選ぶ方法です。例えば、クラスの友達5人から2人を選んでペアを作る場合、選ぶ順番は関係ありません。

例: 友達A, B, C, D, Eがいるとします。この中から2人を選ぶ方法を考えます。

  • AとBを選んだ場合
  • BとAを選んだ場合

この2つの組み合わせは、順番が違っても同じペアと考えます。

計算方法: コンビネーションは、次のような数式で計算します。

ここで、nは全体の人数、rは選ぶ人数、!は「階乗」といって、その数から1までの全ての数を掛け合わせたものです。

したがって、5人の中から2人を選ぶ場合は、

10通りの組み合わせがあります。

先のお笑い芸人のボケとツッコミのコンビの例で説明すると

3つの中から2つを選ぶコンビネーションの数は3です。

ちなみにrは「repetition(繰り返し)」と覚えましょう。

「Combination(コンビネーション)」の語源はラテン語に由来しています。

ラテン語の「combinare(コンビナーレ)」から派生しており、「com-(共に)」と「binare(結びつける)」という意味の2つの語根から成り立っています。

パーミテーション(順列)

パーミテーション【Permutation】は、順序を気にして、いくつかのものを並べる方法です。例えば、クラスの友達5人の中から2人を選んで、その順番も決める場合を考えます。

例:友達A, B, C, D, Eがいるとします。この中から2人を選んで順番を決める方法を考えます。

Aを1番目、Bを2番目に選ぶ
Bを1番目、Aを2番目に選ぶ
この2つは、順番が違うので別の並びと考えます。

計算方法:
パーミテーションは、次のような数式で計算します。

ここも、nは全体の人数、rは選ぶ人数、!は「階乗」といって、その数から1までの全ての数を掛け合わせたものです。

上記の公式から、5人の中から2人を選ぶ場合は、

20通りの順番があります。

先のお笑い芸人のダブルボケのコンビの例で説明すると

3つの中から2つを選ぶパーミュテーションの数は 6 です。

「Permutation」 という言葉の語源は、ラテン語の 「permutare」 から来ています。

ラテン語の「permutare」から派生しており、「per-(完全に)」と「mutare(変える)」という意味の2つの語根から成り立っています。

数学における「順列」や「置換」は、この意味を引き継いでおり、要素の順序を完全に変えることを指しています。

まとめ

コンビネーションは「順番を気にしない選び方」、パーミテーションは「順番を気にする並び方」と覚えてください。

そして、コンビネーションはパーミュテーションより小さくなります。

数式でどちらがどちらか混乱してしまったら、アルファベット順で小さいコンビネーションの方が小さいと覚えましょう。

コンビネーションとパーミュテーションの覚え方

なお、質問がありましたので補足すると、「1つの中から1個を取る場合」のコンビネーションとパーミュテーションはどちらも「1」になります。なぜなら、「0! = 1」だからです。

IT技術とコンビネーション・パーミュテーション

コンビネーションやパーミテーションの概念は、IT技術においても重要な役割を果たします。アルゴリズムやデータ構造の設計、暗号理論、機械学習、データ分析など、さまざまな分野で応用されています。

  1. アルゴリズムの設計
    コンビネーションやパーミテーションは、アルゴリズムの設計においてよく使われます。全ての可能な組み合わせや順列を生成するアルゴリズムは、最適化問題や探索問題の解決に役立ちます。例えば、全ての経路を探索する問題(巡回セールスマン問題など)は、可能な全ての都市の訪問順序をパーミテーションとして計算し、その中で最も短い経路を見つけることができます。また、部分集合の探索(部分和問題など)は、与えられた集合から部分集合を選び、その部分集合の和が特定の値になるかを確認する際に、コンビネーションが使われます。
  2. 暗号理論
    暗号技術においても、コンビネーションやパーミテーションは基盤となる数学的概念です。鍵の生成や暗号化、復号化のアルゴリズムは、膨大な組み合わせや順列を考慮に入れた設計が求められます。例えば、鍵の探索は暗号化されたメッセージを解読するために、可能な鍵のすべての組み合わせ(コンビネーション)や順序(パーミテーション)を試す手法が使われます。
  3. データ分析と機械学習
    データ分析や機械学習でも、これらの概念は使われます。機械学習の特徴選択では、膨大なデータセットから重要な特徴量の組み合わせを選ぶ際にコンビネーションの考え方が役立ちます。例えば、特徴選択では、機械学習モデルのトレーニング時に入力データの全ての特徴量の中から、どの組み合わせが最も予測精度を高めるかを調べる際に、コンビネーションの概念が使われます。
  4. データベースのクエリ最適化
    データベースのクエリ最適化でも、これらの概念は役立ちます。複数の条件を持つクエリに対して、条件の組み合わせや適用順序を効率的に決定するために、コンビネーションやパーミテーションのアルゴリズムが使われることがあります。例えば、JOIN操作の最適化では、複数のテーブルを結合する際、テーブル間の結合順序を最適化するために、パーミテーションの考え方が利用されます。

以上、「コンビネーションとパーミュテーションの覚え方」でした。