小数を使用せずに計算機を作成しています (有理数のみをサポートしています) が、平方根のバージョンを実行できるようにしたいと考えています。
平方根関数が (たとえば) 数値 12 に対して押された場合、平方根を単純化/「縮小」して 2*sqrt(3) を返したいと思います。 sqrt(2*2) を 2 として抽出します。
私は、非常に優れた gcd() メソッドと、正のパラメーターに制限された pow() メソッドを持つ biginteger を使用しています (これは、私がやろうとしていることを正確に実行しようとしない限り意味があります。
これを行うための反復的な方法をいくつか考え出すことができますが、数百桁の範囲の数値では時間がかかる場合があります。
私が触れたことのない、可愛くてシンプルで、繰り返しのないトリックがあることを願っています。
明確にするために:私は虚数を追加するつもりなので、次のような結果を計画しています:
17 + 4i √3
-----------
9
小数の長いストリームなし。