• ベストアンサー

組み合わせの質問です

こんにちは、組み合わせ論は趣味です。 さて、次のような問題の一般解は、どのように求めるのか、あるいは、どのような呼び方(例、数珠順列)をするのか、教えていただけませんか。 例題:『A色 2個、B色 3個、C色 5個のあわせて10個の玉がある。ここから、4個を取り出す場合、何通りあるか。1個も取り出されない色があっても良い。』 上記はあくまで例であり、『色の種類数がk種類、それぞれr1個、r2個、・・・、rk個の玉から、m個を取り出す場合』が知りたいことです。 完全回答でなくても、ヒントになるような考え方が分かるとうれしいです。 どうぞよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.5

式の意味は理解されたようですね。 これを無理やり一般形にするとしたら、 r1,r2,・・・,rkのうち、mより少ない個数がs種類あり、それをr1,r2,・・・,rsとすれば、 Σ[n=0~s](-1)^nΣ[p∈P(n)]kH(m-R(p)-n) となるのかな。 ただし、P(n)はs種類の色からn種類選ぶ組み合わせの集合、 R(p)は選んだ種類の個数の合計とします。 例えば、s=3のとき、 P(0)={} P(1)={(1),(2),(3)} P(2)={(1,2),(1,3),(2,3)} P(3)={(1,2,3)} R()=0 R(1)=r1 R(2)=r2 R(3)=r3 R(1,2)=r1+r2 ・・・・ 計算量は、2^s個の重複組み合わせの加減算になりますね。

kurosandesu
質問者

お礼

nag0720さん、ありがとうございました。 定式化まで、無事つれてきていただきました。 ここまでくれば、多倍長計算にて、実際の計算ができそうです。 ネットってすばらしいですね。

その他の回答 (4)

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.4

ちょっと考察してみました。 r1≦r2≦・・・≦rk とします。 m≦r1≦r2≦・・・≦rk の場合は、組合せの数は重複組合せで、kHm r1<m≦r2≦r3≦・・・≦rk の場合は、 r1=mと仮定すれば、組み合わせの数は、kHm そこから超過した分を引けばいいから、 kHm - kH(m-r1-1) r1≦r2<m≦r3≦・・・≦rk の場合は、 r1=r2=mと仮定すれば、組み合わせの数は、kHm そこから超過した分を引いて、 kHm - { kH(m-r1-1) + kH(m-r2-1) - kH(m-r1-r2-2) } (この式はちょっと怪しいけどたぶんこんな感じになるでしょう) r1≦r2≦r3<m≦r4≦・・・≦rk の場合も同じようにして計算すればいいんですが、とりあえずここまで。 ちなみに、m個取ることとm個残すことは同じだから、 mを(r1+r2+・・・+rk)-mに置き換えることができます。 A色2個、B色3個、C色5個から4個取りだす場合をこの式に適用すると、 r1≦r2≦<m≦r3 だから、 3H4 - { 3H(4-2-1) + 3H(4-3-1) - 3H(4-2-3-2) } = 3H4 - { 3H1 + 3H0 } = 6C4 - { 3C1 + 2C0 } = 15 - { 3 + 1 } = 11

kurosandesu
質問者

補足

すばらしい。定式化が見えてきた気がします。 ご返答を自分に分かるように書いてみたいと思います。 (1)m≦r1≦・・・の場合 ・これは、m個取り出すときに制限がないことを表しますね。 ・よって『k色の玉が無数にあり、そこからm個取り出す場合』という重複組み合わせの一般例に置き換わります。 ・この回答は、『m個の玉とk-1個の仕切りの合計m+k-1個の並べ方数』となり、 (m+k-1)!/m!(k-1)! == (m+k-1)Cm == kHm ですね。 (2)r1<m≦r2・・・・の場合 ・{1色目がr1個以内の場合数}={1色目の玉数に制限がない場合数}-{1色目がr1個超過の場合数}、ということですね。 ・前項は、無制限なので先の(1)と同じ場合数。 ・後項は、『m個のうち、先に1色目にr1+1個を割り当てる。残りのm-(r1+1)個をk色から取り出す場合数』となりますね。 ・よって、kH(m-r1-1)に等しくなる。 (3)r1≦r2<m≦r3≦・・・の場合 ・集合演算の考え方ですね。図で書くとわかりやすいのですがね。 ・{1色目がr1個以内、かつ2色目がr2個以内の場合数}  ={玉数に制限がない場合数}   -{1色目がr1個超過の場合数}-{2色目がr2個超過の場合数}+{1色目がr1個超過し、かつ2色目もr2個超過した場合数} ・この最後の項は、『2項目と3項目で2回引かれているので、加算している』という意味ですね。 ・2項目、3項目は、(2)と同じ式。 ・最後の項は、先ほどと同じように考えるとととして、『m個のうち、先に1色目にr1+1個を、2色目にr2+1個を割り当てる。残りのm-(r1+1)-(r2+1)個をk色から取り出す場合数』となりますね。 ・よって、最終項=kH{m-(r1+1)-(r2+1)}ですね。 後は、集合の重なり組み合わせの爆発はありますが、これの繰り返しということですね。 これで、答えが見えた気がします。(質問者)

  • B-juggler
  • ベストアンサー率30% (488/1596)
