1からnまでの自然数の二乗の平均を求める方法
はじめに
ある数値 n が与えられたとき、1 から n までの自然数それぞれの二乗を計算し、その平均値を求める問題について解説します。
手順は以下の通りです。
- 1 から n までの各自然数の二乗を順番に計算する
- それらの二乗の合計を求める
- 合計を n で割って平均値を算出する
入出力例
入力:3
出力:4.666667
計算の流れ
n = 3 の場合、以下のように計算されます。
1² + 2² + 3² = 1 + 4 + 9 = 14
14 ÷ 3 = 4.666667
つまり、まず各数値を二乗して合計し、最後に個数 n で割ることで平均が得られます。
C++による実装例
以下は、ループを使って二乗の平均を求める C++ のサンプルコードです。
#include<iostream>
using namespace std;
int main() {
long n, i, sum = 0, d;
n = 3;
for (i = 1; i <= n; ++i) {
d = i * i; // 各数値の二乗を計算
sum += d; // 二乗した値を合計に加算
}
cout << sum / n; // 合計を n で割って平均を出力
return 0;
}
コードのポイント
- 変数 d:現在の数値 i を二乗した結果を一時的に保持します。
- 変数 sum:二乗した値を累積していくための合計用変数です。初期値は 0 です。
- for ループ:i を 1 から n まで繰り返し処理することで、すべての自然数の二乗を効率よく計算できます。
このように、単純なループ処理と累積加算を組み合わせるだけで、n 個の自然数の二乗の平均を簡単に求めることができます。
-
C言語で最初のn個の自然数の立方和を求めるプログラム
この記事では、最初のn個の自然数(1からnまで)の立方和を求める方法について解説します。基本的なアプローチとしては、1からnまで繰り返すforループを1つ使い、各ステップでその項の立方を計算して合計に加算していきます。この方法の計算量はO(n)です。しかし、O(1)つまり定数時間でこの問題を解きたい場合は、以下の級数の公式を利用できます。1³ + 2³ + 3³ + … + n³ = {n(n+1)/2}²アルゴリズムcubeNNatural(n)begin sum := 0 for i in range 1 to n, do sum := sum + i^3
-
最初のn個の自然数の二乗和を求めるC++プログラムの解説
はじめにこの記事では、最初のn個の自然数(1からnまで)の二乗和を求める方法について解説します。例えば、n = 4 の場合、計算結果は 1² + 2² + 3² + 4² = 1 + 4 + 9 + 16 = 30 となります。基本的なアプローチとしては、1からnまで繰り返すforループを使用し、各ステップで項の二乗を計算して合計に加算していく方法があります。このプログラムの計算量は O(n) です。しかし、O(1) の定数時間で解きたい場合は、次の級数の公式を利用できます。Σk² = n(n + 1)(2n + 1) / 6この公式を使えば、ループ処理を行わずに一発で答えを求めることが可能で