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

【C++】級数 1 − x²/2! + x⁴/4! − … の第n項までの和を求めるプログラム

このチュートリアルでは、級数 1 − x²/2! + x⁴/4! − … を第n項まで計算し、その和を求めるC++プログラムについて解説します。

この問題では、x と n の値が入力として与えられます。私たちのタスクは、指定された n 項まで級数を計算し、その合計値を求めることです。階乗(factorial)を計算する処理と、標準ライブラリのべき乗関数 pow() を組み合わせれば、簡単に実装できます。

サンプルコード

#include <math.h>
#include <stdio.h>

// 級数の和を計算する関数
double calc_sum(double x, int n){
    double sum = 1, term = 1, fct, j, y = 2, m;
    int i;
    for (i = 1; i < n; i++) {
        fct = 1;
        // 階乗を計算
        for (j = 1; j <= y; j++) {
            fct = fct * j;
        }
        term = term * (-1); // 符号を交互に切り替える
        m = term * pow(x, y) / fct;
        sum = sum + m;
        y += 2;
    }
    return sum;
}

int main(){
    double x = 5;
    int n = 7;
    printf("%.4f", calc_sum(x, n));
    return 0;
}

出力

0.3469

コードのポイント

calc_sum() 関数では、最初の項「1」を初期値として sum に設定しています。ループの中で各項に対応する階乗を計算し、term 変数によって符号(+ と −)を交互に切り替えながら、x の偶数乗を階乗で割った値を順番に加算していきます。変数 y は 2 ずつ増加するため、x²、x⁴、x⁶ … といった偶数乗の項が順に処理される仕組みです。

上記の例では x = 5、n = 7 を指定しているため、第7項までの和である「0.3469」が出力されます。

  1. 【Java】1/1! + 2/2! + 3/3! + … + n/n! の級数の和を求めるプログラム

    本記事では、次の級数の合計を求めるJavaプログラムを紹介します。 1/1! + 2/2! + 3/3! + 4/4! +…….+ n/n! 階乗(!)とは 「!」は階乗を表す記号です。nの階乗(n!)は、1からnまでのすべての整数を掛け合わせた値になります。例えば、3! = 3 × 2 × 1 = 6、4! = 4 × 3 × 2 × 1 = 24 です。したがって、この級数の第3項は 3/6 = 0.5、第4項は 4/24 ≒ 0.1667 となります。 サンプルコード import java.io.*; import java.lang.*; public

  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 に