long でのFraction の実装だと、行列式の計算のときに簡単にサチってしまったので、BigInteger でBigFraction を作ってみました。
→ソースコード
→ソースコード
処理自体はlong でもBigInteger でも全く同じなので、特に繰り返しては説明しないことにします。
Fraction の時と同じようなテストコードも再作成。
→ソースコード
実行結果は、以下のようになりました。
result: 1/2 [false, false] result: 0/0 [true, true] result: 0/1 [true, false] result: 1/0 [false, true] result: 1/1 [false, false] result: 3/2 [false, false] result: 1/-1 [false, false] result: 0/1 [true, false] result: 1/6 [false, false] result: 1/-4 [false, false] result: 1/0 [false, true] result: 1/6 [false, false] result: 3/2 [false, false] 72/256 --> 9/32 fraction1: 11/24 --> 55/120 fraction2: 7/15 --> 56/120 result: 5/6 [false, false] result: 7/10 [false, false] result: 1/6 [false, false] result: 3/10 [false, false]
ちゃんとできているようですね。
次回は、これを使って行列式の計算を行ってみようと思います。