ガラパゴスへよおこそ。
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
二項重複、三項重複と進んできた流れを一般化して「n項重複」を考えよう。基本的な要素は「二項重複」「三項重複」で説明してあるから「具体的な数」を「変数」に書き換えるだけでよい。
まずはn項重複の基本的な構成について説明しよう。
第1ブロック、第2ブロック、……、第nブロックがあるとして、この中の1つの任意のブロックを指すとき、それを第δブロックと呼ぶことにする。そして第δブロックで埋め込むべきカードを総称してset(tarδ)と書く。
そしてそれらによって構成される素集合系が、その重複の度合い——「重複度」によって分類され、以下の表のようになる。
∑i1-j10Cj12*《N(tar1∧2), j12》* j12=0 ……* Min[N((ζ...η)(ρ=2,set(tar1))), i1-j10-j12-...-jpre(ζ...η)(ρ=2,set(tar1))] ∑i1-j10-j12-...-j(ζ...η)(ρ=2,set(tar1))Cj(ζ...η)(ρ=2,set(tar1))*《N((ζ...η)(ρ=2,set(tar1))), j(ζ...η)(ρ=2,set(tar1))》* j(ζ...η)(ρ=2,set(tar1))=0 ……* Min[N(tar1∧n), i1-j10-j12-...-j(ζ...η)(ρ=2,set(tar1))-...-j1(n-1)] ∑i1-j10-j12-j(ζ...η)(ρ=2,set(tar1))-...-j1(n-1)Cj1n*《N(tar1∧n), j1n》* j1n=0 |
∑i1-j10-j12-...-j(ζ...η)(ρ=2,set(tar1))Cj(ζ...η)(ρ=2,set(tar1))*《N((ζ...η)(ρ=2,set(tar1))), j(ζ...η)(ρ=2,set(tar1))》* j(ζ...η)(ρ=2,set(tar1))=0 |
∑(ζ...η)=2 |
∑ μCi1* i1=1 |
接続 |
∑i1Cj10*《N(tar1), j10》* j10=0 |
|
∑i1-j10-j12-...-j(ζ...η)(ρ=2,set(tar1))Cj(ζ...η)(ρ=2,set(tar1))*《N((ζ...η)(ρ=2,set(tar1))), j(ζ...η)(ρ=2,set(tar1))》* j(ζ...η)(ρ=2,set(tar1))=0 |
∑(ζ...η)=2 |
∑i1-j10-j12-...-j1n-...-jpre(ζ...η)(ρ=ρ,set(tar1))Cj(ζ...η)(ρ=ρ,set(tar1))*《N((ζ...η)(ρ=ρ,set(tar1))), j(ζ...η)(ρ=ρ,set(tar1))》* j(ζ...η)(ρ=ρ,set(tar1))=0 |
∑(ζ...η)=ρ |
∑i1-j10-j12-...-j1n-...-jpre(ζ...η)(ρ=n,set(tar1))Cj(ζ...η)(ρ=n,set(tar1))*《N((ζ...η)(ρ=n,set(tar1))), j(ζ...η)(ρ=n,set(tar1))》 j(ζ...η)(ρ=n,set(tar1))=0 |
∑(ζ...η)=n |
接続 |
|
∑i2Cj20*《N(tar2), j20》* j20=0 |
|
∑i2-j20-j21-...-j(ζ...η)(ρ=2,set(tar2))Cj(ζ...η)(ρ=2,set(tar2))*《N((ζ...η)(ρ=2,set(tar2))), j(ζ...η)(ρ=2,set(tar2))》* j(ζ...η)(ρ=2,set(tar2))=0 |
∑(ζ...η)=2 |
∑i2-j20-j21-...-j2n-...-jpre(ζ...η)(ρ=ρ,set(tar2))Cj(ζ...η)(ρ=ρ,set(tar2))*《N((ζ...η)(ρ=ρ,set(tar2))), j(ζ...η)(ρ=ρ,set(tar2))》* j(ζ...η)(ρ=ρ,set(tar2))=0 |
∑(ζ...η)=ρ |
∑i2-j20-j22-...-j2n-...-jpre(ζ...η)(ρ=n,set(tar2))Cj(ζ...η)(ρ=n,set(tar2))*《N((ζ...η)(ρ=n,set(tar2))), j(ζ...η)(ρ=n,set(tar2))》 j(ζ...η)(ρ=n,set(tar2))=0 |
∑(ζ...η)=n |
接続 |
|
∑iδCjδ0*《N(tarδ), jδ0》* jδ0=0 |
|
∑iδ-jδ0-jδ1-...-j(ζ...η)(ρ=2,set(tarδ))Cj(ζ...η)(ρ=2,set(tarδ))*《N((ζ...η)(ρ=2,set(tarδ))), j(ζ...η)(ρ=2,set(tarδ))》* j(ζ...η)(ρ=2,set(tarδ))=0 |
∑(ζ...η)=2 |
∑iδ-jδ0-jδ1-...-j(ζ...η)(ρ=ρ,set(tarδ))Cj(ζ...η)(ρ=ρ,set(tarδ))*《N((ζ...η)(ρ=ρ,set(tarδ))), j(ζ...η)(ρ=ρ,set(tarδ))》* j(ζ...η)(ρ=ρ,set(tarδ))=0 |
∑(ζ...η)=ρ |
∑iδ-jδ0-jδ1-...-j(ζ...η)(ρ=n,set(tarδ))Cj(ζ...η)(ρ=n,set(tarδ))*《N((ζ...η)(ρ=n,set(tarδ))), j(ζ...η)(ρ=n,set(tarδ))》* j(ζ...η)(ρ=n,set(tarδ))=0 |
∑(ζ...η)=n |
接続 |
|
∑inCjn0*《N(tarn), jn0》* jn0=0 |
|
∑in-jn0-jn1-...-j(ζ...η)(ρ=2,set(tarn))Cj(ζ...η)(ρ=2,set(tarn))*《N((ζ...η)(ρ=2,set(tarn))), j(ζ...η)(ρ=2,set(tarn))》* j(ζ...η)(ρ=2,set(tarn))=0 |
∑(ζ...η)=2 |
∑in-jn0-jn1-...-j(ζ...η)(ρ=ρ,set(tarn))Cj(ζ...η)(ρ=ρ,set(tarn))*《N((ζ...η)(ρ=ρ,set(tarn))), j(ζ...η)(ρ=ρ,set(tarn))》* j(ζ...η)(ρ=ρ,set(tarn))=0 |
∑(ζ...η)=ρ |
∑in-jn0-jn1-...-j(ζ...η)(ρ=n,set(tarn))Cj(ζ...η)(ρ=n,set(tarn))*《N((ζ...η)(ρ=n,set(tarn))), j(ζ...η)(ρ=n,set(tarn))》* j(ζ...η)(ρ=n,set(tarn))=0 |
∑(ζ...η)=n |
∑ μCi1* i1=1 |
接続 |
∑i1-j10-j12-...-j1n-...-jpre(ζ...η)(ρ=ρ,set(tar1))Cj(ζ...η)(ρ=ρ,set(tar1))*《N((ζ...η)(ρ=ρ,set(tar1))), j(ζ...η)(ρ=ρ,set(tar1))》*n-1Cρ-1 j(ζ...η)(ρ=ρ,set(tar1))=0 |
1≤∑(ζ...η)=ρ≤n |
接続 |
|
∑iδ-jδ0-jδ1-...-j(ζ...η)(ρ=ρ,set(tarδ))Cj(ζ...η)(ρ=ρ,set(tarδ))*《N((ζ...η)(ρ=ρ,set(tarδ))), j(ζ...η)(ρ=ρ,set(tarδ))》* j(ζ...η)(ρ=ρ,set(tarδ))=0 |
1≤∑(ζ...η)=ρ≤n |
接続 |
|
∑in-jn0-jn1-...-j(ζ...η)(ρ=ρ,set(tarn))Cj(ζ...η)(ρ=ρ,set(tarn))*《N((ζ...η)(ρ=ρ,set(tarn))), j(ζ...η)(ρ=ρ,set(tarn))》* j(ζ...η)(ρ=ρ,set(tarn))=0 |
1≤∑(ζ...η)=ρ≤n |
∑iδ-jδ0-jδ1-...-j(ζ...η)(ρ=ρ,set(tarδ))Cj(ζ...η)(ρ=ρ,set(tarδ))*《N((ζ...η)(ρ=ρ,set(tarδ))), j(ζ...η)(ρ=ρ,set(tarδ))》* j(ζ...η)(ρ=ρ,set(tarδ))=0 |
1≤ζ...η≤n 1≤∑(ζ...η)=ρ≤n |
1≤∑(ζ...η)=ρ≤n |
∑iδ-jδ0-jδ1-...-j(ζ...η)(ρ=ρ,set(tarδ))Cj(ζ...η)(ρ=ρ,set(tarδ))*《N((ζ...η)(ρ=ρ,set(tarδ))), j(ζ...η)(ρ=ρ,set(tarδ))》*K j(ζ...η)(ρ=ρ,set(tarδ))=0 |
1≤ζ...η≤n 1≤∑(ζ...η)=ρ≤n |
1≤∑(ζ...η)=ρ≤n |
「組み合わせ数学入門I」(C・L・リウ著、伊里正夫、伊里由美共訳、共立全書(共立出版))
「数え上げ組み合わせ論入門」(成嶋弘著、日評数学選書(日本評論社))
から使えそうな公式を抽出。
■スターリングの近似公式
n! ≒ √(2πn) * (n/e)^n |
π:円周率 e:ネピアの数/自然対数の底 |
nSk = 1 |
(k = 1,n) |
nSk = n-1Sk-1 + k * n-1Sk |
(2 ≤ k ≤n-1) |
nSk = ∑i=0k(-1)i * (k-i)n / { i! * (k-i)! } |
B(n+1) = ∑k=0nnCk* B(k) |
次はtar1,tar2,tar3をこの順番で埋めることを考える。項を増やすにあたって、いくつか規約を設けておきたい。
∑j10=0Min[N(tar1), i1]i1Cj10*《N(tar1), j10》* ∑j12=0Min[N(tar1∧2), i1-j10]i1-j10Cj12*《N(tar1∧2), j12》* ∑j13=0Min[N(tar1∧3), i1-j10-j12]i1-j10-j12Cj13*《N(tar1∧3), j13》* 《N(tar1∧2∧3), i1- j10-j12-j13》 |
第一ブロックの領域を確保する項 そこにtar1を埋める 残ったところにtar1∧2を埋める 残ったところにtar1∧3を埋める 残ったところに余すことなくtar1∧2∧3を埋める |
||||||||||||||
∑j20=0Min[N(tar2), i2]i2Cj20*《N(tar1), j20》* ∑j21=0Min[N(tar1∧2)-(j12), i2-j20]i2-j20Cj21*《N(tar1∧2)-(j12), j21》* ∑j23=0Min[N(tar2∧3), i2-j20-j21]i2-j20-j21Cj23*《N(tar2∧3), j23》* 《N(tar1∧2∧3)-(i1-j10-j12-j13), i2- j20-j21-j23》 |
第二ブロックの領域を確保する項 そこにtar2を埋める 残ったところにtar1∧2を埋める 残ったところにtar2∧3を埋める 残ったところに余すことなくtar1∧2∧3を埋める |
||||||||||||||
∑j30=0Min[N(tar3), i3]i3Cj30*《N(tar3), j30》* ∑j31=0Min[N(tar1∧3)-(j13), i3-j30]i3-j30Cj31*《N(tar1∧3)-(j13), j31》* ∑j32=0Min[N(tar2∧3)-(j23), i3-j30-j31]i3-j30-j31Cj32*《N(tar2∧3)-(j23), j32》* 《N(tar1∧2∧3)-(i1-j10-j12-j13)-(i2-j20-j21-j23), i3-j30-j31-j32》 |
第三ブロックの領域を確保する項 そこにtar3を埋める 残ったところにtar1∧3を埋める 残ったところにtar2∧3を埋める 残ったところに余すことなくtar1∧2∧3を埋める |
||||||||||||||
接続に含まれている各項は素集合を扱っているから、単位ブロックである。最低1枚は必ず埋め込む必要のあるブロックと、埋め込めなければ他のものでもいい 単位ブロックの違いがシグマの開始点の1か0かを左右する。上限は「埋め込む領域がなくなる(後続ブロックの事情も考慮)」か「埋め込むカードがなくなるか」の小さいほう。前のブロックによるデッキ内の枚数変化も考慮。 ここでどの種類のカードを何枚埋め込んだか(以後「埋め込み枚数」)は右の表の通りになる。 |
|
[π1] = j10 [π2] = j20 [π3] = j30 [π12] = j12+j21 [π23] = j23+j32 [π13] = j13+j31 [π123] = (i1-j10-j12-j13)+(i2-j20-j21-j23)+(i3-j30-j31-j32) |
したがって n ≥ 1はn ≠ 0と書いても意味は変わらない。 |
and (i2-j21) ≠ 0 |
||||
and (i2-j21) ≠ 0 |
||||
and (i2-j21) = 0 |
||||
and (i2-j21) = 0 |
||||
and (i3-j32) ≠ 0 |
||||
and (i3-j32) ≠ 0 |
||||
and (i3-j32) = 0 |
||||
and (i3-j32) = 0 |
||||
and (i3-j31) ≠ 0 |
||||
and (i3-j31) ≠ 0 |
||||
and (i3-j31) = 0 |
||||
and (i3-j31) = 0 |
||||
and ([π2]+[π12]+[π23]) ≠ 0 and ([π3]+[π13]+[π23]) ≠ 0 |
||||
and ([π2]+[π12]+[π23]) ≠ 0 and ([π3]+[π13]+[π23]) ≠ 0 |
||||
and ([π2]+[π12]+[π23]) = 0 and ([π3]+[π13]+[π23]) ≠ 0 |
||||
and ([π2]+[π12]+[π23]) ≠ 0 and ([π3]+[π13]+[π23]) = 0 |
||||
and ([π2]+[π12]+[π23]) = 0 and ([π3]+[π13]+[π23]) = 0 |
||||
and ([π2]+[π12]+[π23]) ≠ 0 and ([π3]+[π13]+[π23]) = 0 |
||||
and ([π2]+[π12]+[π23]) = 0 and ([π3]+[π13]+[π23]) ≠ 0 |
||||
and ([π2]+[π12]+[π23]) = 0 and ([π3]+[π13]+[π23]) = 0 |
||||
前節における単位ブロックの一般形は
∑i=1Min[μ-∑ip-q, N(tar)](μ-∑ip)Ci*N(tar)!/{N(tar)-i}!
または
∑i=1Min[μ-∑ip-q, N(all-tar)](μ-∑ip)Ci*N(all-tar)!/{N(all-tar)-i}!
であった。N(tar)!/{N(tar)-i}!はPC上ではごちゃごちゃして見えるので、本章からは《N(tar), i》と省略記号を導入する。
そこで改めて上の単位ブロックの一般形を書き直すと
∑i=1Min[μ-∑ip-q, N(tar)](μ-∑ip)Ci*《N(tar), i》
または
∑i=1Min[μ-∑ip-q, N(all-tar)](μ-∑ip)Ci*《N(all-tar), i》
となる。
パラメータ∑ip,qはブロックの組み合わせ方から決まる数であって、ブロックの積をとれば一意的に決まることがは自明である。一方μ(all)も i1,i2,i3,...のみによっ て記述できるから、ライブラリアウトの場合を除けばすぐ定義できることは明らか。問題はtarである。たとえば(ブロックA)・(ブロックB)となってい るとき、ブロックAにおけるtar1とブロックBにおけるtar2に重複部分が存在しないか完全に一致していればよいのだが、重複部分がある場合、 tar1をi枚埋めたときにデッキ内のtar2はi枚減っているかどうかが「分からない」。もしブロックAで「tar1ではあるがtar2ではない」部分を取ったならN(tar2)はそのままでいいが、「tar1でもありtar2でもある」部分を取ったならN(tar2)から1枚分を差し引かなければなら ない——という操作をi回繰り返す。ブロック積をとったとき、各ブロック間にこのような事情があると単純な積を定義することができない。
具体例を示そう。tar1とtar2をこの順番で選ぶことを考える。tar1\2,tar2\1,tar1∧2はそれぞれ空集合ではないとすると、
(tar1ブロック)・(tar2ブロック)
が最も素朴な形だが、
tar2ブロックが左右両方の紫を担当する場合 tar1ブロックが左の紫を、tar2ブロックが右の紫を担当する場合 tar2ブロックが左の紫を、tar1ブロックが右の紫を担当する場合 |
tar2ブロックがすべての紫を担当する場合 tar1ブロックが一番左の紫を、tar2ブロックが右2つの紫を担当する場合 tar1ブロックが真ん中の紫を、tar2ブロックが両端2つの紫を担当する場合 tar1ブロックが一番右の紫を、tar2ブロックが左2つの紫を担当する場合 tar2ブロックが一番左の紫を、tar1ブロックが右2つの紫を担当する場合 tar2ブロックが真ん中の紫を、tar1ブロックが両端2つの紫を担当する場合 tar2ブロックが一番右の紫を、tar1ブロックが左2つの紫を担当する場合 |
tar2ブロックがすべての紫を担当する場合■ tar1ブロックが1番目の紫を、tar2ブロックが残るπ-1個の紫を担当する場合■ tar1ブロックが2番目の紫を、tar2ブロックが残るπ-1個の紫を担当する場合 ・・・ tar1ブロックがπ番目の紫を、tar2ブロックが残るπ-1個の紫を担当する場合■ tar1ブロックが1番目と2番目の紫を、tar2ブロックが残るπ-2個の紫を担当する場合■ ・・・ tar1ブロックがπ-1番目とπ番目の紫を、tar2ブロックが残るπ-2個の紫を担当する場合■ (以後、π個の中からm個をtar1ブロックの担当、残るπ-m個がtar2ブロックの担当だと割り当てる) |
=2π |
tar2ブロックが2番目の紫を、tar1ブロックが残るπ-1個の紫を担当する場合 ・・・ tar2ブロックがπ番目の紫を、tar1ブロックが残るπ-1個の紫を担当する場合■ |
=2π-1 |
=2π-1 |
=2π-2 |
K = { 1/2π (π ≥ 1、j1 ≥ 1かつj2 ≥ 1のとき) 1/2π-1 (π ≥ 1、j1 = 0またはj2 = 0、j1 ≠ j2のとき) 1/2π-2 (π ≥ 1、j1 = 0かつj2 = 0のとき) 1 (π = 0のとき)} |
∑(summation)の記法について。∑の上下に始点と終点を書くのが普通だが、エディタの都合により∑k=1nk = 1/2*n*(n-1)のように上付き文字と下付き文字で表現する。
カードゲームにおける確率の解釈は、サイコロの目の確率の考え方——つまり全体が1で、各目の確率が同様に確からしいので、6等分して1/6である——と同じ解釈ができる。つまり、全体が1で、n枚引いたときの全パターン40! / (40-n)!がすべて同様に確からしいから40! / (40-n)!等分して1 /{40! / (40-n)!}=(40-n)! / 40!である、というふうに捉えることができ、このパターン1つあたりの確率とパターンの総数との積で求める確率が得られる。パターン1つあたりの確率は一定だから、パターン数え上げの問題とみることができる。「確率」で考えると分母分子の双方を吟味しなければならないが、「パターン数え上げ」の問題とみれば扱いやすい自然数の問題となる。
さて、後々パターン数え上げを行うのだが、それらは次のような図式で考えることになる。
■■■■■■■■■■
これはカードを10枚引いた状態の模式図である。ドローカードの存在を考えなければ、先攻11ターン目、後攻10ターン目に相当する。ドローカードを考えるなら引いた枚数分ターンを早めてやれば良い(こうして出来た仮想的なターンが、後で扱う「仮想ターン」である)。四角の1つ1つがカードの1枚1枚で、左5枚(オレンジ)が初手5枚、次の1枚(赤)が先攻2ターン目/後攻1ターン目に引いたカード、その次の1枚(青)が先攻3ターン目/後攻2ターン目に引いたカード、……という順になっている。これらの四角を「領域」と呼び、ある固定された領域についてパターン数を数えるとき、「固定された領域」を「全領域」、なんらかの形で領域の状態が既に決まっているときの「残りの領域」を「残領域」と呼ぶ。一気に説明してしまったが、言葉の意味はその使い方によって規定されるものだ。「説明」よりも「使い方」から意味を汲み取ってほしい。
さて、パターン数を数え上げるということは「全領域n枚の領域の一つ一つを決定すること」に他ならない。たとえば互いに区別する(†1)カードtarがデッキの中に初期状態でN(tar)枚あり、それによってn枚の領域のうちi枚を決定する(†2)とき、そのパターン数は
(n個の残領域をちょうど1枚埋めるときのパターン数)+(n個の残領域をちょうど2枚埋めるときのパターン数)+・・・+(n個の残領域をちょうどMin[n-1,N(tar1)]枚埋めるときのパターン数)←ここのMin[n-1,N(tar1)]は、n個の領域をすべて埋めるとtar2の入る場所がなくなってしまうために最大でもn-1までしか入らないようにしておくこと+デッキ内にあるtar1の枚数より大きくなることはないという事情から、これらのうち小さいほうを上限とする、という意味。 |
∑i1=1Min[n-1, N(tar1)]∑i2=1Min[n-i1, N(tar2)]nCi1*《N(tar1),i1》*(n-i1)Ci2*《N(tar2),i2》 とシグマの位置を移しても意味は同じ。碁盤の目のように、横軸に左のシグマの埋まる枚数i1枚を、縦軸に右のシグマの埋まる枚数i2枚をとってみると、i1+i2=nとなるところが境界となり、境界線上とその内側の碁盤の目の1つ1つの値(値は格子の各部屋ではなく、縦横の直線の交点であることに注意)をすべて足し合わせていくことがシグマを2つ重ねることの意味である(†4)。右側のシグマの上限にiが含まれていることから、両シグマの交換だけはできないことに注意(†5)。シグマが3つ以上の場合はこれの類推から考えればよい。たとえばシグマが3つのときは立方体を賽の目に切ったもので、平面i1+i2+i3=n、直線i1=1,i2=1,i3=1により構成される三角錐の境界上またはその内側に含まれる各点をすべて集めたものがシグマを3つ重ねることの図形的表現である。4つ以上はもはや図形表現できないが、シグマが2つ、3つの場合を押さえておけば、似たようなものだと心の中で思っておくことができるだろう。(†6)(†7) |
†5:逆に言えば、i1がなければ交換可能である †6:本質は「カードを順次埋め込む」ことであって、図形的表現はそれを「納得」するための視覚的手段にすぎない。 †7:格子による「交点」ではなく「部屋」に値を置くことにすると、3次元格子の各部屋を有限の3次元空間とみなして4.5,6次元目を入れることができ(整数間の幅を狭くすればいくらでも整数が入れるから有限でもかまわない)、さらにそれによる格子の各部屋に7,8,9次元目を入れる……といくらでも図形的表現が可能。次元数が莫大にならない限り階段状になってしまうのが難点だが。 |