用摄动法证明fibs的一个公式(继续变形)
a(1)^2+a(2)^2+...+a(n)^2=a(n)*a(n+1)
根据条件有 :
a(1)^2=a(2)*a(1)
a(2)^2=a(2)*{ a(3)-a(1) }
a(3)^2=a(3)*{ a(4)-a(2)}
...
a(n)^2=a(n)*{ a(n+1)-a(n-1) }
将上面的方程左右两边分别相加有:
a(1)^2+a(2)^2+...+a(n)^2=a(n)*a(n+1)得到证明;
下面写程序来证明:
(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 n)
(exprhelp n)))))
(defun test (n)
(if (> n 0)
(progn
(print (expr n))
(print 'compare)
(print (* (exprhelp n)
(exprhelp (1+ n))))
(test (- n 1)))
(print 'over)))
(test 25)
思维:a(n)^2在代码实践中代表什么意义???