SICP 1.2.4错误快速exp?

时间:2018-04-02 00:58:29

标签: scheme sicp

我正在经历SICP,我不确定这是否是书中的错误,或者我错过了什么。

为了计算fast-exp,作者给出了以下规则:

  

b ^ n =(b ^(b / 2))^ 2,如果n是偶数

     

b ^ n = b * b ^(n - 1)如果n是奇数

但是,当他们提出偶数n的实施时,我们有:

((even? n) (square (fast-expt b (/ n 2))))

在我看来是正确的。

我相信

b^n = (b^(b/2))^2 if n is even

应改为

b^n = (b^(n/2))^2 if n is even

我很难相信在这么旧的书中会出现这样的错误。我也尝试在网上找到关于这个问题的任何讨论,但都失败了。不知道这里发生了什么。提前谢谢。

link to the mentioned chapter

1 个答案:

答案 0 :(得分:1)

你是对的,这是一个错字 - 如果(b^(n/2))^2是偶数,公式应为n。但它已在errata中得到纠正。