【发布时间】:2014-04-25 17:43:43
【问题描述】:
我正在使用此代码计算 R 中的斐波那契数:
fib <- function(n) {
a = 0
b = 1
for (i in 1:n) {
tmp = b
b = a
a = a + tmp
}
return (a)
}
sprintf("%.0f",fib(79))
从 fib(79) 开始,我得到的结果不准确。例如:fib(79) = "14472334024676220" 当正确的结果,根据这个web,应该是:fib(79)=14472334024676221
使用 numbers 包中的 fibonacci 函数我得到了同样不准确的结果。我认为这是因为 R 中的数字精度。
如何绕过此限制并在 R 中获得准确的斐波那契数?
【问题讨论】:
-
你试过
print(fib(79), digits=20)吗? -
是的,但我得到了相同的结果。