母函数应用的实践(分析算法的时间复杂度)
这里分析下面这种算法的时间复杂度:
{
不定方程解的个数,注意这里是求不小于
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))