feature image

2026年5月6日 | ブログ記事

ラグランジュ反転公式の組合せ論からの導出

こんにちは。こめだわらと申します。普段は競技プログラミングをやっています。

皆さんは、(形式的冪級数における) ラグランジュの反転公式 というものをご存じでしょうか。競プロの数え上げ問題にもよく使われる、非常に強力な公式です。代表的な使用例は ABC 222-H などです。 https://atcoder.jp/contests/abc222/tasks/abc222_h

この公式の証明は、形式留数を用いたものがよく知られているようです(上述のABCの公式解説もその一つです)。しかし私は、この証明があまり直感的に納得できませんでした。そこでGeminiに相談してみると、形式留数などの操作を経由せず、組合せ論からアプローチする方法を紹介されました。それが個人的にはかなり直感的な導出・証明に感じたので、本記事で紹介しようと思います。似たような境遇の方の理解の助けになれば幸いです。

ラグランジュの反転公式とは

形式的冪級数におけるラグランジュの反転公式とは、以下のような主張です。

【定理】

を、逆関数の関係にあるFPSとする(すなわち、 が成り立つ)。このとき、以下の等式が成り立つ。

これを証明していくのですが、このままの形では少し扱いづらいので、少々変形を行います。

まず、 の定数項は であり、 次の項は ではありません(この条件を満たさない場合、逆関数が存在しません)。したがって、 の分母は定数項が でないFPSであるので、 はFPSとなります。これにより とおくことができます。変形すると、結局ラグランジュの反転公式を示すには、以下の主張を示せば十分であることになります。

【主張】

をFPSとし、次の等式を満たしているとする。

このとき、以下の等式が成り立つ。

ラグランジュの反転公式をこの形で覚えている人も多いかもしれません。以降はこれを示すことを目標にします。

別の問題への言い換え

突然ですが、次の問題を考えます。

【問題1】

無限数列 がある。根付き木であって、各頂点の子供に左から順番がついているようなものを考える。根付き木 スコア を、以下のように定める。

正整数 が与えられる。 頂点の根付き木全てに対するスコアの総和を求めよ。

この問題を解いてみましょう。問題の答えの母関数を とします。 が満たすべき特徴を考えましょう。根の子の個数 により場合分けをすると、以下の等式が成り立つことが分かります。

ここで、 とおくと、

となります。上のほうで見た式が現れましたね。この問題の答えは だったので、この値を求めれば答えが求まります。この類の問題はラグランジュの反転公式の例題のような問題で、この形から今までの変形を逆走し、ラグランジュの反転公式を適用して答えを求める、というのが典型の流れです。

この問題において、数列 には特に制限を設けておらず、したがって は任意のFPSをとることができます。また、 との関係式から一意に定まります。したがって、この問題の答えが に等しいことを示せれば、それでラグランジュの反転公式が示せたことになります。

実際に解いていく

では、上の問題を解いていきましょう。

まず、根付き木 のスコアについてもう少し考えます。定義式では、根の子を親とする部分木のスコアから再帰的に定義されていましたが、よく見てみると再帰的な定義は全く必要ないことが分かります。具体的には、木 の頂点 の子の数を とすると、 は以下のようになっていることが分かります。

つまり、各頂点の子の個数だけに着目すれば、 のスコアが求まります。

ここで、 頂点の根付き木 に対して、長さ の非負整数列 を以下の手順により生成します。

子の数の合計は なので、 の総和は です。またもう一つの条件として、 に対して が成り立っています。逆に、これら つの条件を満たす整数列 に対し、 を生成する木 を一意に復元できます(DFS順に子の数を決めていけばよいです)。 木 が数列 を生成するとき、木 のスコアは であるので、結局元の問題は、以下の問題を解けばよいことになります。

【問題2】

以下の つの条件を満たす長さ の非負整数列 いい整数列 と呼ぶ。

全てのいい整数列に対する の総和を求めよ。

もし つ目の条件がなければ話は簡単で、答えは です。ここから、 つ目の条件を処理します。

Cycle Lemma の利用

ちょうど最近、 AtCoder Algorithm Lectures でも紹介されていたテクニックです。 Cycle Lemma とは、以下のような主張です。AtCoder Algorithm Lectures のものを引用します。(本記事を書いている途中で気づきましたが、この記事でラグランジュの反転公式の組合せ論からの導出について軽く触れられています。) https://info.atcoder.jp/entry/algorithm_lectures/cycle_lemma

