ツアー旅行企画                          戻る

 当HPがいつもお世話になっているHN「GAI」さんからの出題です。(平成21年10月5日)

 3人(A、B、C)の客がツアー旅行を希望している。旅行会社は次の企画が可能である。

   1. A、B、Cで一緒に行く。
   2. A、Bで第1陣、Cだけで第2陣
   3. B、Cで第1陣、Aだけで第2陣
   4. C、Aで第1陣、Bだけで第2陣
   5. Aで第1陣、B、Cで第2陣
   6. Bで第1陣、C、Aで第2陣
   7. Cで第1陣、A、Bで第2陣
   8. Aで第1陣、Bで第2陣、Cで第3陣
   9. Aで第1陣、Cで第2陣、Bで第3陣
  10. Bで第1陣、Aで第2陣、Cで第3陣
  11. Bで第1陣、Cで第2陣、Aで第3陣
  12. Cで第1陣、Aで第2陣、Bで第3陣
  13. Cで第1陣、Bで第2陣、Aで第3陣

以上の13通りの可能性が生まれる。

 では、4人の客が現れたら何通りが考えられるだろうか?

一般に、n 人の客ならどうなるでしょう?


























(答) 順列組合せの手頃な問題ですね!また、自然数をいくつかの和に分解する問題とも
   関係がありそう...。

   3人の場合は、 3=2+1=1+2=1+1+1 に注意して、

  求める場合の数は、 3332113122312111=13(通り)

   4人の場合は、

    4=3+1=2+2=2+1+1=1+3=1+2+1=1+1+2=1+1+1+1

  に注意して、

    44431142224221114133
                  +41321141312241312111

   =1+4+6+12+4+12+12+24=75(通り)

   (追記) 平成21年11月24日付け

     上記の計算で、3は4通りの自然数の和(和の順番も考慮)に、4は8通りの自然数
    の和(和の順番も考慮)に分解されている。

     一般に次の公式が知られている。

    自然数 n をいくつかの自然数の和(和の順番も考慮)に分解する方法の数は、

         2n-1 通り


    である。この公式は、次の事実を用いる。

    自然数 n を m 個の自然数の和(和の順番も考慮)に分解する方法の数は、

          n-1m-1 通り (ただし、 m≦n )


    この証明は易しい。

     (証明) n=1+1+1+・・・・・・+1 と分解すると、n−1個の「+」がある。

         この中から、m−1個の「+」を取る組合せの数が求める場合の数である。

                                                  (証終)

     したがって、 n-10n-11n-12+・・・+n-1n-1=2n-1 が成り立つ。


 さて、上記の計算は、重複順列の考えを用いても出来る。

 n 人を番号のついた k 個の部屋に振り分ける方法の数は、 k 通りある。ただし、この
方法の数の中にはどこかの部屋が空室の場合も含まれることに注意する。

   3人を空室がないようにいくつかの部屋に振り分ける場合の計算

     3人を1個の部屋に振り分ける方法の数は、 13=1 通り

     3人を2個の部屋に振り分ける方法の数は、 23−2=6 通り

     3人を3個の部屋に振り分ける方法の数は、 33−3−3(23−2)=6 通り

     (2個の部屋が空室になる場合が 32 通り、1個の部屋のみが空室になる場合が
      31・(23−2)通り。これらを起こりうる全ての場合 33 通りから引けばよい。)

    以上から、空室がないように、3人をいくつかの部屋に振り分ける方法の数は、

         1+6+6=13(通り)

   4人を空室がないようにいくつかの部屋に振り分ける場合の計算

     4人を1個の部屋に振り分ける方法の数は、 14=1 通り

     4人を2個の部屋に振り分ける方法の数は、 24−2=14 通り

     4人を3個の部屋に振り分ける方法の数は、 34−3−3(24−2)=36 通り

     (2個の部屋が空室になる場合が 32 通り、1個の部屋のみが空室になる場合が
      31・(24−2)通り。これらを起こりうる全ての場合 34 通りから引けばよい。)

     4人を4個の部屋に振り分ける方法の数は、

         44−4−6(24−2)−4{34−3−3(24−2)}=24 通り

     (3個の部屋が空室になる場合が 43 通り、2個の部屋のみが空室になる場合が
      42・(24−2)通り。1個の部屋のみが空室になる場合が
       41・{34−3−3(24−2)}通り。これらを起こりうる全ての場合 44 通りから引け
      ばよい。)

    以上から、空室がないように、4人をいくつかの部屋に振り分ける方法の数は、

         1+14+36+24=75(通り)

  上記の計算を振り返ると、次のように機械的に計算できることが分かる。

   5人を空室がないようにいくつかの部屋に振り分ける場合の計算

     5人を1個の部屋に振り分ける方法の数は、 15=1 通り

     5人を2個の部屋に振り分ける方法の数は、 25−2=30 通り

     5人を3個の部屋に振り分ける方法の数は、 35323130150 通り

     5人を4個の部屋に振り分ける方法の数は、

         4543423041150240 通り

     5人を5個の部屋に振り分ける方法の数は、

         555453305215051240=120 通り

    以上から、空室がないように、5人をいくつかの部屋に振り分ける方法の数は、

         1+30+150+240+120=541(通り)

