f(n)=af(n-1)+b根据一阶线性递推式推导通项公式

之前做了一道算法题,根据题意能推导出一个公式:

f(n)={1,n=13f(n−1)+2,n≥2 f(n)= \begin{cases} 1, & n=1 \\ 3f(n-1)+2, & n\ge 2 \end{cases} f(n)={1,3f(n−1)+2,n=1n≥2

这里的n是整数。

看到这个公式自然而然地想到使用递归的方式编程解决。

在n很小的时候这没问题,但是当n大的时候,即使n=20时,递归也有20层调用栈的开销。

因此想到推导通向公式。

当前的这个公式是一阶线性递推 公式,即形如f(n)=af(n-1)+b的形式


如何根据f(n)的递推公式推导出f(n)的通项公式呢?

假设存在一个常数k,使得

g(n)=f(n)+k g(n)=f(n)+k g(n)=f(n)+k

那么

f(n)=g(n)−k f(n)=g(n)-k f(n)=g(n)−k

从公式

f(n)=3f(n−1)+2 f(n)=3f(n-1)+2 f(n)=3f(n−1)+2

可以得到

g(n)−k=3g(n−1)−k+2 g(n)-k=3g(n-1)-k+2 g(n)−k=3g(n−1)−k+2

=>

g(n)=3g(n−1)−2k+2 g(n)=3g(n-1)-2k+2 g(n)=3g(n−1)−2k+2

想让常数项消失得使

−2k+2=0 -2k+2=0 −2k+2=0

k=1 k=1 k=1

得到

g(n)=3g(n−1) g(n)=3g(n-1) g(n)=3g(n−1)

结合

g(1)=f(1)+k=1+1=2 g(1)=f(1)+k=1+1=2 g(1)=f(1)+k=1+1=2

可以得到g(n)通项公式

g(n)=2∗3n−1 g(n)=2*3^{n-1} g(n)=2∗3n−1

因此

f(n)=g(n)−k=2∗3n−1−1 f(n)=g(n)-k=2*3^{n-1}-1 f(n)=g(n)−k=2∗3n−1−1


总结一下,

对于f(n)=af(n-1)+b的递推公式,令g(n)=f(n)+k,结合f(n)的递推公式,可以得到g(n)=pg(n-1)+qk+r,通过令qk+r=0的方式消除掉常数项,得到k,进而推导出g(n)的通项公式,从而得到f(n)的通项公式。


还是当年高中nb,现在啥也不会hhh

相关推荐
anew___14 小时前
历史性突破!两位中国数学家同摘“数学界诺奖”,改写百年难题
数学·菲尔兹奖
Tisfy17 小时前
LeetCode 3536.两个数字的最大乘积:O(1)空间维护max2
数学·算法·leetcode·题解
闻缺陷则喜何志丹3 天前
【计算几何 第四章】线性规划:铸模制造
数学·计算几何·线性规划·铸造
大卫小东(Sheldon)4 天前
斯梅尔问题(Smale's Problems)清单
数学·ai
Tisfy8 天前
LeetCode 1979.找出数组的最大公约数:模拟(附手动gcd)
java·数学·算法·leetcode·题解·最大公约数
Luhui Dev10 天前
用 AI 生成一道几何题配图:三角形四心作图案例
人工智能·数学·agent·luhuidev
Tisfy11 天前
LeetCode 3658.奇数和与偶数和的最大公约数:数论 / 数学O(1)
数学·算法·leetcode·数论·题解
Luhui Dev13 天前
教育 SaaS 产品如何低成本集成 AI 几何图形能力?开发者选型实录
人工智能·数学·agent·luhuidev
金銀銅鐵16 天前
[Python] 借助图形化界面探索模n运算的规律
python·数学
hnjzsyjyj18 天前
东方博宜OJ 1145:数列求和
数列