fast-exp 中的 SICP 1.2.4 拼写错误?
SICP 1.2.4 typo in fast-exp?
我正在通过 SICP,我不确定这是书中的错误还是我遗漏了什么。
为了计算 fast-exp
作者给出了以下规则:
b^n = (b^(b/2))^2 if n is even
b^n = b * b^(n - 1) if n is odd
然而,当他们展示偶数 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
.
真不敢相信这么老的书竟然有这样的错误。我也试图在网上找到关于这个问题的任何讨论,但没有成功。不确定这里发生了什么。提前致谢。
你是对的,这是一个打字错误 - 如果 n
是偶数,公式应该是 (b^(n/2))^2
。但已在 errata.
中更正
我正在通过 SICP,我不确定这是书中的错误还是我遗漏了什么。
为了计算 fast-exp
作者给出了以下规则:
b^n = (b^(b/2))^2 if n is even
b^n = b * b^(n - 1) if n is odd
然而,当他们展示偶数 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
.
真不敢相信这么老的书竟然有这样的错误。我也试图在网上找到关于这个问题的任何讨论,但没有成功。不确定这里发生了什么。提前致谢。
你是对的,这是一个打字错误 - 如果 n
是偶数,公式应该是 (b^(n/2))^2
。但已在 errata.