0.(0011) や 0.0(101) のように繰り返される 2 進数が与えられた場合、それを 10 進数に変換するにはどうすればよいでしょうか?
これまで掘り下げてきたのは、以下のように、終端の 2 進数を 10 進数に変換する簡単な方法です。
res(N+2) = res(N+1) / 2 + res(N)
ここで、res はステップ N の後の結果であり、N は現在の反復です (N=0; n->(num 2 進数))。これを非終了の 2 進数に繰り返し適用すると、適切な近似値が得られます。たとえば、
dec:0.4 || bin: 0.(0110):
0 / 2 + 0 = 0
0 / 2 + 0 = 0
0 / 2 + 1 = 1
1/2 / 2 + 1 = 3/2
3/2 / 2 + 0 = 3/4
3/4 / 2 + 0 = 3/8
3/8 / 2 + 1 = 19/16
19/16 / 2 + 1 = 51/32
51/32 / 2 + 0 = 51/64
51/64 / 2 + 0 = 51/128 = 0.3984
これは約 0.4 です。
だから、私は概算を計算する手段を持っていますが、これを表現する方法を見つけるのに苦労しています. n->inf として限界で計算できるシリーズとしてそれを書き始めましたが、これまでのところあまり成功していません。