Дана последовательность {an}: a1=1, a2n=an, a2n+1=an+1. Для скольких натуральных n, не превосходящих 2019, выполняется равенство an=9?
Ответы
Ответ:
45
Пошаговое объяснение:
Рассмотрим последовательность .
Её можно записать еще таким образом:
Видно, что получается суммированием числа
и его последней цифры в двоичном разложении. Таким образом,
хранит сумму цифр в двоичном разложении числа n, что то же самое, что и количество единиц в двоичном разложении.
Требуется посчитать количество чисел от 1 до 2019, у которых в двоичном разложении ровно 9 единиц.
Рассмотрим число . Здесь 11 разрядов. Если посчитать количество чисел, у которых 9 единиц из 11 разрядов, то получим ответ для числа
. Это
.
Далее нужно вычесть варианты для чисел от 2020 до 2047.
Заметим, что двоичный префикс этих чисел совпадает и состоит из 6 единиц. Поэтому нужно вычислить число способов поставить три единицы на оставшиеся 5 мест. Это . Но это ответ для чисел от 2016 до 2047. Поэтому для получения ответа для промежутка от 2020 до 2047 требуется вычесть варианты для промежутка от 2016 до 2019. Таких вариантов 0.
Более формально. Пусть ans(l, r) - количество чисел на отрезке [l;r], имеющее ровно 9 бит. Тогда ans(1, 2019) получаем следующим образом:
ans(1, 2019) = ans(1, 2047) - (ans(2016, 2047) - ans(2016, 2019)) = 55-10+0=45