特定の順列を見つける方法                戻る

 順列の問題で、ある順列が何番目にあるかを考えることは意味ある問題である。

例1 A、B、C の3個の異なったものを並べる順列の数は、3!=6 (通り)ある。
  実際に、それらを求めれば、

        ABC、ACB、BAC、BCA、CAB、CBA

 である。ここで、辞書式配列とは、 各単語をアルファベットの順番に並べたものをいい、
 上記の6個の単語を、辞書式に並べて番号をつければ、下表のようになる。

ABC ACB BAC BCA CAB CBA

 従って、上の表から、BAC は、3番目の単語であり、また、4番目の単語は、BCA である。

 使われる文字の個数が少ないうちは、上記のように、全ての順列を辞書式に書き出して考
えればよいが、文字の個数がある程度大きい場合は、計算によって求められる。

例2 A、B、C、D、E の5個の異なったものを並べる順列を考え、それらを辞書式に並べる。
  このとき、CBEDA は何番目の単語だろうか。また、88番目の単語は何であろうか。

(解) A**** のタイプの単語は、4!=24 (通り)
    B**** のタイプの単語は、4!=24 (通り)
    CA*** のタイプの単語は、3!=6 (通り)
    CBA** のタイプの単語は、2!=2 (通り)
    CBD** のタイプの単語は、2!=2 (通り)
    CBE** のタイプの単語は、CBEAD、 CBEDA の2通り。
   従って、CBEDA は、24+24+6+2+2+2=60 (番目)

   上と同様にして、

    A**** のタイプの単語は、4!=24 (通り)
    B**** のタイプの単語は、4!=24 (通り)
    C**** のタイプの単語は、4!=24 (通り)
    DA*** のタイプの単語は、3!=6 (通り)
    DB*** のタイプの単語は、3!=6 (通り)
    DCA** のタイプの単語は、2!=2 (通り)
    DCB** のタイプの単語は、2!=2 (通り)
   このとき、24+24+24+6+6+2+2=88 なので、88番目の単語は、
   DCB** のタイプの単語の最後のもの、すなわち、DCBEA である。

 このような求め方は、教科書・参考書・問題集に通常あるもので、私自身も、この解法以外
に知らなかった。

 ところが、最近、このような問題に対して、非常に面白い解法が存在することを知った。

ABC ACB BAC BCA CAB CBA

 文字の個数が3個の場合について、説明しよう。

 まず、1番目、2番目、・・・、6番目という数を、0!を含む、2(=3−1)以下の数の階乗の
倍数に分解する。ただし、0!(=1)の係数は、常に 1 になるようにする。

   1=・2!+・1!+・0!
   2=・2!+・1!+・0!
   3=・2!+・1!+・0!
   4=・2!+・1!+・0!
   5=・2!+・1!+・0!
   6=・2!+・1!+・0!

次に、各係数に1をプラス(0!の係数はそのまま)して、単語を確定するための序数を作る。

たとえば、5=・2!+・1!+・0!から、5番目の単語を求める序数

       (=+1)、(=+1)、

が得られる。次のようにして、5番目の単語が求められる。

使用可能文字 序数 使用する文字
A、B、C
A、B



(← 3番目の文字 C を使用)
(← 上で、C が使われたので、使える文字は、A、B)



 したがって、求める単語は、 CAB となる。

この解法を用いれば、5個の文字の場合についても、次のように解くことができる。
まず、
    88=3・4!+2・3!+1・2!+1・1!+1・0!
なので、
 88番目の単語を求める序数は、4、3、2、2、1 である。

使用可能文字 序数 使用する文字
A、B、C、D、E
A、B、C、E
A、B、E
A、E



  左の表から、求める単語は、

      DCBEA

  で、これは、先の結果と一致する。


上記の解法は、例2における計算の仕組みを整理したもので、美しい解法として、幾ばくかの
魅力を感じるものである。

 読者のために、練習問題を残しておこう。

 A、B、C、D、E、F、G、H の8個の異なったものを並べる順列を考え、それらを辞書式に並
べる。このとき、12345番目の単語は何であろうか。

                                            (答)CEAHDFBG

(参考文献:J.A.H.ハンター、J.S.マダチー 著 田中 勇 訳
                                    数学レクリエーション (白揚社))