【SICP练习】14 练习1.20
2015-02-06 12:22
281 查看
练习1.20
这道题要求我们分别在正则序和应用序的情况下来研究书中的gcd函数,并且还要算出实际执行remainder运算的次数。
题目中先问的正则序后问的应用序,但由于应用序比较简单,我们先来看看应用序:
(gcd 206 40)
(gcd 40 6)
(gcd 6 4)
(gcd 4 2)
(gcd 2 0)
2
因此(gcd 206 40)共调用了5次remainder函数。
再来看看正则序的情况:
(gcd 206 40)
(gcd 40 (remainder 206 40))
(gcd (remainder 206 40) (remainder 40 (remainder (206 40))))
(gcd (remainder 40 (remainder (206 40))) (remainder (remainder 206 40) (remainder 40 (remainder (206 40)))))
(gcd (remainder (remainder 206 40) (remainder 40 (remainder (206 40))))) (remainder (remainder 40 (remainder (206 40))) (remainder (remainder 206 40) (remainder 40 (remainder (206 40))))))
到这里就相当于参数是2和0了,在这里我已经将if去掉了,至于remainder调用多少次数数便知道了。
这道题要求我们分别在正则序和应用序的情况下来研究书中的gcd函数,并且还要算出实际执行remainder运算的次数。
题目中先问的正则序后问的应用序,但由于应用序比较简单,我们先来看看应用序:
(gcd 206 40)
(gcd 40 6)
(gcd 6 4)
(gcd 4 2)
(gcd 2 0)
2
因此(gcd 206 40)共调用了5次remainder函数。
再来看看正则序的情况:
(gcd 206 40)
(gcd 40 (remainder 206 40))
(gcd (remainder 206 40) (remainder 40 (remainder (206 40))))
(gcd (remainder 40 (remainder (206 40))) (remainder (remainder 206 40) (remainder 40 (remainder (206 40)))))
(gcd (remainder (remainder 206 40) (remainder 40 (remainder (206 40))))) (remainder (remainder 40 (remainder (206 40))) (remainder (remainder 206 40) (remainder 40 (remainder (206 40))))))
到这里就相当于参数是2和0了,在这里我已经将if去掉了,至于remainder调用多少次数数便知道了。
相关文章推荐
- 【SICP练习】14 练习1.20
- SICP 练习1.43 repeated
- SICP 练习2.40 unique-pairs
- python练习实例14,题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
- Android学习--14-天气练习
- 【SICP练习】20 练习1.26
- 【SICP练习】119 练习3.50
- 每日练习(14)
- 【SICP练习】96 练习2.69
- Python 练习实例14
- 【SICP练习】46 练习2.5
- 【SICP练习】70 练习2.41
- 【SICP练习】52 练习2.20
- 【SICP练习】3 练习1.7
- 【SICP练习】136 练习3.67
- 【SICP练习】135 练习3.66
- 【SICP练习】27 练习1.33
- 【SICP练习】37 练习1.42
- 【SICP练习】55 练习2.23
- 【SICP练习】71 练习2.42