【定理】

整数列 が、以下の条件を満たすとする。

このとき、 の巡回シフトであって、累積和が初項を除きすべて正であるものが、ちょうど 個存在する。ただし、巡回シフトについては、要素のインデックスを区別する。

この主張の証明や具体例などは引用元の記事を参照するとよいです。今回はこの定理を使います。

数列 を、 によって定めます。数列 における つの条件を の条件に書き直します。

つ目の総和に関する条件は、 となります。

つ目の条件は、以下のように変形できます。

つ目の条件と合わせると、

よって、 となります。明らかに であるため、これで定理を適用できる形になりました。定理により、 の巡回シフトであって、上の つの条件を満たすものがちょうど つあり、元の数列 にも同じことが言えます。

まとめると、 を満たす整数列 について、互いに巡回シフトして重なるもののうちちょうど だけが、いい整数列となることが分かりました。互いにシフトして重なる数列について は等しいので、結局答えを求めるには、 つ目の条件を満たすもの全体の結果を 倍すればよいです。よって答えは となります。

結論

言い換え後の問題1について、答え を別の形で表すことに成功しました。したがって、等式

が成り立ちます。以上でラグランジュの反転公式が証明されました。

余談

余談その1:FPS係数の元について

今回の証明において、 の係数の元は明示的に示していませんでした。係数について利用した性質は、「可換環であること」「 で割れること」です。したがって、体上の代数、例えば体を係数とする多項式などが係数になっていても、同様の議論を行うことができます。

可換性については、 Cyclic Lemma を利用する過程でどうしても必要になってくるので、ここは外せなさそうです( の巡回シフトにより木のスコアが変わらない必要があるため)。

余談その2:一般化公式の導出

今回の手法を応用することで、一般化された公式を導くこともできます。

次の問題を考えます。

【問題1'】

子に左から順番がついた根付き木に対するスコアを、問題1と同様に定める。

正整数 が与えられる。根付き木 個が左から順に並んでおり、頂点数の合計が であるような状況を よい状況 と呼ぶ。よい状況のスコアを、 個の部分木のスコアの積で定める。すべてのよい状況に対するスコアの総和を求めよ。

この問題の答えは であり、また同様の議論を進めると であることが示せます(Cyclic Lemma の部分が少し変わります)。したがって、以下の等式が成り立ちます。

ここで、 の部分は、議論の流れを考えると、森の辺の本数という解釈をすることができます。解析学に由来する留数などの概念と、組合せ論におけるグラフの辺の本数がこのような形で結びつくのは、なかなか面白いと個人的に思います。

また、上の結果から、以下の等式が成り立ちます。

こちらもよく知られた形の式です。

余談その3:多変数バージョン

ラグランジュの反転公式には多変数バージョンのものもあり、これも頑張ると組合せ論から証明できるようです。

https://lipn.univ-paris13.fr/~bacher/lagrange.pdf

上記の論文では、Cycle Lemma をうまいこと拡張し、Prüfer code なども活用することで、多変数の公式を証明しているようです。しかしながら、 変数の時ほど簡単な議論はできないようで、普通に難しいです。私はまだ内容を理解できていません。

おわりに

この証明を知った当初、個人的には結構面白い証明だと思ったのですが、探したところこの方法による証明はあまり出回っていないらしく、周知させるべく記事を書くに至りました。皆様の新たな知見・理解の助けになれば幸いです。

本記事を最後まで読んで下さり、ありがとうございました。

参考文献

Cycle Lemma - AtCoder Algorithm Lectures

Axel Bacher and Gilles Schaeffer. "Multivariate Lagrange inversion formula and the cycle lemma". 2013.

Rice_tawara459 icon
この記事を書いた人
Rice_tawara459

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2023年7月13日
アルゴリズム班はやとき王選手権「競(けい)プロ」を開催しました!
abap34 icon abap34
2021年4月18日
ベズー係数とN項の拡張ユークリッドの互除法
0214sh7 icon 0214sh7
2023年4月29日
CPCTF2023 PPC作問陣 Writeup
noya2 icon noya2
2023年4月21日
CPCTFを開催します
noc7t icon noc7t
2022年8月30日
【競プロer向け】母関数を習得しよう!
tatyam icon tatyam
2021年4月26日
CPCTF2021 作問者writeup by hukuda222
hukuda222 icon hukuda222
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記