我将在这里使用python示例,使我的问题更容易理解:
采用嵌套正弦函数的递归表示:
def nestedSin(val, amount): ## val in degrees
if amount == 1:
return math.sinh(val)
return math.sinh(nestedSin(val, amount-1))所以如果我运行这个函数:
z = nestedSin(20, 3)我会得到:
z = math.sinh(math.sinh(math.sinh(20)))我的问题is...will,这个计算第一个正弦函数并返回它的四舍五入值(即浮点限制),然后计算那个返回值的正弦,等等?
还是浮点限制仅适用于递归函数的最终返回值?
基本上,我是问上面的内容是否比:
x = math.sinh(20)
y = math.sinh(x)
z = math.sinh(y)发布于 2014-12-24 13:25:36
实际上,3个sinh操作是连续执行的,每个操作都有自己的四舍五入;就像您的x y z示例一样。
所以,不,没有区别,所有的方法都一样准确,我相信。
发布于 2014-12-24 13:33:22
根据你的问题
这将计算第一个正弦函数并返回它的四舍五入值(即浮点限制),然后计算该返回值的正弦值等。
函数返回第一个浮点值,然后再次使用带圆角值的最新值调用def nestedSin(val, amount)函数,然后再次调用它,当超出范围时,它将引发
OverflowError: math range error所以这两个例子是一样的。
当算术运算的结果太大而无法表示时,OverflowError:-引发。
https://stackoverflow.com/questions/27637588
复制相似问题