Как это можно доказать?
Можно попробовать в обратную сторону, предположительным образом открытия: вывести для этих двух величин рекуррентные соотношения и сравнить с данными. Может быть сразу совпадут, может быть после небольшой доводки, а вот если упрутся… но мы же не знаем наверняка — вдруг повезёт?
-- Ср мар 24, 2021 00:11:18 --Ну вот эта часть например по мне читается на ура: Чтобы узнать
, нам надо отгрызть от
самый правый бит, сделав
, и отнять его от
, сделав
, и посчитать
. И это вроде не сходится со словесным описанием: там
считает пары единиц, а тут оно уменьшилось уже от выкидывания одной единицы.
-- Ср мар 24, 2021 00:16:27 --А, там не пары единиц, идущих подряд, а мы как раз считаем расстояние между ними? Тогда прекрасно согласуется. А как только мы отсчитали нужное число единиц, мы утыкаемся во второе равенство, которое считает правые нули, а именно наибольшую степень двойки, на которое делится число. И это равенство опять согласуется: мы откидываем нули и прибавляем единицу к результату, пока не наткнёмся на единичный бит и перестанем зависеть от
для следующего префикса.
-- Ср мар 24, 2021 00:18:02 --В общем читается превосходно, стоит лишь нам подумать о реализации вычисления такой величины с помощью динамического программирования (допустим): придём вот ровно к тому же.