对题目进行分析,
反复地做加法,能达到乘积的效果,
值得注意的是在书上写了如下代码
(define (* a b)
(if (= b 0)
0
(+ a (* a (- b 1)))))
第一眼看的时候可能会糊涂,
可是题干上已经说明,
“in which it is assumed that our language can
only add,not multiply”
所以,我们不要把*看成乘号,
只需将他看成一过程名即可,
在这个过程中只要形参b不为0,
就会递归出如下过程:
(+ a (+ a (+ a (…(+ a (- b 1))…))))
这是一个线性递归的过程,
其时间增长的阶和空间增长的阶均为b,
现在要设计一个类似fast-expt的过程,
也就是其增长的阶为对数,
书中提示有两个过程,
分别为能求出一个整数两倍的名为double的过程,
和一个能求出偶数除以2的名为halve的过程,
现在我们要利用题目上给出的条件,
设计出一个类似fast-expt的算法过程,
2021年3月21日19:45

(define fast-mult(lambda (a b)(define even?(lambda (x)(= (remainder x 2) 0)))(define double(lambda (x)(+ x x)))(define halve(lambda (x)(/ x 2)))(cond ((or (= a 0)(= b 0))0)(else (if (even? b)(double (fast-mult a(halve b)))(+ a (fast-mult a(- b 1))))))))



SICP练习1.17相关推荐

  1. [books] - SICP 2nd edition

    全名是: Structure and Interpretation of Computer Programs 中文名稱: 计算机程序的构造和解释 20131024 淘寶訂單 20131104 到手, ...

  2. 学习伯克利CS 61A课程(Structure and Interpretation of Computer Programs, SICP)的相关资源

    有个叫做Teach Yourself Computer Science的网站[1]教如何自学计算机科学,关于Programming这个方向推荐了<Structure and Interpreta ...

  3. 计算机程序结构和解释,SICP 计算机程序的构造和解释

    <SICP 计算机程序的构造和解释>由会员分享,可在线阅读,更多相关<SICP 计算机程序的构造和解释(5页珍藏版)>请在人人文库网上搜索. 1.SICP 计算机程序的构造和解 ...

  4. 《SICP》习题第3章(施工中)

    本人做的SICP习题第3章,如有错误请指正,用的解释器是Racket 练习3.1 ;; 累加器 (define (make-accumulator initial)(lambda (x)(let (( ...

  5. 【CV】吴恩达机器学习课程笔记第17章

    本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片 机器学习 | Coursera 吴恩达机器学习系列课程_bilibili 目录 17 大规模机器学习 17-1 学习大数据集 17-2 随 ...

  6. 零起点学算法17——比较2个数大小

    零起点学算法17--比较2个数大小 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lld Description 输入2个整数, ...

  7. 北语计算机应用基础2,北语17春《计算机应用基础》练习2

    北语17春<计算机应用基础>练习2 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 2017秋北语17春<计算机应 ...

  8. 机器学习入门(17)— 输入 4 维数据、基于 im2col 展开来实现卷积层

    1. 输入 4 维数据 CNN 中各层间传递的数据是 4 维数据.所谓 4 维数据,比如数据的形状是(10, 1, 28, 28),则它对应 10 个高为 28.长为 28.通道为 1 的数据.用 P ...

  9. C语言程序设计 细节总结(第1-7章)

    C语言细节总结 温故而知新,许久没看C语言,发现了一些从前没注意的小细节,总结下来~ 第1章C语言及C程序概述 1.C语言有34种运算符.32个关键字.9种控制语句 第2章数据类型.运算符与表达式 2 ...

  10. qt 显示加速_新能源 | 吉利星越ePro上市 补贴后17.58万起售 加速更快油耗更低

    点击上方"蓝字"关注我们 新车速递 | 车市速报 吉利星越ePro上市 补贴后17.58万起 加速更快油耗更低 编辑 | 马   妍 排版 | 马   妍 「本文阅读时长约为3分钟 ...

最新文章

  1. vue2+webpack2实现饿了么移动端商家页面
  2. android 线程方式打印log到sd卡
  3. 任正非最新内部信:过去只为赚点小钱,现在要用5G+AI战胜美国
  4. oracle开放查询表权限_oracle 查询当前用户的表和其他用户的表
  5. 导出真实表格显示列数不能超过256_平均月薪真有6万5?说说我所知道的金融人真实薪酬...
  6. C++简单排序,堆排序
  7. php和mysql web开发 笔记_PHP和MySQL Web开发读书笔记---创建Web数据库
  8. winform 程序制作自己的数字签名(续)
  9. a+=b不一定等于a=a+b
  10. 2016蓝桥杯省赛---java---C---10(密码脱落)
  11. 任正非:要提高待遇,敢于和美国争夺人才
  12. swoole中退出、异常与错误的处理笔记
  13. python筛选csv数据_pandas数据筛选和csv操作的实现方法
  14. drools 7.x 事件元数据
  15. python socket epoll
  16. 分布式文件系统FastDFS看这一篇就够了(文件上传下载、单机部署及集群部署)
  17. java中HashSet实现(转)
  18. aka名字_想给Aka征集一个中文名字
  19. python做题记录之切西瓜
  20. 怎么用u盘重装系统?石大师u盘重装win10系统步骤

热门文章

  1. python%是什么意思_%在Python中是什么意思?
  2. 2019年个人成长计划
  3. Java练习题【新】
  4. fits文件的读取与查看
  5. astropy.io.fits 教程
  6. 计算机社团收获作文,写智慧校园的优秀作文
  7. 最网最全python框架--scrapy(体系学习,爬取全站校花图片),学完显著提高爬虫能力(附源代码),突破各种反爬
  8. beacon帧主要结构
  9. 视频流中的DTS/PTS到底是什么?
  10. 另一个伊甸专武,国际服用(手机随便做的,有点粗糙,见谅