形式的冪級数(FPS)を頑張って理解しようとするメモ
概要
何回勉強しても忘れてしまう「形式的冪級数」についてのメモ.
FPS が使えると何が嬉しいのか
いわゆる「数え上げ」ができるようになる.DP で解けるやつも FPS で解けたりする.
FPS 学習ステップ
高校卒業程度の数学能力を有している前提で,以下 2 ステップが必要.
- 「数え上げ → 多項式・形式的冪級数への言い換え」ができるようになる
- 「多項式・形式的冪級数 → 実際の係数の値を求める」ができるようになる
ステップ1. 「数え上げ → 多項式・形式的冪級数への言い換え」
まずは次の記事を読む.とてもわかりやすい.
また,分割数や累積和からの言い換えは,以下でも解説されている.読んでみると理解を深められるはず.
結局,どうやって言い換えるのか
$f=\sum_{(状態)}\ (場合の数)x^{(状態を表す式)}$ の形で式を書く.この形の多項式同士を掛け合わせると,指数部(状態を表す式)を見ると加算,係数(場合の数)を見ると乗算が行われることになる.状態 $n$ に対応する場合の数が欲しいときは, $f$ の $x^n$ の係数を求めればよい.$f$ の $x^n$ の係数を,$[x^n]f$ と書く.
式変形が必要な場合
形式的冪級数で表せたとしても,そのままでは計算量的に扱えないこともある.そのようなときは,式変形を行って,頑張って扱える形にする.
また,式変形を行うことで見通しがよくなる.
式変形では,普通の文字式と同じく,等比数列の和の公式が使えるほか,類似するいくつかの典型的変形パターンが使える.
ステップ2. 多項式・形式的冪級数 → 実際の係数の値を求める
FPS ライブラリを借りるのが手っ取り早い.
以上