ベストアンサー
長い除算を使用して除算します。
½= 1÷2
1÷2 = 0、余りは1なので、1の位は0です。
余りに0を追加し、除算を繰り返します。
10÷2 = 5余りがないので、10位は5です。
続行する場合は、最後に0を追加し続けます。
より簡潔に:
\ tfrac12 = 1÷2
1÷2 = \ mathbf {0} R1:0
10÷2 = \ mathbf {5} R0:0.5
つまり、\ tfrac12 = 0.5です。
\ tfrac18で試してみましょう:
\ tfrac18 = 1÷8
1÷8 = \ mathbf {0} R1:0
10÷8 = \ mathbf {1} R2:0.1
20÷8 = \ mathbf {2} R4:0.12
40÷8 = \ mathbf {5} R0:0.125
つまり、\ tfrac18 = 0.125
\ tfrac13で試してみましょう:
\ tfrac13 = 1÷3
1÷3 = \ mathbf {0} R1:0
10÷3 = \ mathbf {3} R1:0.3
続行する場合は、さらに3を追加し続けます:
10÷3 = \ mathbf {3 } R1:0.33
10÷3 = \ mathbf {3} R1:0.333
したがって、その代わりに、3の上に線を引いてそれを示します。無限に繰り返されます:
\ tfrac13 = 0。\ overline3
より一般的には、以前に取得した余りを取得するたびに、パターンはその以前のポイントから繰り返されます。
\ frac16で試してみましょう:
\ frac16 = 1÷6
1÷6 = \ mathbf {0} R1:0
10÷6 = \ mathbf {1} R4:0.1
40÷6 = \ mathbf {6} R4:0.16
\ frac16 = 0.1 \ overline6
\ tfrac17で試してみましょう:
\ tfrac17 = 1÷7
1÷7 = \ mathbf {0} R1:0
10÷7 = \ mathbf {1} R3:0.1
30÷7 = \ mathbf {4} R2:0.14
20÷7 = \ mathbf {2} R6:0.142
60÷7 = \ mathbf {8} R4:0.1428
40÷7 = \ mathbf {5} R5:0.14285
50÷ 7 = \ mathbf {7} R1:0.142857
\ tfrac17 = 0。\ overline {142857}
回答
興味深い質問ですが、重要なアルゴリズム。
ほとんどの計算機は、連分数を使用します。関数x |-> 1 /(x-int(x))を繰り返し、常にint(x)を追跡します。
1.3529411764705883を分数に変換する必要があるとします。そのintは1で、残りは1 / .3529411764705883 = 2.8333333333333326です。その整数は2で、残りの反転は1 / .8333333333333326 = 1.200000000000001です。その整数は1で、残りの反転は4.999999999999975です。その整数は4で、残りは1 / .999999999999975 = 1.000000000000025です。そのintは1で、残りの反転は40000000000000.0です。その整数は40000000000000で、残りは0なので、反転することはできません(または、40000000000000が大きすぎることに注意して、1ステップ前にカットオフします)。
とにかく、整数は1,2,1です。 4,1,40000000000000。次に、プロセスを逆にします。最後の1つを0に丸めて反転し、最後から1つを追加(1)、反転(1)、前の(4)を追加、5を取得、反転(1/5)、追加1は6/5を取得し、反転は5/6を取得し、2を追加すると17/6を取得し、反転は6/17を取得し、1を追加すると23/17を取得します。それが解決策です。