任意点的准确性都有问题

时间:2017-03-27 23:56:34

标签: linux lua fibonacci

{{1}}

以上是我在Linux中试验Lua时所做的一些代码。我对Linux的测试比我测试Lua要多。

但是,我注意到,在产生第78个数字后,我的Fibonacci发生器变得不准确。这似乎是一个相当随意的数字,所以我想不出为什么它会像其他溢出一样错误。

任何人都知道为什么?

1 个答案:

答案 0 :(得分:3)

这很可能是溢出因为斐波纳契数呈指数增长。

在Lua 5.3之前,Lua中的所有数字都是双精度浮点数。这意味着可以精确表示高达52位的整数。实际上,F(78)= 8944394323791464可以准确表示,但F(79)= 14472334024676221不能。

在具有64位整数的Lua 5.3中,可以精确表示最多为F(92)= 754011380474634642的斐波纳契数。