1 有限集合と写像
数え上げの対象は有限集合であり、個数を求める操作は、個数の分かっている集合との全単射を作る操作として表されます。以後の議論で断りなく用いる語を、先にすべて定めます。
定義 1.1 (写像・単射・全射・全単射). 集合Aから集合Bへの写像 (map)f:A→Bとは、Aの各元aに対してBの元f(a)をただ一つ定める対応をいう。Aをfの定義域、Bをfの終域とよぶ。部分集合S⊆Aに対してf(S):={f(a):a∈S}をSの像、部分集合T⊆Bに対してf−1(T):={a∈A:f(a)∈T}をTの原像という。
- fが単射 (injection) であるとは、Aの任意の二元a,a′について、f(a)=f(a′)ならばa=a′が成り立つことをいう。
- fが全射 (surjection) であるとは、Bの任意の元bに対して、f(a)=bを満たすa∈Aが存在することをいう。
- fが全単射 (bijection) であるとは、fが単射かつ全射であることをいう。fが全単射であるとき、Bの各元bに対してf(a)=bを満たすa∈Aが全射性から存在し、単射性からただ一つに定まる。このaをbに対応させる写像をfの逆写像とよびf−1:B→Aと書く。
写像f:A→Bとg:B→Cに対し、a∈Aをg(f(a))へ送る写像をfとgの合成写像 (composite map) といい、g∘f:A→Cと書く。集合Aの各元を自分自身へ送る写像をAの恒等写像 (identity map) といい、idAと書く。
写像f:A→Bに対して、写像h:B→Aがh∘f=idAとf∘h=idBを満たすならば、fは全単射である。実際、f(a)=f(a′)ならば両辺へhを作用させてa=a′を得るのでfは単射であり、任意のb∈Bに対してb=f(h(b))であるからfは全射である。また、全単射f:A→Bとg:B→Cをとる。任意のc∈Cに対してg(f(f−1(g−1(c))))=cであり、任意のa∈Aに対してf−1(g−1(g(f(a))))=aであるから、f−1∘g−1はg∘fの両側逆写像である。したがってg∘fも全単射である。
定義 1.2 (直積). 集合A,Bに対して、a∈Aとb∈Bの順序対(a,b)の全体をAとBの直積 (Cartesian product) といい、A×Bで表す。ここで(a,b)=(a′,b′)とはa=a′かつb=b′が成り立つことである。より一般に、集合A1,…,Akに対して、第i成分がAiに属するk個の組(a1,…,ak)の全体をA1×⋯×Akと書き、A1=⋯=Ak=AのときこれをAkと書く。
定義 1.3 (有限集合と要素の個数). 正の整数nに対して[n]:={1,2,…,n}とおき、[0]:=∅と定める。集合Aが有限集合 (finite set) であるとは、ある非負整数nと全単射f:[n]→Aが存在することをいう。このときnはAに対して一意に定まる(補題 1.4)ので、nをAの要素の個数 (cardinality) とよび∣A∣で表す。
補題 1.4 (要素の個数は一意に定まる). 非負整数m,nに対して全単射g:[m]→[n]が存在するならばm=nである。
証明. 自然数kについてQ(k)を「全単射g:[m]→[k−1]が存在するならばm=k−1」と定める。Q(1)はn=0の場合であり、帰納段階Q(k)⇒Q(k+1)は「n=k−1の場合を仮定してn=kの場合を示す」ことと一致するから、Qに関する数学的帰納法(§A3.10 定理 1.1)により、以下ではn:=k−1として主張を示す。
n=0のとき、[n]=∅である。m≥1とするとg(1)∈∅となって矛盾するからm=0である。
n≥1とし、n−1について主張が成り立つと仮定する。全単射g:[m]→[n]をとる。[n]は空でないからgの全射性よりm≥1である。[n]の二元nとg(m)を入れ替え、他の元を動かさない写像をτ:[n]→[n]とすると、τは自分自身を逆写像とする全単射である。合成h:=τ∘gは定義 1.1により全単射であり、h(m)=τ(g(m))=nを満たす。hは単射だからi≤m−1のときh(i)=n、すなわちh(i)∈[n−1]である。ゆえにhの[m−1]への制限は[m−1]→[n−1]の写像を与え、単射性はhから受け継がれ、全射性はhの全射性とh(m)=nから従う。帰納法の仮定によりm−1=n−1、すなわちm=nである。▨
集合Aの要素の個数を求めるとは、定義 1.3の意味で全単射[n]→Aを一つ作ることにほかなりません。以下の原理は、この全単射を組み立てる方法を与えます。
命題 1.5 (全単射原理). 二つの有限集合A,Bの間に全単射f:A→Bが存在すれば∣A∣=∣B∣である。したがって、ある集合の要素の個数を求める問題は、要素の個数の分かっている集合との全単射を構成する問題に帰着する。
証明.∣A∣=nとすると全単射g:[n]→Aがとれる。定義 1.1により、合成f∘g:[n]→Bは全単射である。したがって、要素の個数の定義により∣B∣=n=∣A∣である。▨
2 加法原理・割り算原理・乗法原理
定理 2.1 (加法原理).Iを有限集合とし、(Ai)i∈Iをどの相異なるi,j∈Iに対してもAi∩Aj=∅を満たす有限集合の族とする。このとき、⋃i∈IAi=∑i∈I∣Ai∣.
証明. 互いに素な有限集合A,Bをとり、∣A∣=m、∣B∣=kとする。全単射f:[m]→Aとg:[k]→Bをとり、写像h:[m+k]→A∪Bをh(i)={f(i)g(i−m)(1≤i≤m),(m<i≤m+k)で定める。h(i)=h(j)ならば、A∩B=∅よりh(i),h(j)は同じ集合に属し、fまたはgの単射性からi=jを得るので、hは単射である。またA∪Bの任意の元はAまたはBに属し、f,gの全射性からhの像に入るので、hは全射である。したがってhは全単射であり、命題 1.5により∣A∪B∣=m+kである。
n=∣I∣とし、全単射α:[n]→Iをとる。n=0ならばI=∅であり、合併は空集合、和は0である。n≥1の場合について、Bj=Aα(j)とおき、nに関する数学的帰納法(§A3.10 定理 1.1)を適用する。n=1ならば⋃j=11Bj=∣B1∣である。n≥2とし、n−1個の族に対して等式が成り立つと仮定して、C=⋃j=1n−1Bjとおく。族が互いに素であることからC∩Bn=∅である。二つの集合に対する上の等式と帰納法の仮定により⋃j=1nBj=∣C∣+∣Bn∣=∑j=1n−1∣Bj∣+∣Bn∣=∑j=1n∣Bj∣.αは全単射であるから、j∈[n]による族(Bj)はi∈Iによる族(Ai)の添字を付け替えたものである。したがって主張の等式を得る。▨
命題 2.2 (割り算原理). 有限集合Xから有限集合Yへの全射f:X→Yがあり、正整数dについて、各y∈Yの逆像f−1({y})がちょうどd個の元をもつとする。このとき∣X∣=d∣Y∣である。
証明.X=⋃y∈Yf−1({y})であり、y=y′のときf−1({y})∩f−1({y′})=∅である。さらにfは全射であるから、各y∈Yの逆像は空でない。したがって、加法原理(定理 2.1)より∣X∣=∑y∈Y∣f−1({y})∣=∑y∈Yd=d∣Y∣.▨
定理 2.3 (乗法原理). 有限集合A,Bに対し∣A×B∣=∣A∣⋅∣B∣。
より一般に、正整数kと正整数n1,…,nkを固定し、有限集合C1で∣C1∣=n1を満たすものと、各2≤i≤kについてC1×⋯×Ci−1の元(a1,…,ai−1)ごとに定まる有限集合Ci(a1,…,ai−1)で∣Ci(a1,…,ai−1)∣=ni((a1,…,ai−1)によらず一定)を満たすものが与えられているとする。a1∈C1をとり、続けて各i=2,…,kについてai∈Ci(a1,…,ai−1)をとるというk段階の手続きによって得られる組(a1,…,ak)の全体を選択列の集合という。このとき、選択列の集合の要素の個数はn1n2⋯nkに等しい。
証明. 各a∈Aに対し{a}×B:={(a,b):b∈B}とおくと、b↦(a,b)はB→{a}×Bの全単射だから、命題 1.5により∣{a}×B∣=∣B∣である。さらにA×B=⨆a∈A({a}×B)は互いに素な有限集合族の合併であるから、加法原理(定理 2.1)より∣A×B∣=∑a∈A∣{a}×B∣=∑a∈A∣B∣=∣A∣⋅∣B∣.選択列については、1≤i≤kに対してi段階までの選択列の集合をSi:={(a1,…,ai):a1∈C1, a2∈C2(a1), …, ai∈Ci(a1,…,ai−1)}とおき、∣Si∣=n1n2⋯niをiに関する帰納法(§A3.10 定理 1.1)で示す。i=1のときS1=C1だから∣S1∣=n1。i≥2とし∣Si−1∣=n1⋯ni−1を仮定する。各p∈Si−1に対してTp:={(a1,…,ai)∈Si:(a1,…,ai−1)=p}とおく。各i組は前半の(i−1)組をただ一つもつから、(Tp)p∈Si−1は互いに素であり、Si=⨆p∈Si−1Tpである。p=(p1,…,pi−1)と書くと、末成分写像
Tp⟶Ci(p),(a1,…,ai)⟼aiを考える。選択列の定義により、b∈Ci(p)を(p1,…,pi−1,b)へ送る写像Ci(p)→Tpが定まり、この写像は末成分写像の逆写像である。したがって、末成分写像は全単射であり、命題 1.5により∣Tp∣=niである。加法原理(定理 2.1)より∣Si∣=∑p∈Si−1∣Tp∣=∑p∈Si−1ni=ni∣Si−1∣=n1⋯ni−1ni.したがって∣Sk∣=n1⋯nkである。▨
3 順列・組合せ
証明.k=0のとき、空の順序付き組はただ一つであり、[n]の0元部分集合も空集合ただ一つである。0!=1と空積を1とする規約により
P(n,0)=1=(n−0)!n!,(0n)=1=0!(n−0)!n!である。したがって、二つの公式はいずれもk=0の場合に成り立つ。
以下では1≤k≤nとする。順列は、第1成分をn通り、第2成分を残りn−1通り、…、第k成分をn−k+1通りから選ぶ選択列である。各段階の選択肢数はそれまでの選択に依らず定まるので、乗法原理(定理 2.3)よりP(n,k)=n(n−1)⋯(n−k+1)=(n−k)!n!.
組合せの公式を示す。Cを[n]のk元部分集合全体、Pを[n]の相異なるk個の元を並べた順序付きk組全体とする。写像φ:P→Cを、順序付きk組に現れる要素の集合を対応させる写像とする。各S∈Cに対し、原像φ−1({S})はSの要素の並べ替え全体であり、∣φ−1({S})∣=P(k,k)=k!である。特に各原像は空でないのでφは全射である。この原像による分割は、同じ集合を与えるという同値関係による類別にほかならない(§D2.5 定義 2.1)。命題 2.2をX=P、Y=C、d=k!に適用すると∣P∣=k!∣C∣を得る。∣P∣=P(n,k)ゆえ(kn)=∣C∣=k!P(n,k)=k!(n−k)!n!。▨
4 重複組合せ
組合せは、同じものを二度選ぶことを許しません。同じ種類を何度選んでもよいという条件へ変えると、選び方の総数は別の式で与えられます。ここでも、数えたい集合と、個数の分かっている集合とのあいだに全単射を作ります。
証明. 選び方は、種類iを選ぶ回数xiの組によってただ一つに定まるから、選び方の全体はM:={(x1,…,xn)∈Z≥0n:∑j=1nxj=k}と全単射に対応する。Sを[n+k−1]の(n−1)元部分集合の全体とし、MとSのあいだに全単射を作る。
(x1,…,xn)∈Mに対し、sj:=x1+⋯+xj+j(1≤j≤n−1)とおきφ(x1,…,xn):={s1,s2,…,sn−1}と定める。各xj≥0だからsj+1−sj=xj+1+1≥1となりs1<s2<⋯<sn−1、とくにφ(x)の要素の個数はn−1である。またs1=x1+1≥1であり、sn−1=k−xn+(n−1)≤n+k−1である。ゆえにφ(x)∈Sであり、φ:M→Sが定まる。
逆にS={s1<s2<⋯<sn−1}∈Sに対し、s0:=0、sn:=n+kとおいてψ(S):=(x1,…,xn),xj:=sj−sj−1−1(1≤j≤n)と定める。1≤j≤n−1ではsj−1<sjよりxj≥0であり、j=nではsn−1≤n+k−1<n+k=snよりxn≥0である。さらに∑j=1nxj=∑j=1n(sj−sj−1)−n=(sn−s0)−n=(n+k)−n=kだからψ(S)∈Mである。
二つの対応が互いに逆であることを確かめる。x∈Mに対しφ(x)の第j番目に小さい要素はsj=x1+⋯+xj+jだから、ψ(φ(x))の第j成分はsj−sj−1−1=xjに等しい(j=nではsn−sn−1−1=(n+k)−(k−xn+n−1)−1=xn)。逆にS∈Sに対しψ(S)=(x1,…,xn)とおくとx1+⋯+xj+j=sjがjについての和で従うから、φ(ψ(S))=Sである。ゆえにφは全単射である。
全単射原理(命題 1.5)と組合せの個数(命題 3.1)により∣M∣=∣S∣=(n−1n+k−1)=(kn+k−1)を得る。最後の等号は(n+k−1)−(n−1)=kによる。▨
例 4.2 (三種類から四個を選ぶ).n=3、k=4のとき命題 4.1は(46)=15を与える。実際にx1+x2+x3=4を満たす非負整数の組をx1の値で分類すると、x1=0,1,2,3,4に対して(x2,x3)の選び方はそれぞれ5,4,3,2,1通りである。加法原理(定理 2.1)により総数は5+4+3+2+1=15となり、公式の値と一致する。
Sの側でも数える。[n+k−1]=[6]の2元部分集合は(26)=15個であり、(26)=(46)だから同じ値になる。
対応も確かめる。(x1,x2,x3)=(1,0,3)に対してはs1=1+1=2、s2=1+0+2=3だからφ(1,0,3)={2,3}である。逆にS={2,3}からは、s0=0、s3=n+k=7としてx1=2−0−1=1、x2=3−2−1=0、x3=7−3−1=3が得られ、もとの組に戻る。
5 二項定理とパスカルの公式
定理 5.1 (二項定理(組合せ的解釈)). 可換環の元(または不定元)x,yと整数n≥0に対し、(x+y)n=∑k=0n(kn)xkyn−k.(kn)は、n個の因子のうちxを選ぶ因子の集合S⊆[n]で∣S∣=kを満たすものの個数である。
証明.(x+y)n=∏i=1n(x+y)の各因子からxまたはyを選ぶ操作を、xを選ぶ因子の添字全体S⊆[n]によって径数付ける。分配法則とx,yの可換性により
(x+y)n=S⊆[n]∑x∣S∣yn−∣S∣=k=0∑nS⊆[n]∣S∣=k∑1xkyn−k.∣S∣=kを満たす部分集合S⊆[n]は命題 3.1により(kn)個であるから主張を得る。n=0のときも、[0]=∅の唯一の部分集合に対応する空積を1とすることで同じ等式が成り立つ。▨
命題 5.2 (パスカルの公式).1≤k≤n−1のとき、(kn)=(k−1n−1)+(kn−1).
証明.[n]のk元部分集合全体Cを、要素nを含むものの集合C1と含まないものの集合C0に分ける。これは互いに素な分割である。C1の集合は{n}に[n−1]からk−1個を選んで加えたものと一対一対応するので∣C1∣=(k−1n−1)。C0の集合は[n−1]からk個を選んだものだから∣C0∣=(kn−1)。加法原理(定理 2.1)より(kn)=∣C1∣+∣C0∣=(k−1n−1)+(kn−1)。▨
6 演習
問題 6.1 (選択肢の個数が一定でない手続き). 最初にa∈{1,2,3}を選び、次にb∈[a]を選ぶ。この手続きで得られる順序対(a,b)の個数を求めよ。また、乗法原理の選択列に対する一般形を直接適用することができない理由を述べよ。
解答.
a=1,2,3のそれぞれに対してbの選び方は1,2,3通りである。aの値ごとに得られる順序対の集合は互いに素であるから、定理 2.1により順序対の総数は
1+2+3=6である。第2段階の選択肢の個数は第1段階で選んだaに依存するので、各段階の選択肢の個数がそれまでの選択によらず一定であるという定理 2.3の仮定を満たさない。▨
問題 6.2 (二項係数の対称性).0≤k≤nに対して(kn)=(n−kn)が成り立つことを、部分集合の補集合を用いる全単射によって証明せよ。
解答.
[n]のk元部分集合全体をCk、(n−k)元部分集合全体をCn−kとする。写像
c:Ck→Cn−k,c(S)=[n]∖Sを定める。同様にh:Cn−k→Ckをh(T)=[n]∖Tで定める。任意のS∈CkとT∈Cn−kに対してh(c(S))=Sとc(h(T))=Tが成り立つので、定義 1.1の両側逆写像の判定によりcは全単射である。したがって、命題 1.5と命題 3.1により
(kn)=∣Ck∣=∣Cn−k∣=(n−kn)を得る。▨
問題 6.3 (二項係数の総和). 正整数nに対して
k=0∑n(kn)=2nが成り立つことを、二項定理による方法と[n]の部分集合を数える方法の二通りで証明せよ。
解答.
定理 5.1でx=y=1とすると
2n=(1+1)n=k=0∑n(kn)を得る。
別の方法として、[n]の部分集合全体を数える。各i∈[n]について、部分集合へiを入れるか入れないかの2通りを独立に選ぶので、定理 2.3により部分集合の総数は2nである。一方、部分集合全体を要素の個数kごとに分けると、k元部分集合は命題 3.1により(kn)個である。異なるkに属する族は互いに素であるから、定理 2.1により部分集合の総数は∑k=0n(kn)でもある。二つの数え方を比較して等式を得る。▨
問題 6.4 (下限をもつ非負整数解).x1+x2+x3+x4=10を満たす整数の組(x1,x2,x3,x4)で、x1≥1、x2≥2、x3≥0、x4≥0を満たすものの個数を求めよ。
解答.
y1=x1−1、y2=x2−2とおくと、求める組は
y1+y2+x3+x4=7,y1,y2,x3,x4≥0を満たす非負整数の組と全単射に対応する。この組は4種類のものから重複を許して7個を選ぶ重複組合せに対応するので、命題 4.1により個数は
(74+7−1)=(710)=120である。▨