这题来自NOIP2017提高初赛题

设函数 f n = ( f n − 1 + f n − 2 ) / 2 f_n=(f_{n-1}+f_{n-2})/2 fn​=(fn−1​+fn−2​)/2
f 1 = 0 , f 2 = 1 f_1=0,f_2=1 f1​=0,f2​=1
求 f n f_n fn​的递推式,

有一个很辣鸡但很清真的方法:
如果我们把式子表示成: f n + a ∗ f n − 1 = k ( f n − 1 + a ∗ f n − 2 ) f_n+a*f_{n-1}=k(f_{n-1}+a*f_{n-2}) fn​+a∗fn−1​=k(fn−1​+a∗fn−2​)
那是不是就是一个等比数列啦~( g n = k ∗ g n − 1 g_n=k*g_{n-1} gn​=k∗gn−1​)

来看看a,k这两个系数是啥,
f n + a ∗ f n − 1 = ( 0.5 + a ) ∗ f n − 1 + 0.5 ∗ f n − 2 f_n+a*f_{n-1}=(0.5+a)*f_{n-1}+0.5*f_{n-2} fn​+a∗fn−1​=(0.5+a)∗fn−1​+0.5∗fn−2​
设方程(两边对应的比值相等)
1 0.5 + a = a 0.5 \frac{1}{0.5+a}=\frac{a}{0.5} 0.5+a1​=0.5a​

解得: a 1 = 0.5 , a 2 = − 1 a_1=0.5\ ,\ a_2=-1 a1​=0.5 , a2​=−1

所以:
f n + 0.5 f n − 1 = ( f n − 1 + 0.5 ∗ f n − 2 ) f_n+0.5f_{n-1}=(f_{n-1}+0.5*f_{n-2}) fn​+0.5fn−1​=(fn−1​+0.5∗fn−2​)
f n − f n − 1 = − 0.5 ∗ ( f n − 1 − f n − 2 ) f_n-f_{n-1}=-0.5*(f_{n-1}-f_{n-2}) fn​−fn−1​=−0.5∗(fn−1​−fn−2​)

又因为: f 1 = 0 , f 2 = 1 f_1=0,f_2=1 f1​=0,f2​=1
所以:
f n + 0.5 f n − 1 = 1 f_n+0.5f_{n-1}=1 fn​+0.5fn−1​=1
f n − f n − 1 = ( − 1 2 ) n − 1 f_n-f_{n-1}=(-\frac{1}{2})^{n-1} fn​−fn−1​=(−21​)n−1

消去 f n − 1 f_{n-1} fn−1​: f n = 2 + ( − 1 2 ) n − 1 3 f_n=\frac{2+(-\frac{1}{2})^{n-1}}{3} fn​=32+(−21​)n−1​

【方法】关于递推式的公式求法相关推荐

  1. 【组合数学】二项式定理与组合恒等式 ( 二项式定理 | 三个组合恒等式 递推式 | 递推式 1 | 递推式 2 | 递推式 3 帕斯卡/杨辉三角公式 | 组合分析方法 | 递推式组合恒等式特点 )

    文章目录 一.二项式定理 二.组合恒等式 ( 递推式 1 ) 三.组合恒等式 ( 递推式 2 ) 四.组合恒等式 ( 递推式 3 ) 帕斯卡 / 杨辉三角公式 五.组合分析方法 六.递推式组合恒等式特 ...

  2. 【笔记】从递推式得到通项公式的几种方法

    开头瞎扯 数列这玩意在竞赛中考的不少,可以变形一些式子,所以做一个小总结 如果题目中出现了一个数列的式子,将其化为通项公式有可能可以快速求解或者是便于题目变形并发现题目性质 解题套路 对于大部分情况来 ...

  3. 分治法 分治法求解递推式

    分治法 分治法基本就是下面的三步 分(divide):无法有效解决的划分更小的问题 治(conquer):递归求每一个子问题的解 合(combine):合并解得出原问题解 MergeSort:排列 1 ...

  4. 算法分析中递推式的一般代数解法

    算法分析中经常遇到需要求解递推式的情况,即将递推式改写为等价的封闭形式.例如汉诺塔问题的时间复杂度递推形式为T(n)=2T(n−1)+1(n≥1)T(n)=2T(n−1)+1(n≥1),可以解出封闭形 ...

  5. [递推式求解、多指针、前缀和]XATU第七届算法大赛

    文章目录 赛后感想 1.2题略 3 乐华水上梦幻乐园之拖鞋失踪案[概率论.递推式求解] 题意 分析 代码 4.5.6.7.8题略 9 Ugly Number[多指针] 题意 做法1[BFS with ...

  6. 虽说是递推式,但我还是觉得是逆推法

    母牛的故事 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  7. (递推)常用递推式总结及实现

    常用递推式 后面问题的解可以由前面问题的解递推而来,每一项都与前面若干项有一定关联.它是一种用若干步可以重复的简单运算来描述复杂问题的方法. 爬楼梯和兔子问题和斐波那契: f ( n ) = f ( ...

  8. CCF201809-5线性递推式

    试题编号: 201809-5 试题名称: 线性递推式 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 样例输入 3 3 6 2 0 4 样例输出 12 32 80 208 样例说明 样例 ...

  9. 递推最小二乘法RLS公式详细推导

    递推最小二乘法RLS公式详细推导 整理递推最小二乘法推导过程自我整理. 递推最小二乘估计(RLS)作为一种估计方式是在最小二乘法(LS)的基础上发展来的. 最小二乘法可以解决的问题是不需要知道先验的概 ...

最新文章

  1. 【Salvation】——登录注册存储数据验证用户
  2. 企业网络推广——企业网络推广专员提高网站更新讲策略
  3. 修改sublime列编辑快捷键
  4. 中小企业如何用在线CRM留住客户
  5. 三方登录(微博为例)
  6. Final Cut Pro模版网站
  7. 2.3 C#中的数组
  8. 功能测试代码python_如何使您的Python代码更具功能性
  9. python自动控制库_一个可以自动化控制鼠标键盘的库:PyAUtoGUI
  10. 《流浪地球》高赞好评被收买改差评?豆瓣如此回应...
  11. 蓝桥杯 ADV-165算法提高 超级玛丽(动态规划、递推)
  12. Linux命令解释之rm
  13. C语言实现俄罗斯方块代码
  14. Vivado 查看HLS生成IP的资源和最高频率
  15. CAN总线标准及协议分析
  16. 怎样压缩图片?有这3种图片压缩的方法就够了
  17. 创建Cocos2dx项目两种方法
  18. Python 制作个性化形状的云词
  19. java-php-python-ssm网上拍卖系统计算机毕业设计
  20. Ternary String

热门文章

  1. 标宋2号 仿宋3号 调整行间距
  2. 阿里云人脸识别C#调用示例参考
  3. 微信小程序properties属性有observe。依赖它的数据可以考虑在这里处理,不用单独写在observe里面
  4. discord验证无法通过_如何通过Discord的“上线”直播
  5. 移动C盘Users目录(我的文档)到其他盘
  6. 扩展运算符号实现累加计算
  7. 目标关键词是什么意思?
  8. stm32f4 usb 升级程序_STM32在线升级之 QiFreeUSBS
  9. MATLAB编程之PTB:把实验结果和实验前录入信息整合
  10. C#:魔术师发牌-解法思路