精确分析复杂的递推关系(多项式函数)
来源:互联网 发布:冯诺依曼 知乎 编辑:程序博客网 时间:2024/04/28 15:17
精确分析复杂的递推关系(多项式函数)
设置a(n)=5*a(n-1)+3^n+7^n,按照以前的相同的处理方式有:
a(n-1)=5*a(n-2)+3^(n-1)+7^(n-1)
Go
上面两个式子(1)-7*(2)有:
a(n)-7*a(n-1)=5*{ a(n-1)- 7* a(n-2) } + 3^n - 7* 3^(n-1)
化简有:
a(n)-7*a(n-1)=5*{ a(n-1)- 7* a(n-2) } + - 4* 3^(n-1)
从这里可以看出其中将只存在一个多项式函数,按照这种思维可以获得a(n)的通项公式:
a(n)=A*7^n+B*5^n+C*3^n
现在假设初始值a(1)=1,推理有a(2)=63,a(3)=685
所以可以解得
A=7/2
B=-19/5
C=-3/2
下面写程序来证明:
(defun pow (num count)
(if (or (> count 1) (eq count 1) )
(* num
(pow num
(- count 1) ) )
1))
(defun slayer ( count)
(if (or (> count 1) (eq count 1) )
(* count
(slayer
(- count 1) ) )
1))
(defun expr (n)
(if (eq n 1)
1
(+ (* 5
(expr (- n
1)))
(pow 3
n)
(pow 7
n))))
(setq A 7/2)
(setq B -19/5)
(setq C -3/2)
(defun formula (n)
(+ (* A
(pow 7 n))
(* B
(pow 5 n))
(* C
(pow 3 n))))
(defun test (n)
(if (> n 0)
(progn
(print (expr n))
(print 'compare)
(print (formula n))
(test (- n 1)))
(print 'over)))
[31]> (test 10)
951465423
COMPARE
951465423
133786225
COMPARE
133786225
18682587
COMPARE
18682587
2582245
COMPARE
2582245
351303
COMPARE
351303
46585
COMPARE
46585
5907
COMPARE
5907
685
COMPARE
685
63
COMPARE
63
1
COMPARE
1
OVER
OVER
很明显这里A占据主要位置,并且B,C都为负数,7的指数的增长速度也快于其它两者。
- 精确分析复杂的递推关系(多项式函数)
- 精确分析复杂的递推关系(多项式函数算法的稳定性)
- 精确分析复杂的递推关系(多项式函数的叠加)
- 精确分析复杂的递推关系(多项式函数算法形式改变)
- 精确分析复杂的递推关系
- 精确分析复杂的递推关系(改变初始值)
- 精确分析复杂的递推关系(不寻常的关系)
- 精确分析复杂的递推关系(nlogn算法的由来)
- 精确分析复杂的递推关系(nlogn算法的初始条件)
- 精确分析复杂的递推关系(n*logn*logn算法的由来)
- 精确分析复杂的递推关系(n*logn*logn算法的稳定性)
- URAL 1309 Dispute <函数关系的递推>
- 复杂的函数指针例子分析
- 一种递推关系的变形
- 一个递推关系的解答
- 【特征多项式解线性递推】poj2118
- UVA11361 递推关系
- 递推关系
- js中变量的作用域
- 浅谈PCA(2)
- windows程序设计 读书笔记一
- windows程序设计之鼠标,键盘,绘制文本简介
- Java Swing
- 精确分析复杂的递推关系(多项式函数)
- ifndef/define/endif 的用法
- C# 替换桌面背景图片
- android中LayoutInflater的使用
- android:添加usb键盘+按键布局和映射的修改
- 用一条SQL语句查询分组前三名数据
- vi 输入中文保存提示“不能进行转换”的问题
- VC++ 调试技巧
- 行业标准文件免费下载