原来fibonacci和黄金分割真有关系

35 阅读2分钟

一边在学着一边刷一些文章,发现这么个有意思的话题

fib数列中,每一项与后一项的商,都无限接近0.618

import java.math.BigDecimal;
import java.math.RoundingMode;

public class FibonacciRatio {
    public static void main(String[] args) {
        int n = 50; // 生成前10个 Fibonacci 数
        long[] fib = new long[n];
        fib[0] = 0;
        fib[1] = 1;

        // 生成 Fibonacci 数列
        for (int i = 2; i < n; i++) {
            fib[i] = fib[i-1] + fib[i-2];
        }

        // 计算并打印比值
        for (int i = 1; i < n; i++) {
            BigDecimal ratio = BigDecimal.valueOf(fib[i-1])
                    .divide(BigDecimal.valueOf(fib[i]), 5, RoundingMode.HALF_UP);
            System.out.printf("F(%d) / F(%d) = %s\n", i-1, i, ratio);
        }
    }
}

编译

 javac -encoding UTF-8 .\FibonacciRatio.java

执行

java FibonacciRatio                        
F(0) / F(1) = 0E-10
F(1) / F(2) = 1.0000000000
F(2) / F(3) = 0.5000000000
F(3) / F(4) = 0.6666666667
F(4) / F(5) = 0.6000000000
F(5) / F(6) = 0.6250000000
F(6) / F(7) = 0.6153846154
F(7) / F(8) = 0.6190476190
F(8) / F(9) = 0.6176470588
F(9) / F(10) = 0.6181818182
F(10) / F(11) = 0.6179775281
F(11) / F(12) = 0.6180555556
F(12) / F(13) = 0.6180257511
F(13) / F(14) = 0.6180371353
F(14) / F(15) = 0.6180327869
F(15) / F(16) = 0.6180344478
F(16) / F(17) = 0.6180338134
F(17) / F(18) = 0.6180340557
F(18) / F(19) = 0.6180339632
F(19) / F(20) = 0.6180339985
F(20) / F(21) = 0.6180339850
F(21) / F(22) = 0.6180339902
F(22) / F(23) = 0.6180339882
F(23) / F(24) = 0.6180339890
F(24) / F(25) = 0.6180339887
F(25) / F(26) = 0.6180339888
F(26) / F(27) = 0.6180339887
F(27) / F(28) = 0.6180339888
F(28) / F(29) = 0.6180339887
F(29) / F(30) = 0.6180339888
F(30) / F(31) = 0.6180339887
F(31) / F(32) = 0.6180339887
F(32) / F(33) = 0.6180339887
F(33) / F(34) = 0.6180339887
F(34) / F(35) = 0.6180339887
F(35) / F(36) = 0.6180339887
F(36) / F(37) = 0.6180339887
F(37) / F(38) = 0.6180339887
F(38) / F(39) = 0.6180339887
F(39) / F(40) = 0.6180339887
F(40) / F(41) = 0.6180339887
F(41) / F(42) = 0.6180339887
F(42) / F(43) = 0.6180339887
F(43) / F(44) = 0.6180339887
F(44) / F(45) = 0.6180339887
F(45) / F(46) = 0.6180339887
F(46) / F(47) = 0.6180339887
F(47) / F(48) = 0.6180339887
F(48) / F(49) = 0.6180339887

查了下,黄金分割的发现与fib应该没有什么关系,但是这个结果又密切相关,神奇