C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++で級数(1/a + 2/a² + 3/a³ + … + n/aⁿ)の合計を求めるプログラム

級数の合計を求めるC++プログラム

このチュートリアルでは、次の級数の合計を求めるC++プログラムについて解説します。

1/a + 2/a2 + 3/a3 + … + n/an

この問題では、aとnの値が与えられます。第1項から第n項までのすべての項を順番に足し合わせることで、級数全体の合計を計算するのが課題です。

解法のアプローチ

各項は「i / ai」という形で一般化できます。そこで、forループでiを1からnまで変化させながら、pow関数を使ってaのi乗を求め、各項の値を合計変数に加算していきます。

サンプルコード

#include <iostream>
#include <math.h>
using namespace std;
//calculating the sum of the series
float calc_sum(int a, int n) {
   int i;
   float sum = 0;
   for (i = 1; i <= n; i++)
   sum += (i/ pow(a, i));
   return sum;
}
int main() {
   int a = 3, n = 4;
   float res = calc_sum(a,n);
   cout << res << endl;
   return 0;
}

コードの解説

  • calc_sum関数:aとnを引数として受け取り、級数の合計をfloat型で返します。
  • forループ:iを1からnまで繰り返し、pow(a, i)でaのi乗を計算し、それをiで割った値をsumに加算します。
  • main関数:a = 3、n = 4としてcalc_sumを呼び出し、結果を標準出力に表示します。

出力

0.716049

a = 3、n = 4の場合、計算は次のようになります。

1/3 + 2/9 + 3/27 + 4/81 ≒ 0.333 + 0.222 + 0.111 + 0.049 = 0.716049

このように、pow関数とループ処理を組み合わせることで、べき乗を含む級数の合計をシンプルに求めることができます。

  1. Pythonでオイラー数eを計算する方法|e = 1 + 1/1! + 1/2! + … + 1/n! を使った実装

    オイラー数(ネイピア数)eは、数学において最も重要な定数の一つです。本記事では、次の級数の式を用いてオイラー数の値を計算するPythonプログラムの実装方法を解説します。 e = 1 + 1/1! + 1/2! + 1/3! + …… + 1/n! この計算を実現するためには、まず与えられた数の階乗を求める関数を定義し、続いてそれらの階乗の逆数の総和を計算する関数を定義します。以下に具体的な実装例を示します。 サンプルコード def factorial_result(n): result = 1 for i in range(2, n + 1): result

  2. 1/1! + 2/2! + 3/3! + …… + n/n! の級数の合計を求めるPythonプログラム

    この記事では、与えられた問題を解くための解法とアプローチについて詳しく解説します。 問題文 整数 n が入力として与えられたとき、次の級数の合計を求めます。 1/1! + 2/2! + 3/3! + 4/4! + …… + n/n! ここでは for ループを使用して実装するため、時間計算量は O(n) となります。また、処理効率を高めるポイントとして、階乗の計算を同じループ内で同時に行っている点が挙げられます。 アルゴリズム 以下の手順で級数の合計を求めます。 合計値 res を 0、階乗値 fact を 1 で初期化します。 i を 1 から n まで順に処理し、fact *= i に