母函数应用的实践(分析算法的时间复杂度)
来源:互联网 发布:大数据相关股票 编辑:程序博客网 时间:2024/06/05 08:10
母函数应用的实践(分析算法的时间复杂度)
这里分析下面这种算法的时间复杂度:
{
不定方程解的个数,注意这里是求不小于
x+2*y=j,
用母函数能够解得答案是:
a(n)=n/2+3/4+1/4*(-1)^n
}
算法的递归形式为:
a(n)={n/value}*a(n-1)
因为只有两个,所以为A*n^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 slayerex (num count)
(if (or (> count 1) (eq count 1) )
(* num
(slayerex
(- num 1)
(- count 1) ) )
1))
(defun exprhelp ( count n value)
(if (> n 0)
(+ (expr (- count 1)
(- n value) )
(exprhelp count
(- n value)
value))
0))
//技巧
(defun getvalue (n )
n)
(defun expr (count n)
(if (eq n 0)
1
(if (eq count 0)
0
(+ (exprhelp count
n
(getvalue (- 3
count)))
(expr (- count 1)
n)))))
(defun formula (n)
(+ (/ n
2.0)
(/ 3.0
4)
(* (/ 1.0
4)
(pow -1
n))))
(defun test (n)
(if (> n 1)
(progn
(print (expr 2 n))
(print 'compare)
(print (formula n))
(test (- n 1)))
(print 'over)))
(test 10)
- 母函数应用的实践(分析算法的时间复杂度)
- 算法的时间复杂度分析
- 算法的时间复杂度分析
- 算法的时间复杂度分析
- 算法的时间复杂度分析
- 分析算法的时间复杂度
- 递归算法的时间复杂度分析
- 递归算法的时间复杂度分析
- 递归算法的时间复杂度分析
- 递归算法的时间复杂度分析
- 常用算法的时间复杂度分析
- 递归算法的时间复杂度分析
- 递归算法的时间复杂度分析
- 分治算法的时间复杂度分析
- 递归算法的时间复杂度分析
- 递归算法的时间复杂度分析
- 浅谈分治算法的时间复杂度分析
- 算法分析(1)-循环的时间复杂度
- 读书笔记:《代码大全》之基本数据类型
- apr小述
- linux驱动模块参数module_param
- 即时通讯协议-XMPP
- 电子大赛 感
- 母函数应用的实践(分析算法的时间复杂度)
- swing 设置鼠标形状
- 一个小老板的日常管理手册
- css嵌套带来的一个问题
- 正则的零宽度断言
- 老儿童六一节快乐!!!
- J2ME-->获取设备支持的信息
- oracle临时表空间过大的原因&&处理
- JS动态添加表行,并验证数据,获取数据。