Official

M - Formula Editorial by shakayami


答えを\(f(n)\)としたとき、以下の形式的べき級数を考えましょう。

\[\sum_{n=0}^{\infty}f(n)x^n\]

ただし、便宜上\(f(0)=0\)とします。

以下のように級数を定めます。

  • \(A(x)\)\(x^N\)の係数が「文字数が\(N\)であって、1-9が使えるときの式全ての答えの総和」であるような級数

  • \(B(x)\)\(x^N\)の係数が「文字数が\(N\)であって、1-9と*が使えるときの式全ての答えの総和」であるような級数

  • \(C(x)\)\(x^N\)の係数が「文字数が\(N\)であって、1-9と*と+が使えるときの式全ての答えの総和」であるような級数

  • \(D(x)\)\(x^N\)の係数が「文字数が\(N\)であって、1-9が使えるときの式の総数」であるような級数

  • \(E(x)\)\(x^N\)の係数が「文字数が\(N\)であって、1-9と*が使えるときの式の総数」であるような級数

ここで、

\[C(x)=\sum_{n=0}^{\infty}f(n)x^n\]

について、\([x^n]C(x)\)が求められれば十分です。

ここで、\([x^n]P(x)\)を,\(P(x)\)\(x^n\)の係数です。

\(A,B,C,D,E\)のうち簡単なものから求めましょう。

すると、

\[A(x)=\dfrac{45x}{(1-9x)(1-90x)}\]

\[D(x)=\dfrac{9x}{1-9x}\]

となります。

\(B(x)\)については、\(k\)個の数があって、\(i\)番目は\(a_i\)\((1\leq a_i)\)であるような状況を考えます。

ここで、\(k\)の範囲としては、\(1\leq k,2k-1\leq N\)

であり、さらに文字数としてのつじつま合わせを考えると

\[a_1+\cdots+a_k=N-k+1\]

となります。

すると、

\[[x^N]B(x)=\sum_{k}\sum_{\sum a_i=N-k+1}\prod_{i=1}^{k}[x^{a_i}]A(x)\]

であり、これは

\[[x^N]B(x)=\sum_{k}[x^{N-k+1}]A(x)^k=[x^{N+1}]\sum_{k}\{xA(x)\}^k\]

これを踏まえると、

\[[x^N]B(x)=[x^{N+1}]\dfrac{xA(x)}{1-xA(x)}\]

であるため。

\[B(x)=\dfrac{A(x)}{1-xA(x)}=\dfrac{45x}{1-99x+765x^2}\]

同様の手法で、\(E(x)\)も計算できて、

\[E(x)=\dfrac{D(x)}{1-xD(x)}=\dfrac{9x}{1-9x-9x^2}\]

となります。

\(C(x)\)については、式が\(k\)個の和に分解されて、各項が\(a_i\)文字で表現されているような状況を考えます。

ただし、\(1\leq k,2k-1\leq N,a_i\geq 1,\sum_{i=1}^{k}a_i=N-k+1\)です。

すると、

\[[x^N]C(x)=\sum_{k}\sum_{\sum a_i=N-k+1}\sum_{i=1}^{k}[x^{a_i}]B(x)\prod_{i\neq j}[x^{a_j}]E(x)\]

よって、

\[[x^N]C(x)=\sum_{k\geq 1}[x^{N-k+1}]\sum_{i=1}^{k}B(x)E(x)^{k-1}\]

\[[x^N]C(x)=[x^N]\sum_{k\geq 1}kB(x)(xE(x))^{k-1}\]

\[[x^N]C(x)=[x^N]\dfrac{B(x)}{(1-xE(x))^2}\]

よって、

\[C(x)=\dfrac{45x-810x^2+2835x^3+7290x^4+3645x^5}{1-117x+2592x^2-17901x^3+2673x^4+215784x^5+247860x^6}\]

となります。

級数の値については、Bostan-Mori Algorithmなどを使えば高速に計算することができます。

posted:
last update: