用摄动法证明fibs的一个公式(变形)
a(1)+a(3)+...+a(2*n-1)=a(2*n)
根据条件有 :
a(1)=a(2)
a(3)=a(4)-a(2)
a(5)=a(6)-a(4)
...
a(2*n-1)=a(2n)-a(2*n-2)
将上面的方程左右两边分别相加有:
a(1)+a(3)+...+a(2*n-1)=a(2*n)得到证明;
下面写程序来证明:
(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 exprhelp (n)
(if (or (eq n 1)
(eq n 2))
1
(+ (exprhelp (- n
1))
(exprhelp (- n
2)))))
(defun expr (n)
(if (eq n 1)
(exprhelp 1)
(+ (expr (- n
1))
(exprhelp (- (* 2
n)
1)))))
(defun test (n)
(if (> n 0)
(progn
(print (expr n))
(print 'compare)
(print (exprhelp (* n
2)))
(test (- n 1)))
(print 'over)))
(test 15)