码迷,mamicode.com
首页 > 编程语言 > 详细

斐波那契算法的对数解法 计算机程序的构造和解释 习题1.19

时间:2015-01-19 22:17:58      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

程序由Scheme语言编写,待会上别的语言实现。

#lang racket
;斐波那契对数法
;筛选
(define (fib n)
  (fib-iter 1 0 0 1 n))
 
(define (square x)
  (* x x))
 
(define (fib-iter a b p q count)
  (cond ((= count 0) b);count = 0时,fib(1) = 0
        ((even? count);如果是偶数,那么,p,q的值分别为
         ;p = p^2 + q^2
         ;q = 2pq + q^2
         ;count的数值减半
        (fib-iter a
                  b
                  (+ (square p) (square q))
                  (+ (* 2 p q) (square q))
                  (/ count 2)))
        ;如果不是,即奇数,那么通过降一次幂进入下一步运算
  (else (fib-iter (+ (* b q) (* a q) (* a p))
             (+ (* b q) (* a q))
             p
             q
             (- count 1)))))

 

斐波那契算法的对数解法 计算机程序的构造和解释 习题1.19

标签:

原文地址:http://www.cnblogs.com/pengjunwei/p/4234724.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!