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

最初のn個の自然数の二乗和を計算するJavaプログラム

本記事では、最初のn個の自然数(1からnまでの整数)の二乗和を計算するJavaプログラムを紹介します。二乗和とは、1² + 2² + 3² + … + n² のように、各自然数を2乗してすべて足し合わせた値のことです。

数学的な背景

この計算には、次の有名な公式が利用できます。

1² + 2² + … + n² = n(n+1)(2n+1) / 6

この公式を使うことで、ループで一つずつ足し合わせる方法に比べ、O(1)の定数時間で結果を求めることができ、非常に効率的です。

サンプルコード

import java.io.*;
import java.util.*;
public class Demo{
    public static int sum_of_squares(int val){
        return (val * (val + 1) / 2) * (2 * val + 1) / 3;
    }
    public static void main(String[] args){
        int val = 8;
        System.out.println("最初の8個の自然数の二乗和は ");
        System.out.println(sum_of_squares(val));
    }
}

実行結果

最初の8個の自然数の二乗和は
204

プログラムの解説

このプログラムでは、Demoというクラスの中にsum_of_squaresというメソッドを定義しています。このメソッドは、引数として受け取った「n」に対して、公式 n(n+1)(2n+1)/6 を用いて最初のn個の自然数の二乗和を計算し、その結果を返します。

mainメソッド内では、変数valに8を代入し、この値を引数としてsum_of_squaresメソッドを呼び出しています。その結果として、1² + 2² + … + 8² = 204 が計算され、コンソールに出力されます。

まとめ

ループを使用せずに数学の公式を直接適用することで、少ないコード量かつ高速に二乗和を求められる点が、このアプローチの大きなメリットです。同様の手法は、等差数列の和など他の級数計算にも応用できます。

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