C++ 几何级数无限项求和程序


什么是几何级数 (GP)?

几何级数 (GP) 是一串数字,其中每一项都是通过将前一项乘以一个常数生成的。这个常数在 GP 中被称为公比。在本文中,我们将讨论如何使用 C++ 中的不同方法来计算 GP 中无限项的和。

注意:需要记住的重要条件是,只有当公比 (r) 的绝对值小于 1 时,GP 的正有效无限和才可能存在,即 ∣r∣ < 1。

计算 GP 中无限项和的方法

以下是计算 GP 中无限项和的两种不同方法(方法)

暴力法

我们使用迭代法来计算 GP 中无限项的和。我们初始化一个变量来存储项的和并获取迭代次数。我们设置第一项 a,并将当前项添加到总和中。通过将其乘以公比来更新当前项。此过程将持续到一定次数的迭代并返回 GP 的无限项之和。

步骤

  • 检查 |r| >= 1。如果为真,则返回 NAN,因为级数不收敛。
  • 初始化 sumcurrentTerm 为第一项 a
  • 使用循环迭代计算项的和,在预定义的最大迭代次数后停止以模拟无限项。

实现

#include <bits/stdc++.h>
using namespace std;

double sumOfInfiniteTermsGP(double a, double r) {
    if (fabs(r) >= 1) {
        return NAN;
    }

    double sum = 0;
    double currentTerm = a;
    // We will take the maximum number of iterations
    int maxIterations = 10000;

    // Iteratively calculate the sum of terms
    while (maxIterations > 0) {
        sum += currentTerm;
        currentTerm *= r;
        maxIterations--;
    }

    return sum;
}

int main() {
    double ans = sumOfInfiniteTermsGP(12, 0.2);

    if (!isnan(ans)) {
        cout << "The sum of infinite terms in the GP is: " << ans << endl;
    } else {
        cout << "Sum does not converge as |r| >= 1" << endl;
    }

    return 0;
}

输出

The sum of infinite terms in the GP is: 15

复杂度分析

  • 时间复杂度:O(n),其中 n 是迭代次数。
  • 空间复杂度:O(1),因为没有使用额外的空间。

直接公式法

我们可以使用直接公式来找到几何级数的无限项之和。求 GP 无限项和的公式为

GP 的无限项和 = a / (1 - r),如果 ∣r∣ < 1

步骤

  • 定义一个函数,该函数采用两个参数:第一项和公比。
  • 检查 r 的绝对值是否大于或等于 1。如果为真,则返回 NAN,因为级数不收敛。
  • 使用公式 Sum = a / (1 - r) 计算 GP 的无限项之和。
  • 最后,返回总和。

实现

#include <bits/stdc++.h>
using namespace std;

double sumOfInfiniteTermsGP(double a, double r) {
    if (fabs(r) >= 1) {
        return NAN;
    }
    return a / (1 - r);
}

int main() {
    double ans = sumOfInfiniteTermsGP(12, 0.2);

    if (!isnan(ans)) {
        cout << "The sum of infinite terms in the GP is: " << ans << endl;
    } else {
        cout << "Sum does not converge as |r| >= 1" << endl;
    }

    return 0;
}

输出

The sum of infinite terms in the GP is: 15

复杂度分析

  • 时间复杂度:O(1),因为计算是在常数时间内完成的。
  • 空间复杂度:O(1),因为没有使用额外的空间。

更新于: 2024年11月21日

2 次查看

开启您的 职业生涯

完成课程获得认证

开始学习
广告