= 1 ) N ) < は順序付けられた n 個の自然数の組全体の集合である。, そのような級数の理論は一変数の級数よりもトリッキーで、収束域は複雑である。例えば、冪級数 x �V$��,Z���`Y��벜��(���1�rD���%�l��T�z�!�w�_1?�|��\�!J�P�V(�@���-���eՔ�~�6��s���zX�шY`���_k��wCf�e��n�EV��"[i�����h�et�w� 8��!�뎩���;Ku������0��pzȬ��C��/`��i�� k�Ua���#@�j���C!�ګs�B�G̳�f5�������V ����(�AG��A�l���9�UB))�^��Km�V׻�dV+���ڃ� �$"��K��mV*�{�J=XF� �Pe@�R��e%E�P� | 前回は、いろいろな数え上げの問題が、多項式(形式的べき級数)の問題に変換されることを確認しました。しかしこれだけでは、通常の dp の考え方をそのまま翻訳しただけです。まぁデータの持ち方を多項式にしただけですからね。, 多項式に言い換えられる時点で、 dp の遷移の立式はできているわけです。一方で、時にはそのままの立式に基づくと計算量が大きすぎて、計算量の削減に迫られるときもあるでしょう。, 文字式の計算に帰着している場合も同様で、何らかの式変形の形により高速計算がしやすい形にもっていく必要があります。 このような事例を見ていきましょう。, \[(x+y)^n = \sum_{0\leq i\leq n}\binom{n}{i}x^iy^{n-i}\] が成り立つ。, $\binom{n}{i}$ は二項係数で、${}_n\mathrm{C}_i$ の表記をする場合もあります。, なお、$i < 0$ や $i > n$ に対して $\binom{n}{i} = 0$ なので、和のとる範囲は適当でよくて、例えば $\sum_{i=0}^{\infty}$ と書いたりしてもよいです。, $r\neq 1$ に対して、\[\sum_{i=0}^{n-1}r^i = \frac{1-r^n}{1-r}\]が成り立つ。, $F = \sum_{n=0}^{\infty} f_nx^n$ のような式を、形式的べき級数といいます。多項式もある種の形式的べき級数です。$G = \sum_{n=0}^{\infty} g_nx^n$ も形式的べき級数とするとき、これらの和・差・積が次の要領で定義されます:\[[x^n](F\pm G) = f_n \pm g_n,\qquad [x^n](FG) = \sum_{i+j=n}f_ig_j.\] 個別の係数の定義には無限和が現れないため、極限操作などを必要とせず純代数的に定義が可能です。, 重要な性質として、$F\pm G $・$FG$ の $n$ 次未満の部分は $F,G$ の $n$ 次未満だけから決まります。$n$ 次未満だけに注目すると、形式的べき級数の演算規則は多項式の演算(より正確には多項式 $\pmod{x^n}$ の演算) と同一です。, このことから、形式的べき級数の和・差・積は、交換法則・結合法則・分配法則など、演算に関する自然な要請を十分に満たすことも分かります。(※ 専門用語で、環をなすという)(※ 多項式環から形式的べき級数環を得る操作は、「環のイデアルによる完備化」という操作の特殊な場合。重要な類似物に、$p$ 進整数環など。), 「位相」というのは、「極限」を定義するための構造です。言葉を持ち出しましたが、位相空間などの知識は必要ありません。また厳密なことが分かっていなくても、雑に扱ってしまって正しい結論になることが多いので、難しそうならば読み飛ばしても大丈夫です。(初めここは書くつもりがなかったが、よく見たら必要だったのであわてて書いています), 形式的べき級数 $F$ は、最低次の項が高いほど、$0$ に近いと考えて扱います。このことを利用して、形式的べき級数の列の極限を定義することができます:, 【定義】形式的べき級数列 $F_1,F_2,F_3\cdots$ が $F$ に収束するとは、任意の $k$ に対してある $N$ が存在して、$n\geq N$ ならば $F_n$ と $F$ の $k$ 次未満部分が一致することを指す。, 形式的べき級数 $F,G$ に対して $FG = 1$ が成り立つとき、$F$ を $G$ の(あるいは $G$ を $F$ の)逆元といい、$F = \frac{1}{G}$ などと書きます。$F\cdot \frac{1}{G}$ を $\frac{F}{G}$ と書きます。, いわゆる分数と同じ表記をしますが、実際に分数と同様の計算ルール($\frac{F_1}{G_1}\pm\frac{F_2}{G_2}=\frac{F_1G_2\pm F_2G_1}{G_1G_2}$ など)を満たすことが確認できます(分数の計算ルールは、結合法則・分配法則などから導かれます)。逆元としては、次が最頻出です。, \[\frac{1}{1-x} = 1 + x + x^2 + x^3 + x^4 + \cdots = \sum_{n=0}^{\infty}x^n.\], 実際、$(1-x)(1+x+x^2+x^3+\cdots)$ を計算してみようとすると、係数が定数項を除き $0$ になることが確認できます。 同様に、$F$ が定数項を持たない形式的べき級数であるとき, \[\frac{1}{1-F} = 1 + F + F^2 + F^3 + F^4 + \cdots = \sum_{n=0}^{\infty}F^n.\], 右辺はちゃんとやると、上述の「形式的べき級数環の位相」で述べた極限概念です。部分和が等比数列の和から $\frac{1-F^N}{1-F}$ の形、左辺との差は $\frac{F^N}{1-F}$ となりますが、$F$ に定数項がなければこの式に $N$ 次未満の項は存在せず、正当性が保証されます。, 【問題】$N$ を正の整数の和として表す方法を数え上げよ。ただし、和の順序の違いは区別する。, $N = 4$ なら、$4, 1+3, 3+1, 2+2, 1+1+2, 1+2+1, 2+1+1, 1+1+1+1$ の $8$ 通りがあります。 この問題は、和をとる個数 $n$ ごとに計算すると、次のように多項式計算に帰着できました。, $F = x+x^2+x^3+x^4+\cdots$ とするとき、$[x^N]\sum_{n=0}^{\infty}F^n$ が答である。, 実はこの時点で、一番短い解法(組合せ解釈で一瞬)と比べるとかなり遠回りをしてしまっています。無限和になっていますし。, それでも「文字式を式変形で簡単にしていく」という視点で自然に解けることを確認しましょう。, まず、$F = x\cdot \frac{1}{1-x} = \frac{x}{1-x}$ です。調べたいものは $G = \sum_{n=0}^{\infty}F^n$ ですが、これは $G = \frac{1}{1-F}$ と表せます。$F = \frac{x}{1-x}$ を代入して整理すると、\[ G = \frac{1-x}{1-2x}\] であることが分かります。, \[G = (1-x)\cdot \frac{1}{1-2x} = (1-x)(1+2x+4x^2+8x^3+\cdots)\] などとして計算すると、$N$ 次の係数は、$N=0$ のとき $1$、$N\geqq 1$ のとき $2^N – 2^{N-1} = 2^{N-1}$ であることが分かります。, あるいは、次のような変形をしても同じ結論が得られます: \[G = \frac12 + \frac12\cdot\frac{1}{1-2x} = \frac12 + \frac12(1+2x+4x^2+8x^3+\cdots).\], とにかく文字式の問題に翻訳できてさえいれば、あとはその文字式のなるべく自然な表示を探ってあげることで、数え上げ対象の簡単な表示や計算方法が見えてきます。文字式の式変形の力量を、直接的に数え上げに活かすことができます。, なお、恐らく最も易しい方法は、組合せ的な解釈(対応付け)を利用するもの。4=1+2+1 → 〇|〇〇|〇 (1個・2個・1個の〇の間に仕切りを入れる)とすると、4の分割が、「3ヶ所に対して仕切りを入れる・入れないの2択を行うこと」と対応して、$2^3$ 通り。, 文字式が因数分解されると、それに従って計算手順が簡略化される場合があります。例えば、次を見てみましょう。, 【問題】出典:ARC-012 リンク:■座標平面上を、原点から出発してランダムウォークする。$T$ 秒後に $(a,b)$ に到達する移動経路数を求めよ。※ 二項係数の事前計算のもと、1件あたり $O(1)$ 時間で計算せよ, $F = (x + x^{-1} + y + y^{-1})$ とするとき、$[x^{a}y^{b}] F^{T}$ を求めよ。, $F$ は、次のように因数分解できます:\[ F = (xy)^{-1}(x^2y + xy^2 + x + y) = (xy)^{-1}(xy+1)(x+y).\] $F^T$ を二項定理で展開してみましょう。, \[\begin{align*} (xy)^{-T}(xy+1)^{T}(x+y)^{T} &= (xy)^{-T} \sum_{i,j}\binom{T}{i}\binom{T}{j}(xy)^{i}1^{T-i}x^{j}y^{T-j}\\ &= \sum_{i,j} \binom{T}{i}\binom{T}{j} x^{i+j-T}y^{i-j}.\end{align*}\], したがって、$[x^{a}y^{b}] F^{T}$ を計算するに際しては、$I = \{(i,j)\mid i+j-T=a, i-j=b\}$ として $\sum_{(i,j)\in I}\binom{T}{i}\binom{T}{j}$ を計算すればよいです。$I$ は高々 1 元集合になって、計算結果が得られます。, この問題は 1 次元なら簡単ですので、2 次元の場合も移動回数を $x$・$y$ 方向に割り振れば、経路数は適当な二項係数の積で表されます。よって、二項係数のシグマ計算による立式がすぐに出来て、これをうまく処理しても解くことができます。二項係数のシグマ計算を頑張る際にも多項式の道具はとても便利で、このことは(【2回あとくらいの記事】)で取り扱う予定です。, 本問題は、DEGwerさんの、数え上げPDF(■)でも取り上げられています(14.3節)。45度回転する、要するに $(x,y)$ の代わりに $(x+y,x-y)$ を考えるというものです。, $A = x^{1/2}y^{1/2}$, $B = x^{1/2}y^{-1/2}$ とすると、$f = (A+A^{-1})(B+B^{-1})$ と書くことができて、1 回の遷移が「$A$ または $A^{-1}$ を選ぶ」「$B$ または $B^{-1}$ を選ぶ」を独立に行うことだと思えます。これが、$45$ 度回転盤面で左右・上下の移動を独立に選ぶことと対応します。, 文字式に対する自然な操作から、数え上げに対するアドホックな言い換えが自然に導かれていることに注目してください。(文字式の操作・数え上げの言い換え、それぞれがどのくらい自然に思えるのかは人それぞれなんですが), 二項係数の多重和をいじると思っても、45 度回転のような言い換えを探すと思っても、かなり上位の問題になると思いますが、多項式を因数分解するという視点に立てば類題の範疇になっていると思います。. ⁡ x Π 問題文 → ■自分の提出 → ■公式解説 → ■ : は総乗を表す。より便利な多重指数表記を用いてこれは, と書くことができる。ただし { ( ) のような分数冪も許されていない(がピュイズー級数(英語版)を参照)。係数 an が x に依存することは許されていない。したがって例えば, 冪級数は変数 x がある値のときには収束し、別の値のときには発散するかもしれない。(x − c) の冪によるすべての冪級数 f(x) は x = c において収束する。(正しい値 f(c) = a0 を得るには数式 00 を 1 と解釈しなければならない。)c が唯一の収束点でなければ、必ず 0 < r ≤ ∞ なるある数 r が存在して、級数は |x − c| < r のときにはいつでも収束し、|x − c| > r のときにはいつでも発散する。この数 r をその冪級数の収束半径 (radius of convergence) と呼ぶ。一般に収束半径は次で与えられる:, (これはコーシー・アダマールの定理であり。記号の説明は上極限と下極限を参照。)それを計算する速い方法は, 級数は |x − c| < r に対して絶対収束し、{x : |x − c| < r} の任意のコンパクト部分集合上一様収束する。つまり、級数は収束円板の内部において絶対かつコンパクト収束する。, |x − c| = r に対しては、級数が収束するか発散するかの一般的なステートメントを述べることは出来ない。しかしながら、実変数の場合には、級数が x において収束するならば級数の和は x において連続であるというアーベルの定理がある。複素変数の場合には、c と x を結ぶ線分に沿っての連続性しか主張できない。, 2つの関数 f と g が同じ中心 c のまわりの冪級数で書かれているとき、それらの関数の和や差の冪級数は項ごとの加法と減法によって得られる。つまり、, 数列 ? ベキ関数の和によっていろいろな関数を作ることができます。 これを自在に作るためにはどうしたら良いのでしょうか? 今度は、ある関数は無限のベキ関数の級数に表すことができるとしましょう。 そうすると、微分をすることで、それぞれの係数を求めることができます。 x n 解法 f べき級数とは • 級数とは? →数列{an}の各項を順に加えた式のこと.(p.15を参照) • べき級数とは? →級数の各項がxのべき関数cnxn である級数のこと(cn は定数). は自然数全体の集合であり、したがって は数列 an と bn の畳み込みと呼ばれる。, 関数が冪級数として与えられると、それは収束領域の内部で微分可能である。それは極めて容易に微分および積分ができる。各項ごとに扱えばよい:, R あるいは C の開集合上定義された関数 f が解析的 (analytic) であるとは、局所的に収束冪級数によって与えられることをいう。つまり、すべての a ∈ U はある開近傍 V ⊆ U を持ち、a を中心に持つ冪級数ですべての x ∈ V に対して f(x) に収束するものが存在することをいう。, 収束半径が正のすべての冪級数はその収束域の内部で解析的である。すべての正則関数は複素解析的である。解析関数の和や積は解析的であり、商も分母が非零である限り正則である。, 関数が解析的であれば、無限回微分可能であるが、実の場合には逆は一般には正しくない。解析関数に対し、係数 an は, と計算できる。ここで 簡単な微分方程式を例題にとり、級数解の解法の意味とどのように級数展開するか説明する。初期条件は数列の初項を与え、展開係数が数列で表されため展開係数を求めることができる。整級数を使った解法をわかりやすく説明する。 } x x {\displaystyle x^{1/2}} c (7.12) C として充分大きな半径 R の円周をとる ... 章 コーシーの積分公式と複素関数のべき級数展開 図 7.3 ポアソンの積分表示(例 49 )の積分路. | 既に埋まってる数値部分はそれっぽく遷移。それ以外は、$10^k$ の位のところに多項式 $F_k = \sum_{n=0}^{9}x^{10^kn}$ を当てます。, これらの積を計算すればよいですが、指数の $\pmod{13}$ での値だけが問題です。よって、$x^{13}=1$ というルールを追加した上で多項式の積を計算していくことになります(詳しい人向け:多項式環の剰余環 $K[X]/(X^{13}-1)$ における積)。, $x^5$ などをかけるのは係数の位置をずらすだけです。さらに、$F_n = F_{n+6}$ を利用すると、次が本質ということが分かります:, $F_0^{a_0}F_1^{a_1}\cdots F_5^{a_5}$ を($x^{13} = 1$ のもとで)計算せよ。$\sum a_i = N \leqq 10^5$。, 愚直計算で、多項式の積を $N$ 回程度計算することになります。(この方法でも解けて、コンテスト想定解と同等)。しかし、大きな $a$ に対して $F^a$ の計算する方法といえば、$\Theta(\log(a))$ の回数の乗算で計算できることはよく知られた通りかと思います。, 結局、この問題の主要部は $N$ について $\Theta(\log N)$ 時間で計算できます(’?’ の位置を検出するところに $\Theta(N)$ 要るので結局全体では $\Theta(N)$ 解法)。, 本問題で計算量が落ちることに言及していた人は少なかったような気がします。繰り返し二乗法の適用にあたり、多項式の積の, が本質的に使われています。が、多項式に対するこれらの性質は、新しいアルゴリズム知識として学ばずとも、空気のように使える方が多いのではないでしょうか?上の解説でも、交換法則や結合法則を利用した場所を明示していません。, などの形になると思いますが、多項式と違って高校数学までで馴染みが薄い人の方が多いと思います。また、この手の高速化は「行列累乗」というくくりで定跡化され語られているのをよく見かけますが、多項式で解釈できる場合にはそのようにしておいた方が、計算量も有利になります($D$ 次多項式の乗除の愚直計算は $\Theta(D^2)$ で、$D$ 次正方行列の乗除の愚直計算は $\Theta(D^3)$ です)。, 例をたくさん挙げようとすると、収集がつかなくなってきそうでしたので、この辺でいったん終わります。, ときには、その構造を代数的な変形として導出できるだろうということになります。(強めの主張ですが、例外はほぼ存在しないと思います。「問題を多項式の形に表すこと」の時点で困難な問題はたくさんあります。), 今回取り上げたのは、どの問題も、多項式という考え方がなくとも解けるものばかりです。またひとつひとつの問題自体は、組合せ的解釈などによる方が簡単に、あるいは自然に立式できていると感じる方も多いと思います。ただ、一見すると全く異なる数え上げテクニックが、文字式を簡単にするという共通の考え方から同じように導かれているところは注目に値すると思います。, ・ABC 159 F – Knapsack for All Segments ・JSC2019-qual F-Candy Retribution・KUPC2019 K-One or All. 1 c 任意の多項式は任意の中心 c のまわりの冪級数として容易に表すことができる。 ただし係数のほとんどは 0 になる。 冪級数は定義により無限個の項を持つからである。例えば、多項式 f(x) = x 2 + 2x + 3 は中心 c = 0 のまわりの冪級数として = + + + + + ⋯と書くことができ、また中心 c = 1 のまわりでは log (2)式変形による解法の導出(3)線形漸化式と形式的べき級数 ( {\displaystyle 1+x^{-1}+x^{-2}+\cdots } 問題文 → ■自分の提出 → ■公式解説 → ■ n ( x 1 AtCoder 第一回 日本最強プログラマー学生選手権 -予選- → ■ 問題F – Candy Retribution → ■ 自分の提出 → ■ 私はこの問題は、コンテスト中には解ききれなかった(解き方は分かったものの、残り時間がなくて実装を終えられなかった)のですが、公式解説にはない、形式的べき級数による考察をとったので、考察の要点などを書き残しておこうと思います。また、この問題をきっかけとして、形式的べき級数の数え上げへの基本的 … | 2 ある種の数え上げの計算は、多項式・形式的べき級数に対する計算と結び付けることができます。数え上げの問題を、多項式・形式的べき級数に対する計算と読み替えて、代数... 概要 = ? | ) $F_{i} = 1 + x + x^2 + \cdots + x^{a_i}$ とする。$[x^K] F_1F_2\cdots F_N$ を計算せよ。, 一般に、$d$ 次多項式の積は愚直計算で $\Theta(d^2)$ の計算量が必要になって、$K$ 次式の積を $N$ 回行うのは本問の制約では無理です(FFTによる任意mod乗算 $N$ 回は…ややきついくらい?)。, $F_i$ に対して何らかの構造を見出して、計算量を落としましょう。因数分解のときと同様にして、多項式に対するよりいい感じの表示を探していきます。, 等比数列の和から、$F_i = \frac{1-x^{a_{i}+1}}{1-x}$ と式変形できます。割り算ですが、疎な(係数がほとんど $0$ であるような)多項式 2 つで表せており、より上手く $F_i$ を扱えそうです。さらに、\[F_i = \frac{1}{1-x}\cdot (1-x^{a_i+1})\] と表してみましょう。「$F_i$ を因数分解した」と考えても、まぁ良いと思います。(多項式の範囲だけで物事を見ているとこの変形はできなくて、考察の範囲を形式的べき級数に広げて考える利点が現れています。), 結局のところ、ある多項式 $P$ に $F_{i}$ をかける操作は、次のように分解することができます。, 一般に、$P = \sum_{n=0}^{\infty}p_nx^n$, $\frac{P}{1-x} = Q = \sum_{n=0}^{\infty}q_nx^n$ としてみましょう。このとき、$(1-x)Q = P$ ですから、$[x^n]$ 部分を比べて $n\geqq 1$ に対して $q_n – q_{n-1} = p_n$ が成り立つことが分かります。したがって $q_n$ は漸化式 $q_n = q_{n-1} + p_n$ と初項 $q_0 = p_0$ で計算していくことができて、1 件あたり $\Theta(1)$、$d$ 次以下の部分を $\Theta(d)$ で計算できます。, ※ 一般に、疎な多項式による乗法・除法は高速に計算できます。※ 結局、$\{q_n\}$ は $\{p_n\}$ の累積和です。 $\frac{1}{1-x} = 1 + x + x^2 + \cdots$ に基づく説明も可能で、その方が分かりやすいかもしれません。「疎な式への分解」を発見すれば自然に計算量が落ちるという思考法を強調するため、上記の説明をとりました。 分母が $2$ 次式など状況が変わっても対応できます。, 操作2はどうでしょう?これは簡単で、係数の列を $(a_i+1)$ 個ずらして引くだけです。結局、$F_i$ による dp 遷移は、, なお、形式的べき級数の積は交換法則を満たすため、この 2 つの手順を逆順に行っても同じ計算結果が得られることが分かります。$N$ 個の積 $f_1\cdots f_N$ を計算するにあたって、$\prod_i(1-x^{a_i})$ を計算したあとで $N$ 回累積和をとるような計算手順も可能であることが分かります。お好みの順序で実装しましょう。, もちろん多項式を使う必要はないです。ふつうにやれば、$\mathrm{dp}[n] + \mathrm{dp} [n-1] + \cdots + \mathrm{dp} [n-a_i]$ といった形で dp 遷移式に現れます。区間和を計算する常套手段といえば累積和を補助的に利用する。これは多項式を知らずとも典型ですね。, ちなみにこの問題、 $N = 10^5$ とかでも解けそうですね…この辺の話もそのうち書きます。, 【問題】出典:ARC028-D リンク:■ $a_1,\ldots, a_N$ が与えられる。自然数 $0\leqq x_i\leqq a_i$ を選んで、$x_1+\cdots + x_N = K$ となるようにする方法の総数を求めよ。いや、これは少し簡単過ぎるので、ちょっとした注文も追加する…「$x_k = c_k$ のもとで数え上げよ」というクエリ $Q$ 個に答えよ。※ $N\leqq 2000, 0\leqq a_i\leqq M\leqq 2000, Q\leqq 500000$, 前問題の変形バージョン。クエリが $Q$ 個ありますが、たくさんありすぎるので結局すべての $(k, c_k)$ に対して計算することが想定されています。, $F_{i} = 1 + x + x^2 + \cdots + x^{a_i}$ とおく。各 $i$ に対して、$\prod_{j\neq i}F_j$ の $M$ 次以下の部分を計算せよ。, 全体集合から 1 元抜いたところで何か集計する場合には、左右からの累積を計算するのが典型テクニックです(例:■)。しかし、左右からの積をマージするところに $\Theta(M^2)$ かかるので、それを $N$ 回やるのはつらめです(※ それでもFFTで高速化すればACが得られます)。もう少し良い構造を見つけたいところです。, という方法も、ごく自然に考えられます。$F_i$ による除法はどうなるでしょうか?, $F_i = \frac{1-x^{a_i+1}}{1-x}$ でした。よって形式的べき級数環において、\[ \frac{F}{F_i} = F\cdot (1-x)\cdot \frac{1}{1-x^{a_i+1}}\] と書くことができます。$F$ から $\frac{F}{F_i}$ を得る操作は、次の通りです:, どちらも疎な多項式による乗算・除算なので、$\Theta(M)$ で計算できて目的が達成されます。より具体的な係数に対する操作としては、, 累積和による dp 更新・戻す dp といった個別の思えるテクニックが、文字式で見ると単純な掛け算・割り算で同時に説明されています。立式で混乱する要素も少ないでしょう。(ほんと?).

Q Posket 剣心 4, スキャナ レンタル 札幌 10, 溶接 ビード 間隔 8, Youtube プレミアム 複数端末 22, Tbs ドラマ視聴率 歴代 12, はやぶさ 最後の写真 海外の反応 13, Garnet Crow 曲 7, So 04h Root 38, 東進 ついていけ ない 10, Pso2 コラボ Sao 5, バーサ ロフト ジャケット 手入れ 4, オリオン テレビ 故障 電源 5, 水 耕 栽培 活力剤 12, 離婚後 同棲 いつから 5, グレー 長毛 猫 里親 15, 無料 映画 アニメ 日本語 フル 7, Sc 02h Usb接続 6, 細マッチョ 筋トレ メニュー 一週間 7, うわっ ダマ され た大賞2020 動画 23, Scansnap 保存先 Icloud 5, 掛け算 暗算 3桁 4, バジル すぐ 枯れる 5, 黒い砂漠 女子会 Ban 5, 357 渋滞 朝 5, パワプロ 鉄腕 強い 58, 炭酸水 実験 おもしろ 39, 急性膵炎 カルシウム つねぴー 8,