文档章节

【SICP练习】9 练习1.15

NoMasp
 NoMasp
发布于 2015/09/08 21:52
字数 235
阅读 10
收藏 0


(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愉快的测试了。

版权声明:本文为 NoMasp柯于旺 原创文章,未经许可严禁转载!欢迎访问我的博客:http://blog.csdn.net/nomasp

本文转载自:http://blog.csdn.net/nomasp/article/details/43529691

NoMasp
粉丝 7
博文 334
码字总数 0
作品 0
镇江
程序员
私信 提问
加载中

评论(0)

Apache Jackrabbit Oak 1.6.18 发布,可扩展、高性能分层存储库

Apache Jackrabbit Oak 1.6.18 发布了,Jackrabbit Oak 是一种可扩展的高性能分层内容存储库,旨在用作现代世界级网站和其它要求苛刻的内容应用程序的基础。 这是一个修复版本,主要更新内容...

xplanet
2019/10/17
369
1
Wayland 1.15 & Weston 4.0 候选版发布

Wayland 1.15 and the Weston 4.0 的首个候选版已发布。 本次 Wayland 1.15 的更新内容包括: 从 Mesa 中拉取 libwayland-egl 提供各种文档说明 改进 Wayland-Scanner 添加一些小的 API West...

局长
2018/04/04
1.3K
4
tensorflow练习2-简单的RNN预测带周期性的数据

tensorflow练习系列: tensorflow练习1-DNN 现在我们尝试使用lstm来预测一个周期性的数据 1. 准备数据 我们使用伪造的数据 输出结果如下 (200, 6) (200, 6) (200, 5) (200, 1) 周期性的数据 ...

拎着激光炮的野人张
2017/12/06
0
0
Apache Commons Compress 1.15 发布

Compress 1.15 发布了,包含对 tar 和 zip 格式的大修复和小改进 。此外,jar 的 manifest 文件现在包含一个 Automatic-Module-Name entry ,用于当 jar 在 Java 9 中被用作自动模块时,确保...

周其
2017/10/18
1.1K
1
App Store上下载和安装Xcode

App Store上下载和安装Xcode Xcode的下载和安装 要编写一个Sprite Kit程序,需要使用到Xcode开发工具。本节将主要讲解此工具的两种下载和安装方式:一种是在App Store上进行下载和安装;另一...

大学霸
2015/03/24
2.9K
1

没有更多内容

加载失败,请刷新页面

加载更多

Java BigDecimal 如何去掉末尾多余的 0

Java BigDecimal 如何去掉末尾多余的 0 呢? /** * To StripTrailingZeros */ @Test public void bigDecimalStripTrailingZerosTest() { BigDecimal bi......

honeymoose
今天
43
0
衡水哪里可以开发票-中国新闻网

衡水哪里可以开发票【1.3.2 - 2.9.3.0 - 0.5.6.8.】李生,adb的全称为Android Debug Bridge,是Android手机通用的一个USB端口。百度CarLife的部分车机采用了该种连...

457192
今天
60
0
张家口哪里可以开发票-中国新闻网

张家口哪里可以开发票【1.3.2 - 2.9.3.0 - 0.5.6.8.】李生,adb的全称为Android Debug Bridge,是Android手机通用的一个USB端口。百度CarLife的部分车机采用了该种...

253878
今天
66
0
黑龙江哪里可以开发票-中国新闻网

黑龙江哪里可以开发票【1.3.2 - 2.9.3.0 - 0.5.6.8.】李生,adb的全称为Android Debug Bridge,是Android手机通用的一个USB端口。百度CarLife的部分车机采用了该种...

富大范
今天
39
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部