Задание 16. Информатика. ЕГЭ. Поляков-6830

Просмотры: 118
Изменено: 1 февраля 2025

(А. Богданов) Обозначим частное от деления натурального числа \(a\) на натуральное число \(b\) как \(a // b\), а остаток как \(a\%b.\) Алгоритм вычисления функции \(F(n),\) где \(n\) — натуральное число, задан следующими соотношениями:

  • \(F(n) = n,\) если \(n < 2\);
  • \(F(n) = F(n // 2) + F(n \% 2)\), если \(n \geqslant 2\).

Определите количество значений \(n < 2^{30}\), для которых функция \(F(n) = 27\).

Решение:

Функция \(F(n)\) вычисляет сумму цифр в двоичной записи числа \(n\), или, что то же самое, количество единиц в бинарном представлении \(n.\) Поэтому, количество значений \(n < 2^{30}\), для которых функция \(F(n) = 27\) это в точности количество чисел, в двоичной записи которых не больше \(30\) цифр, причём \(27\) из них — единицы. Т.е. это $$ C^{27}_{30} = \frac{30!}{27! \cdot 3!} = \frac{28 \cdot 29 \cdot 30}{6} = 4060.$$

Ответ: \(4060\)