分割の母関数

同義語:generating functions for partitions

概要

分割の母関数(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 つあることを示す。

$$\newcommand{C}[0]{\mathbb{C}} \newcommand{N}[0]{\mathbb{N}} \newcommand{Q}[0]{\mathbb{Q}} \newcommand{R}[0]{\mathbb{R}} \newcommand{Z}[0]{\mathbb{Z}} $$

前提知識: 形式的冪級数の積と逆数, 等比数列, 数学的帰納法, 場合の数

高校での出発点:分割を数える

正の整数 $n$ を、順序を区別せずに正の整数の和として表したものを、$n$ の分割という。和に現れる各数を部分という。$3+1+1$ と $1+3+1$ は同じ分割とみなす(部分を大きい順に並べて書く)。分割の個数を $p(n)$ と書き、$p(0)=1$(空の和)とする。

4 と 5 の分割

$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 行の点の列で表し、大きい部分から上に並べた 5 の 7 個の分割。各部分を 1 行の点の列で表し、大きい部分から上に並べた
分割の数には簡単な公式がない。しかし、部分の種類を限ると、母関数で数えやすくなる。

部分を 1 と 2 に限る

部分が $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$ 次以下の係数だけで決まる。

位数と $N$ 次までの一致
  1. 形式的冪級数 $G\ne0$ について、係数が $0$ でない最小の番号を $G$ の位数といい、$\operatorname{ord}G$ と書く。$G=0$ なら $\operatorname{ord}G=\infty$ とする。
  2. 2 つの形式的冪級数 $F,F'$ の $x^0,x^1,\dots,x^N$ の係数がすべて等しいとき、$F\equiv F'\pmod{x^{N+1}}$ と書く。

$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'$ で等しいからである。

位数と合同の例
  1. $\operatorname{ord}(x^3+2x^5)=3$、$\operatorname{ord}(1+x)=0$、$\operatorname{ord}(x^k)=k$ である。
  2. $(1+x)^2=1+2x+x^2$ なので $(1+x)^2\equiv1+2x\pmod{x^2}$ である。
  3. $\operatorname{ord}G>N$ なら $1+G\equiv1\pmod{x^{N+1}}$ である。たとえば $1+x^5\equiv1\pmod{x^5}$($N=4$)。この形の因子は、$N$ 次以下の係数に影響しない。
形式的な無限積

形式的冪級数の列 $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. 各 $n$ について、$[x^n]P_K$ は $K$ が十分大きければ $K$ によらず一定である。その一定の値を $x^n$ の係数とする級数を $\prod_{k\ge1}(1+G_k)$ と書く。
  2. $K_N$ を「$k>K_N$ なら $\operatorname{ord}G_k>N$」となる番号とすると、$K\ge K_N$ のすべての $K$ で $\prod_{k\ge1}(1+G_k)\equiv P_K\pmod{x^{N+1}}$ である。
  3. 因子の順番を並べ替えても、2 つの無限積の積を 1 つの無限積にまとめても、同じ級数になる(どちらも条件を満たす場合)。
大きい番号の因子は低い次数を変えない

方針:番号の大きい因子 $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$
11111111
21122334
31123457
41123569
511235710
611235711

たとえば $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) $$
である。

因子ごとに 1 項を選ぶ

方針:$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$

いろいろな条件の分割
  1. すべての $M_k=\{0,1,2,\dots\}$:因子は $\frac1{1-x^k}$ で、分割の総数の母関数 $\sum p(n)x^n=\prod_{k\ge1}\frac1{1-x^k}$ を得る(ex-gfp-stabilize の表)。
  2. すべての $M_k=\{0,1\}$:因子は $1+x^k$ で、部分が相異なる分割を数える。$\prod_{k\ge1}(1+x^k)$ の係数は $x^0$ から $x^7$ まで $1,1,1,2,2,3,4,5$ である。$n=6$ では $6$、$5+1$、$4+2$、$3+2+1$ の $4$ 個である。
  3. $k$ が奇数なら $M_k=\{0,1,2,\dots\}$、偶数なら $M_k=\{0\}$:因子は奇数の $k$ だけの $\frac1{1-x^k}$ で、部分がすべて奇数の分割を数える。係数は $x^0$ から $x^7$ まで $1,1,1,2,2,3,4,5$ で、2 と同じ列になる。この一致がいつも成り立つことは Eulerの分割恒等式で示す。

主定理:2 進展開の一意性

2 進展開の一意性

形式的冪級数として
$$ \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 数学競技会の問題から

Putnam 数学競技会(北米の大学生向けの競技会)の 1983 年 B2 番は、thm-gfp-binary を使うと見通しよく解ける。問題文は、本記事の言葉で述べる(Kal83)。

Putnam 数学競技会(1983 年)B2

正の整数 $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$ とする。

!FORMULA[329][1126147235][0] の値(点)と直線 !FORMULA[330][17004928][0]。点は直線上かその少し下にある $f(n)$ の値(点)と直線 $\frac n2+1$。点は直線上かその少し下にある

高校数学で解く: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$

大学数学で見ると:母関数が $\frac{1}{(1-x)(1-x^2)}$ に縮む

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$ である。

さらに先へ

  • 完備化:$K[\![x]\!]$ は、多項式全体を「$N$ 次以下が一致すれば近い」という距離で完備化したものとみなせる(本記事では証明しない)。lem-gfp-infinite-product の無限積は、この距離での極限である。
  • Euler の分割恒等式:部分が相異なる分割と、部分がすべて奇数の分割は、どの $n$ でも同じ数だけある(Eulerの分割恒等式)。
  • 五角数定理:$\prod_{k\ge1}(1-x^k)$ の展開は、係数がほとんど $0$ になり、分割数 $p(n)$ の漸化式を与える(分割数)。

関連項目

参考文献

Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する