跳转到正文

斐波那契数列计算器

输入 n,即可得到第 n 个斐波那契数,并以精确的整数表示——甚至是 F(100000),它有 20,899 位。除此之外,您还能得到与精确结果核对过的比内闭式公式、相邻项之比趋近黄金比例的过程,以及您所选任意一段数列的表格。免费,无需注册,在您的浏览器中运行。

0 至 100,000 之间的整数。F(0) = 0,F(1) = 1。

结果

354224848179261915075

F(100)

21

位数

比内公式

F(n) = (φⁿ − ψⁿ) ÷ √5,其中 φ = (1 + √5) ÷ 2 ≈ 1.6180339887,ψ = (1 − √5) ÷ 2 ≈ −0.6180339887。由于 |ψ| < 1,第二项会逐渐消失,因此 F(n) 就是 φⁿ ÷ √5 四舍五入到最近的整数。

φ^100 ≈ 7.920708398E20

ψ^100 ≈ 1.262513338E-21

φ^100 ÷ √5 ≈ 3.542248482E20

(φ^100 − ψ^100) ÷ √5,按双精度运算四舍五入 = 354224848179263111168

这与精确的 F(100) = 354224848179261915075 不同。双精度数大约保留 16 位有效数字,因此普通浮点运算下的比内公式从 n 约 70 起就会偏离。此处的精确数值采用整数运算得出。

相邻项之比

随着 n 增大,F(n + 1) ÷ F(n) 趋近于黄金比例 φ,并在其上下交替。

φ = 1.618033988749894848204586834365……

F(101) ÷ F(100) = 1.618033988749894848204586834365……

这些值在前 30 位小数上与 φ 一致。

数列

最多 100 项。

nF(n)F(n + 1) ÷ F(n),截取到 10 位
00—
111.0000000000
212.0000000000
321.5000000000
431.6666666666
551.6000000000
681.6250000000
7131.6153846153
8211.6190476190
9341.6176470588
10551.6181818181
11891.6179775280
121441.6180555555
132331.6180257510
143771.6180371352
156101.6180327868
169871.6180344478
1715971.6180338134
1825841.6180340557
1941811.6180339631

如何使用斐波那契数列计算器

  1. 1. 输入 n。 0 至 100000 之间的任意整数。工具采用的编号为 F(0) = 0、F(1) = 1、F(2) = 1、F(3) = 2。
  2. 2. 读取 F(n)。 结果会连同位数一起显示。超过 40 位时,卡片显示首尾数字,复制全部数字会复制每一位。
  3. 3. 比较各个公式。 比内部分把 φⁿ、ψⁿ 以及四舍五入后的结果与精确的项并列显示,让您看到浮点运算从何时起不再可靠。比率部分把 F(n + 1) ÷ F(n) 精确到 30 位小数,并与 φ 并列显示。
  4. 4. 列出各项。 在数列部分,选择起始项以及要显示的项数(最多 100 项),即可得到 F(n) 及各比值 F(n + 1) ÷ F(n) 的表格。

什么是斐波那契数列

每一项都是它前面两项之和:F(n) = F(n − 1) + F(n − 2),从 0、1 开始:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144。比萨的列奥纳多(斐波那契)在《算盘书》(Liber Abaci,1202 年)中用它来模拟兔子的繁殖,不过这些数字在印度关于诗律的著作中已经出现过。有些书从 F(1) = F(2) = 1 开始,省略 F(0);数值相同,只是位置编号不同。

一些值得了解的恒等式:前 n 项之和为 F(1) + F(2) + … + F(n) = F(n + 2) − 1(1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 + 55 = 143 = F(12) − 1);每三项中有一个是偶数;只要 m 整除 n,F(m) 就整除 F(n);而卡西尼恒等式说 F(n − 1)·F(n + 1) − F(n)² = (−1)ⁿ。

比内公式及其局限

