Преобразование повторяющегося двоичного числа в десятичное - PullRequest
1 голос
/ 30 мая 2019

Как мне представить 0,1011111 .... или 0,10 (1) в виде дроби а / б?Поскольку a & b - целые числа.

Я пробовал этот метод

x = 0,10 (1) x = 10. (1) / 4

Теперь y = 10. (1)

2y = 101. (1)

, что означает 2y - y = 91 y = 91

x = 91/4 Но a = 91 & b= 4 неверно.

Как мне решить эту проблему?

Ответы [ 3 ]

1 голос
/ 30 мая 2019

Вы можете сделать это следующим образом:

x = (0,1011111) 2

Представление двоичного члена в десятичном виде дает нам:

x = 1/2 1 + 0/2 2 + 1/2 3 + 1/2 4 +. ..)
x = 1/2 + 1/2 2 * (1/2 1 + 1/2 2 + 1/2 3 + ...)

Если мы проигнорируем термин, выделенный жирным шрифтом в вышеприведенном уравнении, термин в скобках станет x , поэтому мы можем сказать, что термин в скобках равен (x + 1/2 2 )

x = 1/2 + 1/2 2 * (x + 1/2 2 )
х = 1/2 + х / 4 + 1/16

Решите вышеприведенное уравнение

3x / 4 = 9/16
х = 3/4

1 голос
/ 30 мая 2019

Вы должны заметить, что числа все еще в двоичном виде. Таким образом, в десятичном виде вы получите, что целая часть y равна 2, а 2y равна 5, так что в разнице y=3.

Обратите внимание, что в двоичном 0.1(1)=1, как и в десятичном 0.9(9)=1. Таким образом, альтернативным образом, x является в точности 0.11 двоичным, что является 1/2+1/4=3/4.

0 голосов
/ 30 мая 2019

Вот обобщение этой проблемы на частую ситуацию повторяющихся паттернов.

Предположим, что x = 0,001100110011 ..., где шаблон 0011 повторяется бесконечно.

Пусть a будет шаблоном (0011 для x), а k будет его длиной (т.е. 4 для x).

x = a & times; 2 ^ -k + a & times; 2 ^ -2k + ...
= a & times; 2 ^ -k & times; & sum; i = 0 & infin; (2 ^ -k) ^ i
= a & times; 2 ^ -k & times; lim n & rarr; & infin; (1- (2 ^ -k) ^ n) / (1-2 ^ -k)
поскольку x - сумма геометрической серии с отношением 2 ^ k.

Когда n переходит в & infin ;, (2 ^ -k) ^ n обнуляется, и мы имеем
x = a & times; 2 ^ -k / (1-2 ^ -k) = a / (2 ^ k-1)

Если x = 0,11111 ..., a = 1, k = 1 и x = 1 / (2-1) = 1, и мы получим результат, уже представленный (намного проще!) LutzL, который отвечает на Оригинальный вопрос.

Но мы можем решить более сложные проблемы с любым повторяющимся шаблоном.
Например, если x = 0,001100110011 ..., мы имеем = 0011 = 3 и k = 4.
Следовательно, х = 3 / (2 ^ -4-1) = 1/5 = 0,2

Обобщение для ситуации, когда повторяющемуся шаблону предшествует неповторяющаяся последовательность, является немедленным.

...