如何立即提供5^5^5^5
(= 2.351*10^87
如果你想知道的话)的计算结果?
我找到了一些关于the speed for matrix computations(this article)的结果,但没有关于其他事项的结果。并且this不是解释(Python中我的(天真)实现现在运行大约5分钟。)
答案 0 :(得分:3)
5^5^5^5
毕竟不需要这么多操作。例如,在每个功率步骤,例如a^b
,您可以计算exp(log(a)*b)
,这会得到相同的结果。
我不是说这是Matlab如何做到的,并且可能存在数值精度问题。但这说明多功率操作并不像直接计算所暗示的那么难。
至于数值精度:
>> format long
>> 5^5^5^5
ans =
2.350988701644576e+087
>> exp(log(exp(log(exp(log(5)*5))*5))*5)
ans =
2.350988701644561e+087
相对错误是
>> 1 - (5^5^5^5 / exp(log(exp(log(exp(log(5)*5))*5))*5))
ans =
-6.661338147750939e-015
离eps
不远。