前言
自然数幂和,
暴力
咳咳这个就不用说了。当然不要太暴力了,像求幂可以用快速幂。
高斯消元
我们仔细观察发现,对于求自然数k次方和的公式应该是k+1次的。那么我们可以想到,列个方程组让高斯消元解决,然后得到各项系数后直接代入即可。
复杂度 O(k3)
矩阵乘法
发现方法有点问题,先留坑
倍增
我们设 f(n,k)=∑ni=1ik
那么现在我们要计算f(n,k)怎么办呢?
我们采用分治思想。
如果n是奇数那么
f(n,k)=f(n−1,k)+nk
否则,我们可以先求出n/2的f,然后对于n/2+1~n中的每个数都可以表示为n/2+i
那么
f(n,k)=f(n/2,k)+∑n/2i=1∑kj=0Cjk∗ij∗(n/2)k−j
调换一下
f(n,k)=f(n/2,k)+∑kj=0Cjk∗f(n/2,j)∗(n/2)k−j
于是对于每一个n的f我们需要 O(k2) ,一共有log n层,算上快速幂的复杂度
总共是 O(k2lognlogk)
插值法
分拉格朗日插值法和牛顿插值法,我不会……
伯努利数
同不会
第一类斯特林数
该方法来自GEOTCBRL小学生数学题题解,%%%。
我们设
Sk(n)=∑i=0nik
那么这个东东要怎么搞呢?
先引入第一类斯特林数的定义:
我们记 f(n,k)=n∗(n−1)∗