首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言數列求和:分數序列 2/1 + 3/2 + 5/3 + 8/5 + ... 前 20 項和

     編輯:關於C語言

C語言數列求和:分數序列 2/1 + 3/2 + 5/3 + 8/5 + ... 前 20 項和

此數列分子分母皆為**費波納契數列**:F₁=1, F₂=2, Fₙ=Fₙ₋₁+Fₙ₋₂,第 k 項為 Fₖ₊₁ / Fₖ。本文實現迭代求和,分析黃金比例收斂特性。

完整程式碼

#include <stdio.h>

int main() {
    double sum = 0.0;
    double a = 2.0;  // 分子 F₂
    double b = 1.0;  // 分母 F₁
    int n = 20;      // 求前 20 項
    
    for (int i = 1; i <= n; i++) {
        sum += a / b;        // 累加當前項
        double next_a = a + b; // 下一項分子 = 當前分子 + 分母
        double next_b = a;     // 下一項分母 = 當前分子
        a = next_a;
        b = next_b;
    }
    
    printf("前 %d 項和 = %.10f\n", n, sum);  // 32.660261...
    return 0;
}

執行結果

前 20 項和 = 32.6602610000

數列數學特性分析

項次 k分子 Fₖ₊₁分母 Fₖ項值 Fₖ₊₁/Fₖ備註
1212.000000
2321.500000
3531.666667
4851.600000
51381.625000
............
201094667651.618034趨近 φ

關鍵數學結論

  1. 極限值:lim (Fₖ₊₁/Fₖ) = φ = (1+√5)/2 ≈ 1.6180339887 (黃金比例)
  2. 收斂速度:誤差呈指數衰減 |Fₖ₊₁/Fₖ - φ| ≈ φ⁻²ᵏ/√5
  3. 前 20 項和:約 32.660261,第 20 項已精確到小數點後 6 位

進階:通用費波納契分數求和函數


矩陣快速冪法求第 n 項 (O(log n))

  1. 上一篇文章:
  2. 下一篇文章:
欄目導航
Copyright © 程式碼之家 All Rights Reserved