読者です 読者をやめる 読者になる 読者になる

雨谷の日和

過去12年で1,600を超えるアニメの第1話だけは見続けた僕のお勧めアニメがハズレなはずがない

分数での掃き出し法による行列式計算2

さて、分数を表現するプログラムモジュールを考えてみましょう。
すぐに思いつくのは、分数の分母と分子をprivate 変数に持つような構造体でしょうか。
モジュールの名前はFraction とでもしておくとして、Java で書き下すと以下のような感じになりますね。
ソースコードのファイル

package org.dmwp.math;

public class Fraction extends Object {

  private long numerator;
  private long denominator;

  public Fraction(long numerator, long denominator){
    super();
    this.numerator = numerator;
    this.denominator = denominator;
  }

  public long getNumerator(){return numerator;}
  public long getDenominator(){return denominator;}

}

とりあえず分子(numerator)と分母(denominator)を整数型(long)で持たせてみました。
分子と分母の値はコンストラクタで受け取り、その値を取得するためのgetter 関数を付けてあります。
このモジュールの使い方はだいたいこんな感じになるでしょうか。
ソースコードのファイル

package org.dmwp.math;

class FractionTest {
  public static void main(String[] args) throws Exception {

    Fraction fraction = new Fraction(1, 2); //初期化

    System.out.println(  // 内容表示
      "result: numerator=" + fraction.getNumerator() +
      ", denominator=" + fraction.getDenominator()
    );

  }
}

上記のテストプログラムは、まずFraction のインスタンスを初期化し、次にその内容を表示させているというだけのものです。
実行結果は以下のようになります。

result: numerator=1, denominator=2

まあ、至極当然の結果ですね。特に複雑なこともしていませんし。
このFraction モジュールをベースにして、以後は加算減算などの四則演算や、分数の計算で一般に用いられる各種の機能を付け加えていくことになると思います。