| For All Solvers
OMCE002

OMCE002(C) - ラグランジュの補間公式

ユーザー解説 by ojamesi1357

 自分は公式解説のような初手に至らなかったので,以下のように解きました.その解法を(備忘録も兼ねて)まとめておこうと思います.まずは,ラグランジュの補間公式についての紹介です.


ラグランジュの補間公式. N+1N+1 個の点 (x0,y0),(x1,y1),(xN,yN)(x_0, y_0), (x_1, y_1), \ldots (x_N, y_N)x0<x1<<xNx_0\lt x_1 \lt \cdots \lt x_N としておく)がある.これらすべてを通る NN 次以下の多項式 f(x)f(x) は,以下のように表される: f(x)=n=0Nyngn(x)gn(xn). f(x) = \sum_{n=0}^{N} y_n \dfrac{g_n(x)}{g_n(x_n)}. ただし,gn(x)=kn(xxk)g_n(x)=\displaystyle \prod_{k\neq n} (x-x_k) である.


 はじめてこの式を見たという方は,中学・高校数学の問題集にも載っているような「指定された 2 (3)2\ (3) 点をすべて通るような直線(放物線)の式を求めよ 」という問題を例にしてこの式を書き下してみると,「これが何をやっているものなのか」について感覚を掴めるかと思います!
 早速,今回の問題にラグランジュ補間を適用してみましょう.


今回の場合 N=10000,xn=n,yn=(n+1)2nN=10000, x_n=n, y_n =(n+1) 2^n とすればよさそうである.まずは gn(xn)g_n(x_n) を求める.

gn(xn)=gn(n)=(n0)(n1)1(1)(2)(nN)=n! (Nn)! (1)Nn. \begin{aligned} g_n(x_n)=g_n (n) &= (n-0)(n-1) \cdots 1\cdot (-1)(-2) \cdots (n-N)\\ &= n!\ (N-n)!\ (-1)^{N-n}. \end{aligned}

今回求めるのは,f(N+1)f(N+1) であるから,gn(N+1)g_n(N+1) も求めておく.

gn(N+1)=kn(N+1k)=(N+1)!N+1n. g_n(N+1) = \displaystyle \prod_{k\neq n} (N+1-k) = \dfrac{(N+1)!}{N+1-n}.

ここで,ラグランジュの補間公式を適用すると

f(N+1)=n=0N(n+1)2n(N+1)!N+1n1n! (Nn)! (1)Nn=n=0N(n+1)(N+1)!(Nn+1) (Nn)! n!2n(1)Nn=n=0N(n+1) N+1Cn 2n(1)Nn=n=0NN+1Cn 2n(1)Nn=A+n=0Nn N+1Cn 2n(1)Nn=B \begin{aligned} f(N+1) &= \sum_{n=0}^{N} (n+1) 2^n \dfrac{(N+1)!}{N+1-n} \cdot \dfrac{1}{ n!\ (N-n)!\ (-1)^{N-n}}\\ &= \sum_{n=0}^{N} (n+1) \dfrac{(N+1)!}{(N-n+1)\ (N-n)!\ n!} 2^n (-1)^{N-n}\\ &= \sum_{n=0}^{N} (n+1)\ {}_{N+1} \mathrm{C} _{n}\ 2^n (-1)^{N-n}\\ &= \underbrace{\sum_{n=0}^{N} {}_{N+1} \mathrm{C} _{n}\ 2^n (-1)^{N-n}}_{=A} + \underbrace{\sum_{n=0}^{N} n\ {}_{N+1} \mathrm{C} _{n}\ 2^n (-1)^{N-n}}_{=B} \end{aligned} と変形できる.A,BA,B それぞれについて,次のように計算できる.

A=n=0NN+1Cn 2n(1)N+1n=(n=0N+1N+1Cn 2n(1)N+1nN+1CN+1 2N+1(1)N+1(N+1))=((2+(1))N+12N+1)=2N+11. \begin{aligned} A &= -\sum_{n=0}^{N} {}_{N+1} \mathrm{C} _{n}\ 2^n (-1)^{N+1-n} \\ &= -\Biggl(\sum_{n=0}^{N+1} {}_{N+1} \mathrm{C} _{n}\ 2^n (-1)^{N+1-n} - {}_{N+1} \mathrm{C} _{N+1}\ 2^{N+1} (-1)^{N+1-(N+1)} \Biggl)\\ &= -\Bigl( \bigl(2+(-1)\bigl)^{N+1} - 2^{N+1} \Bigl)\\ &= 2^{N+1}-1. \end{aligned}

B=n=0Nn (N+1)!n (n1)! (N+1n)! 2n(1)Nn=(N+1)n=1N N!(n1)! (N+1n)! 2n(1)Nn=(N+1)n=1NNCn1 2n(1)Nn=2(N+1)n=1NNCn1 2n1(1)N+1n=2(N+1)(n=1N+1NCn1 2n1(1)Nn+1NCN+11 2N+11(1)N+1(N+1))=2(N+1)((2+(1))N2N)=2(N+1)+(N+1) 2N+1. \begin{aligned} B&= \sum_{n=0}^{N} n\ \dfrac{(N+1)!}{n\ (n-1)!\ (N+1-n)!}\ 2^n (-1)^{N-n}\\ &= (N+1) \sum_{n=1}^{N} \ \dfrac{N!}{(n-1)!\ (N+1-n)!}\ 2^n (-1)^{N-n}\\ &= (N+1) \sum_{n=1}^{N} {}_{N} \mathrm{C} _{n-1}\ 2^n (-1)^{N-n}\\ &= -2(N+1) \sum_{n=1}^{N} {}_{N} \mathrm{C} _{n-1}\ 2^{n-1} (-1)^{N+1-n}\\ &= -2(N+1) \Biggl( \sum_{n=1}^{N+1} {}_{N} \mathrm{C} _{n-1}\ 2^{n-1} (-1)^{N-n+1} - {}_{N} \mathrm{C} _{N+1-1}\ 2^{N+1-1} (-1)^{N+1-(N+1)} \Biggl)\\ &= -2(N+1) \Bigl( \bigl(2+(-1)\bigl)^{N} -2^N \Bigl)\\ &= -2(N+1)+(N+1)\ 2^{N+1}. \end{aligned}

以上より f(N+1)=2N+112(N+1)+(N+1) 2N+1=N 2N+1+2N+22N3. \begin{aligned} f(N+1) &=2^{N+1}-1 -2(N+1)+(N+1)\ 2^{N+1}\\ &= N\ 2^{N+1} +2^{N+2} -2N-3. \end{aligned} と公式解説にある表示を得ることができた.


 このユーザー解説の執筆にあたり,高校数学の美しい物語さんの記事(https://manabitimes.jp/math/726 )を参考にさせていただきました.最後に,ラグランジュの補間公式が使えるかもしれないOMCの問題を,自分が記憶している限りでまとめて終わりにします(ネタバレ注意です).

関連するOMCの問題・解説記事(ネタバレ注意) ・OMC176B(https://onlinemathcontest.com/contests/omc176/tasks/6981
ラグランジュ補完を使って愚直にやることができるかもしれません.この問題のユーザー解説においても,ラグランジュ補完について紹介されています.

・OMC114E(https://onlinemathcontest.com/contests/omc114/tasks/5248
ユーザー解説中に,ラグランジュ補完を用いるパートが出てきます.

・OMC081F(https://onlinemathcontest.com/contests/omc081/tasks/2518
114Eの math_wakaranai さんのユーザー解説でも紹介されていますが,ここにもリンクを貼っておきます.