Вот обобщение этой проблемы на частую ситуацию повторяющихся паттернов.
Предположим, что 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
Обобщение для ситуации, когда повторяющемуся шаблону предшествует неповторяющаяся последовательность, является немедленным.