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

第n項が n² −(n−1)² となる数列の総和を求めるJavaプログラム

第n項が n² −(n−1)² で表される数列の総和を求める方法を解説します。まず数学的な仕組みを確認し、その後で実際に動作するJavaプログラムと実行結果を見ていきましょう。

数学的な背景:総和がn²になる理由

第n項が n² −(n−1)² である数列について、初項から第n項までの総和 S は次のように表せます。

S = (1² − 0²) + (2² − 1²) + (3² − 2²) + … + (n² −(n−1)²)

各カッコ内のマイナスの項と、直後のカッコ内のプラスの項が順に打ち消し合うため、このような級数は「望遠鏡和(テレスコーピング級数)」と呼ばれます。すべての項が消去された結果、総和はシンプルに となります。

さらに、n² −(n−1)² を展開すると 2n − 1 になるため、この数列は実質的に「1, 3, 5, 7, …」という奇数列です。「最初のn個の奇数の和は n² に等しい」という有名な性質とも一致しており、数学的にも美しい構造を持っています。

Javaプログラムの例

以下は、与えられた n に対して総和(すなわち n²)を計算するJavaプログラムです。

public class Demo {
   static long my_val = 1000000007;
   public static long compute_val(long my_int){
      return ((my_int % my_val) * (my_int % my_val)) % my_val;
   }
   public static void main(String[] args){
      long my_int = 45687234;
      System.out.println("計算結果は ");
      System.out.print(compute_val(my_int));
   }
}

出力

計算結果は
335959495

プログラムの解説

Demo クラス内には、compute_val というメソッドが定義されています。このメソッドは、引数として渡された整数の二乗を計算して返します。前述のとおり、この数列の総和は n² に等しいため、二乗の計算がそのまま答えになります。

ポイントとなるのは、クラス変数として宣言された my_val = 1000000007 です。これは競技プログラミングなどで広く使われる大きな素数(10⁹ + 7)で、n が非常に大きい場合に n² が long 型の範囲を超えてオーバーフローするのを防ぐ役割を果たします。掛け算の前にそれぞれの剰余を取ることで、中間結果が大きくなりすぎないよう工夫されています。

main メソッドでは、long型の変数 my_int に 45687234 を代入し、この値を引数として compute_val メソッドを呼び出しています。計算結果はコンソールに出力され、上記のような実行結果が得られます。

まとめ

第n項が n² −(n−1)² である数列の総和は、望遠鏡和の性質により n² に等しくなります。Javaで大きな数を扱う場合は、適切な剰余演算を組み込むことでオーバーフローを回避し、正確な計算結果を得ることができます。

  1. Nまでのフィボナッチ数列の偶数項の合計を求めるJavaプログラム

    この記事では、Nまでのフィボナッチ数列における偶数項の合計を求める方法を解説します。フィボナッチ数列とは、「直前の2つの整数の和」によって次の数が生成される数列のことで、偶数項の合計とは、その数列から条件に該当する項を取り出して足し合わせた値を指します。 フィボナッチ数列の基本 フィボナッチ数列は、直前の2つの数を加算することで次の数を順に生成していきます。数列は2つの初期値 F0 と F1 から始まり、それぞれ「0, 1」または「1, 1」の組み合わせを初期値として採用できます。一般形は次のとおりです。 Fn = Fn-1 + Fn-2 したがって、フィボナッチ数列は次のように表せます。 F

  2. 第n項がn² − (n−1)²で表される級数の総和を求めるPythonプログラム

    本記事では、第n項が n² − (n−1)² で表される級数の総和を、Pythonを使って効率的に求める方法について解説します。 問題文 整数 n が与えられたとき、次の一般項で表される級数の最初の n 項の総和を求めます。 Tn = n² − (n−1)² アプローチのポイント 各項を順番に計算して足し合わせることも可能ですが、この級数には「望遠鏡和(テレスコーピング)」と呼ばれる便利な性質があります。一般項を展開してみましょう。 Tn = n² − (n−1)² = n² − (n² − 2n + 1) = 2n − 1 つまり各項は連続する奇数であり、その総和は次のように簡潔に表せます。