【学习笔记】自然数幂和

本文介绍了三种解决自然数幂和问题的方法:拉格朗日插值法、第二类斯特林数法和伯努利数法。拉格朗日插值法在(O(n^2))时间内求解多项式;第二类斯特林数法通过递推公式与幂运算的关系,可以借助FFT在(O(nlog n))时间内求解;伯努利数法适用于固定(m),求解不同(n)的自然数幂和,同样在(O(nlog n))时间复杂度内完成。每种方法在特定场景下有不同的效率优势。
摘要由CSDN通过智能技术生成

温馨提示: 本文文档大小约\(11KB\).

引入

自然数幂和是一个我们从小就耳熟能详的经典问题。定义\(S(n,k)=\sum^{n}_{i=0} i^k\), 显然\(S(n,k)\)为关于\(n\)的不超过\((k+1)\)次多项式,那么给定\(k\), 如何快速求出这个多项式的系数?或者给定\(n\)\(k\), 如何快速求出\(S(n,k)\)? 这就是本文的讨论内容。

本文介绍三种不同的方法——拉格朗日插值法、第二类斯特林数法和伯努利数法,这三种方法在解决不同的问题上各有优劣。

符号约定

\(x^{\underline n}\)表示\(x\)\(n\)次下降幂,即\(x^{\underline n}=\prod^{n}_{i=1}(x-i+1)\).

本文中提到的所有\(i\), 与虚数均无关系。

本文中所有运用数学归纳法进行证明的定理,归纳奠基均省略,请读者自行处理。

拉格朗日(Lagrange)插值法

概述

Lagrange插值法的应用范围很广,给定任意\((n+1)\)个互不相同的点值\((x_i,y_i)\) (\(i=0,1,...,n\)),其可以在\(O(n^2)\)时间内求出一个不超过\(n\)次的多项式\(f(x)\),满足对于任意\(i\), \(f(x_i)=y_i\). (“互不相同”指对于任意\(0\le i<j\le n\)\(x_i\ne x_j\))

暴力做法

\(f(x_i)=\sum^{n}_{i=0} a_ix^i\). 根据\((n+1)\)个点值,我们可以列出\((n+1)\)个方程,第\(j\)个形如\(\sum^{n}_{i=0}x_j^ia_i=y_j\).

直接高斯消元求解,时间复杂度\(O(n^3)\).

插值多项式的唯一性

定理1 给定任意\((n+1)\)对互不相同的点值\((x_i,y_i)\),恰好存在一个不超过\(n\)次的多项式\(f(x)\),满足对于任意\(i\), \(f(x_i)=y_i\).

证明 根据暴力做法,我们就是要证明方程左边的\((n+1)\times (n+1)\)的系数矩阵可逆。

实际上系数矩阵就是著名的范德蒙德(Vandermonde)矩阵: \(\begin{bmatrix} 1&1&1&...&1\\ a_0&a_1&a_2&...&a_n\\ a_0^2&a_1^2&a_2^2&...&a_n^2\\ & & & ... & \\ a_0^n&a_1^n&a_2^n&...&a_n^n\end{bmatrix}\)

可以证明,该矩阵行列式

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值