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

PHPで最初のn個の自然数の2乗の合計を計算する方法

PHPで最初のn個の自然数の2乗の合計を求めるには、ループ処理を用いた関数を定義するのが基本的なアプローチです。以下に具体的なコード例を示します。

コード例

<?php
function sum_of_squares($limit)
{
    $ini_sum = 0;
    for ($i = 1; $i <= $limit; $i++)
        $ini_sum += ($i * $i);
    return $ini_sum;
}
$limit = 5;
print_r("最初の5つの自然数の2乗の合計は ");
echo sum_of_squares($limit);
?>

出力結果

最初の5つの自然数の2乗の合計は 55

コードの解説

まず、sum_of_squares という名前の関数を定義します。この関数は、2乗の合計を求めたい上限値(リミット)を引数として受け取ります。

関数内部では、合計値を格納する変数 $ini_sum を 0 で初期化し、for ループを使って 1 から上限値まで順番に繰り返し処理を行います。各反復ごとに、現在の値 $i を2乗したもの($i * $i)を合計変数に加算していきます。

ループが完了すると、関数は合計値を返します。関数の外部では上限値として 5 を指定し、その値を引数として渡して関数を呼び出しています。この例では 1² + 2² + 3² + 4² + 5² = 1 + 4 + 9 + 16 + 25 = 55 という結果が得られます。

数式を使った効率的な方法

ループを使わず、数学の公式を利用することもできます。最初のn個の自然数の2乗の合計は、次の公式で求められます。

合計 = n × (n + 1) × (2n + 1) / 6

この公式を使えば、n がどれほど大きくても一度の計算で結果を得られるため、パフォーマンス面で有利です。

  1. 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

  2. 最初の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この公式を使えば、ループ処理を行わずに一発で答えを求めることが可能で