(コメント) Excel さんにお願いすれば、瞬時に求める場合の数が得られますね!

      これまでの計算をまとめると、次のような数列が得られる。

         1 , 3 , 13 , 75 , 541 , ・・・・・


 GAI さんによれば、次のような算出方法があるらしい。(平成21年10月19日付け)

 1.まずパスカルの三角形から、右端の 1 は取り除く
 2.左端から右に偶数番目の数に、−をつける
 3.各段目の左端から右斜め下に順々に表示されている数字をすべて加える。
 4.この合計段の数の左から順に、 4、34、24、14 を掛け、すべてを加える。

すなわち
       

    よって、 256−243+64−2=75(通り)

(コメント) 組合せの計算は結構気を使いますが、これだと機械的にどんどん算出できそう
      ですね!ただ、GAI さんによれば、その算出の根拠が未だ不明とのこと。研究し
      てみる価値がありそう...。

 重複順列の考え方を用いた先の計算で、

   3人を空室がないようにいくつかの部屋に振り分ける場合の計算

      13+2321+3331・2331=33・1+23(1−31)+1−2131

   4人を空室がないようにいくつかの部屋に振り分ける場合の計算

      14+2421+3431・2431+444342(24−2)−41・(34−3)

     =44・1+34(1−41)+24(1−3142)+1−213243

と式変形してみると、GAI さんによる算出方法のカラクリが見えてくる。


 GAI さんの算出方法について、平成21年10月21日付けで、HN「at」さんより、ご教示い
ただいた。(一部文言等を修正・加筆させていただきました。)

 n 人の客のツアー旅行計画の総数を、a(n) とする。また、1≦k≦n に対して、n 人を異
なる k 個の部屋にどの部屋も空でないように分配する方法の総数を、b( n , k ) とする。

 このとき、明らかに、 a(n)=Σ[ k=1,n] b( n , k ) である。

 例  b( 2 , 1 )=1 、 b( 2 , 2 )=2  より、 a(2)=3

     b( 3 , 1 )=1 、 b( 3 , 2 )=6 、 b( 3 ,3 )=6  より、 a(3)=13


 この b( n , k ) について、次の漸化式が成り立つことは明らかだろう。

   b( n+1 , k )=k・b( n , k−1 )+k・b( n , k )

     ただし、 b( n , 1 )=1 、 b( n , n+1 )=0

 実際に、b( n+1 , k ) は、n+1 人を異なる k 個の部屋にどの部屋も空でないように

    分配する方法の総数であるが、ある特定な人、例えば、n+1 人目の人について、

       一人部屋の場合  または   複数部屋の場合

    の2つの場合に分けられる。

     前者の場合は、まず、n+1 人目の人がどの部屋に入るかで、k 通りあり、その 1

    通りに対して、残り n 人を k−1 個の部屋にどの部屋も空でないように分配する方

    法の数は、b( n , k−1 ) 通りなので、合わせて、 k・b( n , k−1 ) 通りとなる。

     後者の場合は、n+1 人目の人がどの部屋に入るかで、k 通りあり、その 1 通り

    に対して、残り n 人を k 個の部屋にどの部屋も空でないように分配する方法の数

    は、b( n , k ) 通りなので、合わせて、 k・b( n , k ) 通りとなる。

     よって、 b( n+1 , k )=k・b( n , k−1 )+k・b( n , k ) が成り立つ。


例  b( 2 , 1 )=1 で、 b( 2 , 2 )=2・b( 1 , 1 )+2・b( 1 , 2 )=2

    b( 3 , 1 )=1 で、 b( 3 , 2 )=2・b( 2 , 1 )+2・b( 2 , 2 )=6

    b( 3 ,3 )=3・b( 2 , 2 )+3・b( 2 , 3 )=6


 さて、包含と排除の原理から直ちに、(ただし、二項係数 =C( k ,j ) とする。)

   b( n , k )=k−C( k ,1 )(k−1)+C( k ,2 )(k−2)−・・・
                                  +(−1)k-1C( k ,k−1 )(1)

          =Σ[ j=0 ,k−1] C( k ,j )・(−1)・(k−j)

          =Σ[ m=1 ,k] C( k ,k−m )・(−1)k-m・m

          =Σ[ j=1 ,k] (−1)k−j・C( k ,k−j )・j

 が分かるので、

 a(n)=Σb( n , k )

    =Σ[ k=1,n]Σ[ j=1,k](−1)k−j・C( k ,k−j )・j

    =Σ[ j=1,n]Σ[ k=j,n](−1)k−j・C( k ,k−j )・j

    ={Σ[ k=1,n](−1)k−1・C( k ,k−1 )・1

     +{Σ[ k=2,n](−1)k−2・C( k ,k−2 )・2

     +・・・・・・・・・・・・・・・・・・・

     +{Σ[ k=n,n](−1)k−n・C( k ,k−n )・n

    ={C( 1 ,0 )−C( 2 ,1 )+C( 3 ,2 )−・・・+(−1)n−1C( n ,n−1 )}・1

     +{C( 2 ,0 )−C( 3 ,1 )+C( 4 ,2 )−・・・+(−1)n−2C( n ,n−2 )}・2

     +・・・・・・・・・・・・・・・・・・・

     +C( n ,0 )・n

となる。これは GAI さん が書かれた計算法そのものである。

 a(n)の導出方法は他にもあり、次のHPが参考になると思う。

      http://web2.incl.ne.jp/yaoki/jyun.htm
      http://web2.incl.ne.jp/yaoki/ajyun.htm


(コメント) at さん、ありがとうございます。奥が深い解答ですね!もう少し勉強させていた
      だいて、行間を補充したいと思います。



    以下、工事中