(define(cube x) (* x x x))

(define(p x) (- (* 3 x) (* 4 (cube x))))

(define(sine angle)

(if (not (> (abs angle) 0.1))

angle

(p (sine (/ angle 3.0)))))

大家自己将题目中的代码写入Edwin中,用trace可以追踪p的调用,这种功能在Visual Studio中都有,我也是最近才知道trace的。

(trace-entryp)

;Unspecifiedreturn value

(sine12.15)

[Entering#[compound-procedure 12 p]

Args: 4.9999999999999996e-2]

[Entering#[compound-procedure 12 p]

Args: .1495]

[Entering#[compound-procedure 12 p]

Args: .4351345505]

[Entering#[compound-procedure 12 p]

Args: .9758465331678772]

[Entering#[compound-procedure 12 p]

Args: -.7895631144708228]

;Value:-.39980345741334

由此看来p一共运行了5次。

大家应该都看出来了sine过程是一个递归,因此它的时间和空间复杂度都是O(loga)。每当题目中传入的参数a乘以3时,p的运行次数就会增加一次。大家可以用trace愉快的测试了。

【SICP练习】9 练习1.15相关推荐

  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读书笔记 3.1

    SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 ...

  4. SICP(计算机程序构造与解释)学习笔记(lisp语言实现)

    用的是这版本 由于逆天的语法,必须准确记清楚 目录 Scheme语法 递归与阶乘 1.递归与阶乘的区别 2.阶乘与递归的实例 阶乘的递归实现 阶乘的迭代实现 斐波那契数列的递归实现 1.3高阶过程实现 ...

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

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

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

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

  7. 10任务栏全屏时老是弹出_Deepin 15.10 发布,深度操作系统

    深度操作系统是一个致力于为全球用户提供美观易用.安全可靠的Linux发行版. 深度操作系统基于Linux内核,以桌面应用为主的开源GNU/Linux操作系统,支持笔记本.台式机和一体机.深度操作系统( ...

  8. Manifest merger failed : uses-sdk:minSdkVersion 15 cannot be smaller than version 16 declared in lib

    今天导入饺子库提示 sdk 不能低于16的错误提示,导致build 失败 处理方法: 我把15 改成了16即可编译通过 这个是之前写的,目前各大应用平台要求最低是26了,

  9. View requires API level 21 (current min is 15): Toolbar

    第一种情况: 在布局文件报错,查看错误提示View requires API level 21 (current min is 15): <Toolbar> 这个说要求要api版本为21 ...

最新文章

  1. 多尺度目标检测--Scale-Aware Trident Networks for Object Detection
  2. [摘抄]一些软件设计的原则
  3. TCP往返时延的估计和超时
  4. matlab中求积函数,MATLAB软件及高斯勒让德求积公式MATLAB软件及高斯勒让德求积公式.doc...
  5. try except 异常捕获的方法、断言的使用
  6. html5圆形提交按钮样式,HTML5 SVG带圆形进度条动画的提交按钮特效
  7. 动态规划算法 dynamic programming
  8. 【遥感影像处理与分析】遥感影像校正详解-辐射校正、几何校正流程与方法比较
  9. oracle财务系统名称,Oracle财务系统总账模块操作手册
  10. SCI 计算机 数学相关期刊
  11. isc dhcp 服务器性能,DHCP 服务器搭建问题
  12. 城市公交线路查询系统mysql_公交车路线查询系统后台数据库设计
  13. bc汇编指令用法_BC操作流程
  14. Redis系列-生产应用篇-分布式锁(5)-单进程Redis分布式锁的Java实现(Redisson使用与底层实现)-原子锁类
  15. 易语言服务器调试输出为假,跟我入门易语言 7 调试输出与输出调试文本
  16. php中x22是什么意思,我想问一下:联想s22e和x22区别哪款好用点??真实反馈一下!!...
  17. 1. 【Part2】 Contour Detection and Hierarchical Image Segmentation【轮廓检测图像分割】
  18. 2017年蓝桥杯A组 跳蟋蟀 (BFS)
  19. 如何将项目使用docker分块部署
  20. 火爆外网的ChatGPT,改Bug,敲代码不在话下

热门文章

  1. FreeBSD下安装配置Hadoop集群(三)
  2. 金山网盾漏洞已第一时间修复、用户无风险
  3. 脚本1)启动jetty的脚本
  4. CTF---Web入门第一题 what a fuck!这是什么鬼东西?
  5. Linux实战案例(5)关闭Centos的防火墙
  6. JQuery:JQuery捕获HTML
  7. maven 命令创建多模块工程
  8. 浅谈Java throw, throws, try catch异常处理
  9. Imperva开源域目录控制器,简化活动目录集成
  10. wPaint在线绘图插件