【SICP练习】13 练习1.19



练习1.19

题目中说道斐波那契数中将变换T的n次方应用于对偶(1,0)而产生出来,而现在将T看作T(pq)中p=0和q=1的特俗情况。因此对于对偶(a,b)来说,a—bq+a(p+q),b—bp+aq。而对于T(pq)的平方也就是(T(pq))^2,就像之前的a中往b乘以q和往a乘以(p+q),现在依旧是相当于a中往bp+aq乘以q(bp+aq为上一次迭代中的”b”),往(bq+a(p+q))中乘以(p+q),同样的变换也发生在b中。依次对于T(pq)的平方来说,a—b(2pq+q*q)+a(p*p+q*q+2*p*q+q*q),b—b(p*p+q*q)+a(2pq+q*q)。

而再次通过对比我们发现p’=p^2+q^2并且q’=2pq+q^2。

所以当N为偶数时,我们又可以通过应用变换T(p’q’)来减少计算T^N的一半计算量,因此在这种情况下就可以写出对数步数的斐波那契函数了。代码如下:

(define(fib n)

  
(define (fib-iter a b p q n)

   
(cond ((= n 0) b)

         
((even? n) (fib-iter a b (+ (squarep) (square q)) 

                    
       (+(* 2 p q) (square q)) (/ n 2)))

         
((odd? n) (fib-iter (+ (* b q) (* aq) (* a p))

                     
(+ (* b p) (* a q)) p q(- n 1)))))

(fib-iter 1 0 0 1 n))

再来一次测试:

(fib 0)

;Value: 0

(fib 7)

;Value: 13

时间: 2024-10-10 12:51:43

【SICP练习】13 练习1.19的相关文章

34岁日本女主播似13岁娇俏儿童脸与年龄不符

34岁日本女主播星野亚希似13岁(1 /23张) 图中的女星你能看出多大年龄吗?星野亚希,1977年生,日本写真模特,最年长泳装女星,第44回写真金箭奖的得主,日本最受欢迎的泳装女星,竞马节目主持.她的另一大特色就是有着与34岁年龄不符的娇俏儿童脸,并还能作为时尚教主,也常常以可爱形象出现在广告和代言中:除了童颜的一面,因其丰满身材,所以经常被日系摄影师作为潮T的模特而受追捧. [page] 34岁日本女主播星野亚希似13岁(2 /23张) 中文名:星野亚希 日文艺名:ほしのあき 日文本名:星野

中国概念股周四收盘涨跌互现 聚美优品跌13%

摘要: 中国概念股周四收盘数据 北京时间11月21日凌晨消息,周四美国股市收高,道指与标普500指数再创新高.能源股与小型股领涨.经济数据表明美国经济整体好转,抵消了市场对海外经济 中国概念股周四收盘数据 北京时间11月21日凌晨消息,周四美国股市收高,道指与标普500指数再创新高.能源股与小型股领涨.经济数据表明美国经济整体好转,抵消了市场对海外经济增长疲软的担心.中国概念股周四收盘涨跌互现, 聚美优品 跌13.09%报19.32美元. 美东时间11月20日16:00(北京时间11月21日05

C# 计算中文汉字笔画数

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; namespace WindowsFormsApplication1 { public static class GetGB2312StrokeCount { /// <summary> /// 获取字符串中所有汉字的笔画总和 /// </su

java.lang.StackTraceElement翻译

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!--NewPage--><HTML><HEAD><!-- Generated by javadoc (build 1.4.2-rc) on Fri Jun 13 00:14:19 PDT 2003 --&

架设某大型网站服务器之全部过程网站

*网站服务器 主要任务: 根据开发设计需求架设大型的网站服务器 主要软件: 以下为引用的内容:apache+jboss+oracle 简称:LAJO apache+php+mysql 简称:LAMP proftpd+mysql 简称:LPM ssh+expect iptables bind mail 具体要求: 海量用户访问 海量用户存储 (国内外互通) 南北互通 需求分析: 1.保证高要求高质量高性能,需要选择系*nix操作平台(这里选择as4.3): 2.保证高访问量高数据处理,需要选数商业

PHP教程.安装PHP

教程 安装PHP本章将按下列步骤编译安装以下软件: * Apache v.1.3.4 -- 世界上最流行的Web服务器. * gcc v.2.8.1 -- 来源于GNU的C和C++编译器. * MySQL v.3.22.16b-gamma -- 世界范围内许多人使用的数据库. * PHP v.3.0.11 -- 本书所主要介绍的软件.从http://www.php.net(或此站点的镜象站点)直接下载可以得到较新的版本.本章的其它步骤仍然适用. * expact -- 用于读取和处理XML文档的

《PHP程序设计》 第二章 安装PHP

  本章将按下列步骤编译安装以下软件:   * Apache v.1.3.4 -- 世界上最流行的Web服务器.   * gcc v.2.8.1 -- 来源于GNU的C和C++编译器.   * MySQL v.3.22.16b-gamma -- 世界范围内许多人使用的数据库.   * PHP v.3.0.11 -- 本书所主要介绍的软件.从http://www.php.net(或此站点的镜象站点)直接下载可以得到较新的版本.本章的其它步骤仍然适用.   * expact -- 用于读取和处理XM

中国网站用户体验排行榜

用户体验越来越被中国网站重视,关注用户体验在一定程度上成为网站人性化的标准,暴风彬彬一直关注着用户体验分析及用户体验研究,这些用户体验排名数据虽然说明不了什么,但客观的讲,网站抓住用户体验就等于抓住了用户,抓住了用户才能获得更多的利润,用户体验在渐渐被中国的网站所接受,但仍有太多太多的中国网站忽视这用户体验的重要性. 本数据采自世界经理人 Gomez中国网站用户体验排行榜 中国门户网站用户体验排行榜 排名网站响应时间(秒)可靠性(%)稳定性(秒) 1搜狐3.27 99.89% 4.23 2和讯网

CCNA交换的一个综合实验

(1)各VLAN之间互联互通:单臂路由 (2)每台PC都能自动获取IP地址:DHCP (3)两台交换机要求VLAN2走上面,VLAN3走下面:STP负载均衡 (4)SW2能从SW1学到VLAN相关信息:Trunk.VTP (5)能在任何地方都能管理到每台网络设备:telnet 交换机用vlan      1做管理VLAN3 (6)交换机连接PC的端口做实现快速收敛(portfast) ------------------------------------------------------SW