比内公式直接给出 F(n):F(n) = (φⁿ − ψⁿ) ÷ √5,其中 φ = (1 + √5) ÷ 2,ψ = (1 − √5) ÷ 2。由于 ψ 约为 −0.618,ψⁿ 会缩小并趋近于 0,因此 F(n) 就是 φⁿ ÷ √5 四舍五入到最近的整数。对于 n = 10,φ10 ≈ 122.9919,ψ10 ≈ 0.0081,(122.9919 − 0.0081) ÷ 2.2361 = 55。

为什么本计算器不直接使用比内公式

普通计算器或电子表格只保存约 16 位有效数字。在双精度浮点运算中,比内公式在 n = 71 时首次出错,得到 308061521170130,而真实的 F(71) 为 308061521170129,并且误差会随之增大。本工具使用精确的整数运算来计算各项(采用快速倍增恒等式 F(2k) = F(k)(2F(k+1) − F(k)) 与 F(2k+1) = F(k)² + F(k+1)²),并且只把比内公式作为比较展示。

黄金比例

将每一项除以前一项,结果会逼近 φ = 1.6180339887…,即黄金比例。它们围绕 φ 上下摆动——2、1.5、1.667、1.6、1.625、1.615……——并且每个比值都比上一个更接近。在 20 项之后,F(21) ÷ F(20) = 10946 ÷ 6765,与 φ 在小数点后 7 位一致;F(41) ÷ F(40) 在 16 位一致;F(101) ÷ F(100) 则在计算器显示的全部 30 位上都一致。原因与比内公式相同:F(n + 1) ÷ F(n) ≈ φⁿ⁺¹ ÷ φⁿ = φ。

示例:F(100)

F(100) = 354224848179261915075   (21 位)
按公式算出的位数:⌊100 × 0.20898764 − 0.34948500⌋ + 1 = 21
F(101) ÷ F(100) = 1.618033988749894848204586834365…

常见问题

第 100 个斐波那契数是多少?
F(100) = 354,224,848,179,261,915,075,是一个 21 位数。这里采用 F(0) = 0、F(1) = 1 的约定。如果您的来源从 1, 1, 2, 3, …… 开始编号,那么它的第 100 项也是 F(100);只有去掉开头那个 1 的来源,位置才会相差一位。
不列出每一项,如何求第 n 个斐波那契数?
小的 n 可以用比内公式;要得到精确结果,则可用快速倍增:它用 F(n ÷ 2) 与 F(n ÷ 2 + 1) 只需几次乘法即可构造出 F(n),因此即使是 F(100000) 也只需约 17 次倍增。逐项相加也可以,但需要 n 步。
斐波那契数列从 0 还是从 1 开始?
两种约定都在使用。数学上通常从 F(0) = 0、F(1) = 1 开始(本计算器采用这种方式)。许多教科书和谜题从 1, 1 开始。起始之后的各项是相同的,因此在比较答案之前,请先确认您的问题所用的编号。
斐波那契数列与黄金比例有什么关系?
相邻项之比 F(n + 1) ÷ F(n) 趋向于 φ = (1 + √5) ÷ 2 ≈ 1.618034。反过来,φⁿ ÷ √5 与 F(n) 相差不超过 0.5,这就是比内公式。工具中的表格显示了这些比值的收敛过程。
为什么比内公式给出整数?
无理部分会精确抵消:φⁿ 与 ψⁿ 互为共轭,因此它们的差是 √5 的倍数。然而在浮点运算中,φⁿ 会被舍入,从 n 约为 71 起,舍入误差超过 0.5,答案就会偏差一或更多。
F(n) 有多少位?
约为 0.2090 × n 位:精确地说,对于 n ≥ 2 为 ⌊n·log₁₀φ − log₁₀√5⌋ + 1。因此 F(1000) 有 209 位,F(100000) 有 20,899 位。
还有其他数列遵循同样的规则吗?
有。任何两个起始值加上“每项等于前两项之和”的规则,都会得到一个类斐波那契数列;从 2 和 1 开始则得到卢卡斯数 2, 1, 3, 4, 7, 11, 18。所有这类数列的相邻项之比也都趋近于 φ。您可以在数列求解器中尝试自己的数列。

相关工具

数学计算器中的更多工具