回答No.3

No.1です。補足ありがとうです^^; 「定式化が可能かどうか」? おそらく不可能でしょうね。 理由は 場合わけが必要になりますから。 例えばこうしますね。 A:2個 B:3個 C:5個 で4個取り出す。 → Aのキャパ:2個 同B:3 同C:5 として 4個を振り分ける。 Aに二つ入る場合;残りB,C各1個 or Bに2個 or Cに2個  つまりこの場合は三通りあります。 Aのキャパ を替えて、3つにすると? Aに三つ入る場合;残り一つ B一つ or C一つ の二通り。 Aのキャパは r1 のことですから、変わってくるわけですね。 ここで場合わけが必要で、ほかのやり方では不可能かと思いますよ。 (=^. .^=) m(_ _)m (=^. .^=) 例えばだけど、 r1,r2,・・・・・,rk>m なら 定式化どころか、 引く必要がないので、簡単ですが・・・^^; (=^. .^=) m(_ _)m (=^. .^=)

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.2

色の種類数がk種類、それぞれr1個、r2個、・・・、rk個の玉から、m個を取り出す場合 これは単純な式で求めることはできないでしょう。 k=2で、r1≦r2とした場合でさえ、  0≦m≦r1のとき、m+1通り  r1≦m≦r2のとき、r1+1通り  r2≦m≦r1+r2のとき、r1+r2-m+1通り と、r1,r2,r1+r2とmとの大小関係によって答えが違ってきます。 k=3になると、r1,r2,r3,r1+r2+r3とmとの大小関係だけでなく、r1+r2とr3の大小関係も影響してきて、かなり複雑になります。 A色2個、B色3個、C色5個から4個取りだす場合は、 Aが0個のとき、4通り Aが1個のとき、4通り Aが2個のとき、3通り 計11通りと、種類を1つ減らして数える。 k種類の場合は、同じようにして種類を1つずつ減らしながら数えていくしかないでしょうね。

kurosandesu
質問者

補足

ありがとうございます。やはり難問ですか。。(-_-;) ご回答拝見し、こんな風にも置き換えられるかと思いました。 『x1+x2+...+xk=mを満たす、k個の自然数x1,x2,...,xkの解はいくつあるか。ここでmは整数(0<m)とし、r個の自然数r1,...,rkについて、0<=x1<=r1、...、0<=xk<=rkとする。(必要なら、0<r1<=r2<=...<=rkとの制約つけてよい) k=mなら簡単なんですけどねぇ。(質問者)

  • B-juggler
  • ベストアンサー率30% (488/1596)
回答No.1

う~ん、えっと。こんにちは。 これはこう読み替えてもいいですよね? 「A、B、Cの三つの箱がある。Aには2個、Bには3個、Cには5個ボールが入る。 このとき、4個のボールを箱に入れるとき、詰め方は何通りになるか? ただし空箱があっても良いものとする」 これだと、結構楽に行けますね・・・。面倒か・・・。 Aに二つ入ると、もう入らないから、BとCに振り分けることになりますし、 Bに三つ入ると、AとCにどっちか入るわけですね。 入らない分をどう解釈する勝手だけで、3^4から引いていく形を取ると思いますよ。  #重複が厄介ですけれど。 (ボールの行き先の箱3通り)^(ボールの個数)=3^4 ですね。 (=^. .^=) m(_ _)m (=^. .^=)

kurosandesu
質問者

補足

その、重複の数こそが、問題点です。 そこを、定式化できるでしょうか?(質問者より)

関連するQ&A