【发布时间】:2017-10-01 01:37:13
【问题描述】:
Here 是计算机程序的结构和解释'练习 1.15 (see here) 的问题和解决方案。我的问题是,我不知道这些公式的组合实际上是如何工作的:
和
对于较小的x 弧度值。
我理解这样的想法,即弧度角越接近零,它就越接近该角度的正弦。我看过很好的解释(MIT OCW,可汗学院)。我也弄明白了
公式是推导出来的。但是如何将它们一起用于得出sin(x) 的答案? p 函数似乎只是简单地将变量角度除以 3 每次递归传递,直到 angle 低于 0.1 然后在返回的路上,我们执行 p 的次数与我们必须划分的次数一样多通过3。好像是这样
神奇地变成了
通过递归应用程序。如何?我对递归理论不是很精通。此外,如果这在对数上越来越接近0.1,那么就好像我们汇总了很多小的x 的积分。这似乎在做一些类似于 Y-combinator 的事情——我还没有很好地掌握它。
另外,当我们看到递归步骤(递归)反复将angle 除以 $3$ 时,有什么能明确告诉您这是对数?我的意思是,看起来它在每个部门都取得了巨大的数量级飞跃,但是还有另一种分析方法可以称之为对数缩减吗?
【问题讨论】:
-
“数量级飞跃”= 对数。对数计算数量级的数量。
-
它神奇地变成了
sin(x)=3*sin(x/3)-4*sin(x/3)^3=3*x/3-4*(x/3)^3 =x-4/27x^3 -
至于“它是如何工作的”——你已经展示了它是如何工作的。您证明了三角恒等式,并确认了小
x的近似值。这只是递归:解决一个难题并转换为一个更简单的问题。重复,直到问题变得简单到可以解决为止。
标签: recursion trigonometry sicp