分割の母関数(generating functions for partitions)とは、正の整数 $n$ を順序を区別せずに正の整数の和で表す方法(分割)の数を係数に並べた形式的冪級数のことで、分割の総数 $p(n)$ については $\sum p(n)x^n=\prod_{k\ge1}\frac1{1-x^k}$ である。どの $N$ でも $G_k$ の位数が $N$ 以下の因子 $1+G_k$ が有限個なら、無限積は $N$ 次以下の係数が有限個の因子の積で決まるので定まる。部分 $k$ を使う回数を集合 $M_k$($0\in M_k$)に限った分割の数は $\prod_k\sum_{m\in M_k}x^{km}$ の係数である。たとえば $\prod_{j\ge0}(1+x^{2^j})=\frac1{1-x}$ は、0 以上の整数の 2 進展開がただ 1 つあることを示す。
前提知識: 形式的冪級数の積と逆数, 等比数列, 数学的帰納法, 場合の数
正の整数 $n$ を、順序を区別せずに正の整数の和として表したものを、$n$ の分割という。和に現れる各数を部分という。$3+1+1$ と $1+3+1$ は同じ分割とみなす(部分を大きい順に並べて書く)。分割の個数を $p(n)$ と書き、$p(0)=1$(空の和)とする。
$4$ の分割は
$$
4,\quad 3+1,\quad 2+2,\quad 2+1+1,\quad 1+1+1+1
$$
の $5$ 個である。$5$ の分割は
$$
5,\quad 4+1,\quad 3+2,\quad 3+1+1,\quad 2+2+1,\quad 2+1+1+1,\quad 1+1+1+1+1
$$
の $7$ 個である(図 1)。$p(0),p(1),\dots,p(10)$ は $1,1,2,3,5,7,11,15,22,30,42$ である。
5 の 7 個の分割。各部分を 1 行の点の列で表し、大きい部分から上に並べた
分割の数には簡単な公式がない。しかし、部分の種類を限ると、母関数で数えやすくなる。
部分が $1$ と $2$ だけの $n$ の分割は、$2$ を何個使うか($j$ 個)で決まり、残り $n-2j$ は $1$ を並べたものである。$j=0,1,\dots,\lfloor\frac n2\rfloor$ のどれでもよいので、個数は $\lfloor\frac n2\rfloor+1$ である($\lfloor t\rfloor$ は $t$ 以下の最大の整数)。$n=5$ なら $1+1+1+1+1$、$2+1+1+1$、$2+2+1$ の $3$ 個である。
同じ数え上げを式で行う。2 つの等比級数の積
$$
(1+x+x^2+x^3+\cdots)(1+x^2+x^4+x^6+\cdots)=\frac1{1-x}\cdot\frac1{1-x^2}
$$
を展開すると、1 つ目の因子から $x^i$($1$ を $i$ 個使う)、2 つ目の因子から $x^{2j}$($2$ を $j$ 個使う)を選んで $x^{i+2j}$ ができる。$x^n$ の係数は $i+2j=n$ となる組 $(i,j)$ の数であり、これは上の個数に一致する。係数を並べると $1,1,2,2,3,3,4,4,\dots$ である。
部分を $1$ から $k$ までに限れば、同じように $k$ 個の等比級数の積になる。すべての分割を数えるには、無限個の因子の積
$$
\frac1{1-x}\cdot\frac1{1-x^2}\cdot\frac1{1-x^3}\cdots
$$
が必要になる。この記事では、まずこのような無限積に意味を与え(lem-gfp-infinite-product)、次に積の係数が分割の数になることを示す(lem-gfp-count)。応用として、2 進展開の一意性(thm-gfp-binary)と、競技会の問題を 1 つ解く。
| 高校の考え方 | 母関数の言葉 | 本記事の箇所 |
|---|---|---|
| 「2 を何個使うか」で場合分けする | 等比級数 $1+x^2+x^4+\cdots$ から 1 項を選ぶ | ex-gfp-one-two |
| 部分ごとの使う回数を決めれば分割が決まる | 無限積の係数 | lem-gfp-count |
| 2 進法の表し方はただ 1 通り | $\prod(1+x^{2^j})=\frac1{1-x}$ | thm-gfp-binary |
玉と箱の区別で分けた数え方の表の中で分割数がどこにあるかは 場合の数の数え方の体系 で扱う。
形式的冪級数の和と積は、係数ごとの計算で定まっている(形式的冪級数の積と逆数)。特に、積 $FG$ の $x^n$ の係数は $F,G$ の $n$ 次以下の係数だけで決まる。
$F\equiv F'$、$G\equiv G'\pmod{x^{N+1}}$ なら $FG\equiv F'G'\pmod{x^{N+1}}$ である。$n\le N$ について $[x^n](FG)=\sum_{k=0}^na_kb_{n-k}$ は $n$ 次以下の係数だけを使い、それらは $F$ と $F'$、$G$ と $G'$ で等しいからである。
形式的冪級数の列 $G_1,G_2,G_3,\dots$ が次の条件を満たすとする:どの $N$ についても、$\operatorname{ord}G_k\le N$ となる $k$ は有限個しかない。部分積を $P_K:=(1+G_1)(1+G_2)\cdots(1+G_K)$ とする。
方針:番号の大きい因子 $1+G_k$ は、$N$ 次以下では $1$ と同じである(ex-gfp-order の 3)。そこで、部分積に因子を 1 つ付け加えても $N$ 次以下の係数が変わらないことを示す。
段 1(番号 $K_N$ の存在):$N$ を固定する。仮定から $\operatorname{ord}G_k\le N$ となる $k$ は有限個なので、それらの最大値を $K_N$ とする(1 つもなければ $K_N:=0$)。$k>K_N$ なら $\operatorname{ord}G_k>N$ である。
段 2(因子を 1 つ付け加える):$K\ge K_N$ とする。分配法則から
$$
P_{K+1}=P_K(1+G_{K+1})=P_K+P_KG_{K+1}
$$
である。$K+1>K_N$ なので $\operatorname{ord}G_{K+1}>N$、すなわち $G_{K+1}$ の $0$ 次から $N$ 次までの係数はすべて $0$ である。$m\le N$ について $[x^m](P_KG_{K+1})=\sum_{i=0}^m[x^i]P_K\cdot[x^{m-i}]G_{K+1}$ であり、$m-i\le N$ なので各項の $[x^{m-i}]G_{K+1}$ は $0$ である。よって $P_KG_{K+1}\equiv0$、$P_{K+1}\equiv P_K\pmod{x^{N+1}}$ である。
段 3(1 と 2):段 2 を $K=K_N,K_N+1,\dots$ と繰り返すと、$P_{K_N}\equiv P_{K_N+1}\equiv P_{K_N+2}\equiv\cdots\pmod{x^{N+1}}$ である。$n\le N$ の $x^n$ の係数は $K\ge K_N$ で一定なので 1 が成り立ち、定めた級数はこの一定の値を係数にもつので 2 が成り立つ。
段 4(3):$N$ を固定すると、2 により、どちらの級数も $N$ 次以下では「$\operatorname{ord}G_k\le N$ となる有限個の因子の積」に、$\operatorname{ord}G_k>N$ となる有限個の因子 $1+G_k$(ex-gfp-order の 3 により $\pmod{x^{N+1}}$ で $1$)を掛けたものと合同である。有限個の積は順番を変えても同じ(交換法則・結合法則)なので、2 つの級数は $N$ 次以下で一致する。$N$ は任意なので、2 つの級数は等しい。$\square$
無限個の級数の和 $\sum_kG_k$ も、同じ条件のもとで係数ごとの有限和として定まる($x^n$ の係数は $k\le K_n$ の項だけの和)。
$\prod_{k\ge1}\frac1{1-x^k}$ を考える。$\frac1{1-x^k}=1+x^k+x^{2k}+\cdots=1+G_k$ で $\operatorname{ord}G_k=k$ なので、$\operatorname{ord}G_k\le N$ となるのは $k\le N$ の $N$ 個だけであり、lem-gfp-infinite-product の条件を満たす。部分積 $P_K=\prod_{k=1}^K\frac1{1-x^k}$ の係数を $x^6$ まで並べると、次のようになる($P_K$ は $P_{K-1}$ に $1+x^K+x^{2K}+\cdots$ を掛けて計算する)。
| $K$ | $x^0$ | $x^1$ | $x^2$ | $x^3$ | $x^4$ | $x^5$ | $x^6$ |
|---|---|---|---|---|---|---|---|
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| 2 | 1 | 1 | 2 | 2 | 3 | 3 | 4 |
| 3 | 1 | 1 | 2 | 3 | 4 | 5 | 7 |
| 4 | 1 | 1 | 2 | 3 | 5 | 6 | 9 |
| 5 | 1 | 1 | 2 | 3 | 5 | 7 | 10 |
| 6 | 1 | 1 | 2 | 3 | 5 | 7 | 11 |
たとえば $K=3$ の $x^6$ の係数は、$K=2$ の行の $x^6,x^3,x^0$ の係数を足して $4+2+1=7$ である($\frac1{1-x^3}$ から $1$、$x^3$、$x^6$ を選ぶ)。$x^n$ の列は $K\ge n$ で変わらなくなり、その値 $1,1,2,3,5,7,11$ は $p(0),\dots,p(6)$ に一致する。
$G_k=x$(すべての $k$)とすると、$\operatorname{ord}G_k=1$ となる $k$ が無限個あるので、lem-gfp-infinite-product の条件を満たさない。実際、部分積 $(1+x)^K$ の $x^1$ の係数は $K$ であり、$K$ を大きくすると限りなく大きくなって一定にならない。条件を外すと、「係数が一定になり、無限積が定まる」という結論が崩れる。
各正の整数 $k$ に、$0$ を含む $0$ 以上の整数の集合 $M_k$ が与えられているとする。「部分 $k$ をちょうど $m_k$ 回使い、どの $k$ でも $m_k\in M_k$」となる $n$ の分割の数を $c_n$ とする($c_0=1$)。このとき
$$
\sum_{n\ge0}c_nx^n=\prod_{k\ge1}\Bigl(\sum_{m\in M_k}x^{km}\Bigr)
$$
である。
方針:$x^n$ の係数は有限個の因子の積で計算できることを確かめ、有限個の積を展開して項を数える。
段 1(無限積が定まる):$0\in M_k$ なので、$k$ 番目の因子は $1+G_k$、$G_k:=\sum_{m\in M_k,\ m\ge1}x^{km}$ の形である。$G_k$ の項の次数は $k$ 以上なので $\operatorname{ord}G_k\ge k$ であり、$\operatorname{ord}G_k\le N$ となるのは $k\le N$ のときだけである。よって lem-gfp-infinite-product の条件を満たし、無限積が定まる。
段 2(有限積に帰着する):$n$ を固定する。$k>n$ なら $\operatorname{ord}G_k>n$ なので、lem-gfp-infinite-product の 2($N=n$、$K=n$)により、無限積の $x^n$ の係数は有限積 $\prod_{k=1}^n\sum_{m\in M_k}x^{km}$ の $x^n$ の係数に等しい。
段 3(展開して数える):この有限積を展開すると、各因子 $k$ から 1 項 $x^{km_k}$($m_k\in M_k$)を選んで掛けた $x^{1\cdot m_1+2m_2+\cdots+nm_n}$ を、すべての選び方について足したものになる。よって $x^n$ の係数は、$m_1+2m_2+\cdots+nm_n=n$、$m_k\in M_k$ を満たす組 $(m_1,\dots,m_n)$ の個数である。
段 4(分割との対応):分割は、各部分 $k$ を使う回数 $m_k$ で決まる。$n$ の分割では $n$ より大きい部分は使えないので、組 $(m_1,\dots,m_n)$ で決まり、部分の和の条件は $\sum_kkm_k=n$ である。逆に、この条件を満たす組から「$k$ を $m_k$ 個並べた」分割がただ 1 つ決まる。したがって段 3 の個数は $c_n$ に等しい。$\square$
形式的冪級数として
$$
\prod_{j\ge0}\bigl(1+x^{2^j}\bigr)=(1+x)(1+x^2)(1+x^4)(1+x^8)\cdots=\frac1{1-x}
$$
である。したがって、$0$ 以上のすべての整数は、相異なる 2 の冪($1,2,4,8,\dots$)の和としてただ 1 通りに表される。
方針:有限個の因子の積に $1-x$ を掛けると、高校の公式 $(1-y)(1+y)=1-y^2$ が次々に使えて $1-x^{2^J}$ になる。これを $N$ 次以下で比べる。
段 1(有限積):$J\ge1$ について $(1-x)\prod_{j=0}^{J-1}(1+x^{2^j})=1-x^{2^J}$ を $J$ についての帰納法で示す。$J=1$ では $(1-x)(1+x)=1-x^2$ である。$J$ で成り立てば、両辺に $1+x^{2^J}$ を掛けて $(1-x^{2^J})(1+x^{2^J})=1-x^{2^{J+1}}$ となり、$J+1$ でも成り立つ。
段 2(無限積が定まる):$j$ 番目の因子は $1+x^{2^j}$ で $\operatorname{ord}x^{2^j}=2^j$ なので、$2^j\le N$ となる $j$ は有限個である。よって lem-gfp-infinite-product により無限積が定まる。
段 3($N$ 次以下で比べる):$N$ を固定し、$2^J>N$ となる $J$ をとる。$j\ge J$ なら $\operatorname{ord}x^{2^j}=2^j>N$ なので、lem-gfp-infinite-product の 2 により $\prod_{j\ge0}(1+x^{2^j})\equiv\prod_{j=0}^{J-1}(1+x^{2^j})\pmod{x^{N+1}}$ である。両辺に $1-x$ を掛けて段 1 を使うと、
$$
(1-x)\prod_{j\ge0}(1+x^{2^j})\equiv1-x^{2^J}\equiv1\pmod{x^{N+1}}
$$
である($2^J>N$ なので $x^{2^J}$ は $N$ 次以下に影響しない)。$N$ は任意なので $(1-x)\prod_{j\ge0}(1+x^{2^j})=1$ であり、両辺に $\frac1{1-x}$ を掛けて主張の等式を得る。
段 4(後半):lem-gfp-count で、$k$ が 2 の冪なら $M_k=\{0,1\}$、それ以外なら $M_k=\{0\}$ とすると、左辺の $x^n$ の係数は「$n$ を相異なる 2 の冪の和で表す方法の数」である。右辺 $\frac1{1-x}=\sum x^n$ の係数はすべて $1$ なので、表し方はどの $n$ でもちょうど 1 通りである。$\square$
10 進法を含む位取り記数法の表し方の一意性は 整数の筆算の仕組み で扱う。
$J=3$ のとき、段 1 の等式は $(1-x)(1+x)(1+x^2)(1+x^4)=1-x^8$ である。実際、$(1-x)(1+x)=1-x^2$、$(1-x^2)(1+x^2)=1-x^4$、$(1-x^4)(1+x^4)=1-x^8$ と順に計算できる。左辺から $1-x$ を除いた $(1+x)(1+x^2)(1+x^4)$ を展開すると $1+x+x^2+\cdots+x^7$ となり、$x^0$ から $x^7$ の係数がすべて $1$ である。たとえば $x^{5}$ は $x\cdot x^4$ からだけ出るので、$5=4+1$ がただ 1 つの表し方である。同じように $13=8+4+1$、$10=8+2$ である。
Putnam 数学競技会(北米の大学生向けの競技会)の 1983 年 B2 番は、thm-gfp-binary を使うと見通しよく解ける。問題文は、本記事の言葉で述べる(Kal83)。
正の整数 $n$ を、2 の冪 $1,2,4,8,\dots$ の和として表す。順序は区別せず、同じ冪は 3 回まで使ってよい。その表し方の数を $f(n)$ とする。たとえば
$$
7=4+2+1=4+1+1+1=2+2+2+1=2+2+1+1+1
$$
なので $f(7)=4$ である。すべての正の整数 $n$ について、$f(n)$ が $P(n)$ 以下の最大の整数に等しくなるような、実数係数の多項式 $P$ は存在するか。
(出典:第 44 回 William Lowell Putnam 数学競技会(1983 年)B2。問題の内容は Kal83 による。)
答えは「存在する」で、$f(n)=\bigl\lfloor\frac n2\bigr\rfloor+1$ であり、$P(x)=\frac x2+1$ とすればよい(図 2)。以下、$f(0):=1$(空の和)、$f(-1):=0$ とする。
$f(n)$ の値(点)と直線 $\frac n2+1$。点は直線上かその少し下にある
方針:表し方を「$1$ を何回使うか」で分け、残りを半分にすると小さい数の表し方になることから、漸化式を作る。
段 1(対応):$m\ge0$ とし、$n=2m$ または $n=2m+1$ とする。$n$ の表し方で $1$ を使う回数を $c\in\{0,1,2,3\}$ とする。$1$ 以外の部分はすべて偶数なので、$n-c$ は偶数である。よって $n=2m$ なら $c=0$ か $2$、$n=2m+1$ なら $c=1$ か $3$ である。$1$ 以外の部分をそれぞれ半分にすると、$\frac{n-c}2$ の同じ条件の表し方になる(冪 $2^j$ は $2^{j-1}$ になり、使う回数は変わらない)。逆に $\frac{n-c}2$ の表し方の各部分を 2 倍して $1$ を $c$ 個加えると、元の表し方に戻る。
段 2(漸化式):段 1 から
$$
f(2m)=f(m)+f(m-1)\quad(c=0,2),\qquad f(2m+1)=f(m)+f(m-1)\quad(c=1,3)
$$
である($m\ge1$。$2m+1$ の式は $m=0$ でも成り立ち、$f(1)=f(0)+f(-1)=1$)。
段 3(帰納法):$n$ についての強い帰納法で $f(n)=\lfloor\frac n2\rfloor+1$ を示す。$n=0,1$ では $f(0)=1$、$f(1)=1$ で正しい。$n\ge2$ とし、$n=2m$ または $2m+1$($m\ge1$)と書く。$m,m-1< n$ なので帰納法の仮定が使え、
$$
f(n)=\Bigl(\Bigl\lfloor\frac m2\Bigr\rfloor+1\Bigr)+\Bigl(\Bigl\lfloor\frac{m-1}2\Bigr\rfloor+1\Bigr)
$$
である。$m$ が偶数なら $\lfloor\frac m2\rfloor+\lfloor\frac{m-1}2\rfloor=\frac m2+\frac m2-1=m-1$、奇数なら $\frac{m-1}2+\frac{m-1}2=m-1$ なので、$f(n)=(m-1)+2=m+1$ である。$n=2m$ でも $2m+1$ でも $\lfloor\frac n2\rfloor=m$ なので、$f(n)=\lfloor\frac n2\rfloor+1$ である。$\square$
lem-gfp-count($k=2^j$ なら $M_k=\{0,1,2,3\}$、それ以外は $\{0\}$)により、$y_j:=x^{2^j}$ とおくと
$$
\sum_{n\ge0}f(n)x^n=\prod_{j\ge0}\bigl(1+y_j+y_j^2+y_j^3\bigr)=\prod_{j\ge0}(1+y_j)(1+y_j^2)
$$
である($1+y+y^2+y^3=(1+y)(1+y^2)$)。$y_j^2=x^{2^{j+1}}$ なので、lem-gfp-infinite-product の 3 で因子をまとめ直すと、これは $\prod_{j\ge0}(1+x^{2^j})\cdot\prod_{j\ge1}(1+x^{2^j})$ に等しい。thm-gfp-binary により前者は $\frac1{1-x}$ である。後者は、前者から因子 $1+x$ を除いたものなので $\frac1{1-x}\cdot\frac1{1+x}=\frac1{1-x^2}$ である。したがって
$$
\sum_{n\ge0}f(n)x^n=\frac1{(1-x)(1-x^2)}
$$
であり、これは ex-gfp-one-two の母関数そのものである。よって $f(n)$ は「部分が $1$ と $2$ だけの $n$ の分割の数」に等しく、$\lfloor\frac n2\rfloor+1$ である。
高校の漸化式 $f(2m)=f(2m+1)=f(m)+f(m-1)$ は、母関数の等式 $F(x)=(1+x+x^2+x^3)F(x^2)$($F:=\sum f(n)x^n$)を係数で書いたものである。母関数で見ると、「なぜ $\frac n2$ が出てくるのか」が分母の $1-x^2$ から見える。同じ計算で、3 の冪を 8 回まで使う表し方の数の母関数は $\frac1{(1-x)(1-x^3)}$ になり、その数は $\lfloor\frac n3\rfloor+1$ である。
Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する