Алгоритм вычисления значения функции \(F(n),\) где \(n\) – целое неотрицательное число, задан следующими соотношениями:
Определите количество значений \(n\) на отрезке \([1,~500~000~000],\) для которых \(F(n) = 4.\)
Решение:
Функция \(F(n) = 4,\) только для чисел, в двоичной записи которых имеется ровно три единицы.
Python
from itertools import combinations
q = 0
for n in range(2, 29):
for a, b in combinations(range(1, n + 1), 2):
tmp = ['1'] + ['0'] * n
tmp[a] = '1'
tmp[b] = '1'
q += int(''.join(tmp), 2) < 500_000_000
print(q)
Ответ: \(3654\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене