Автомат обрабатывает десятичное натуральное число \(N\) по следующему алгоритму:
Пример. Дано число \(N = 11.\) Алгоритм работает следующим образом.
Сколько различных значений может получиться на отрезке \([50; \, 100]\) в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += str(int(bn.count('1') <= bn.count('0')))
m = len(bn) // 2
return int(bn[:m-1] + bn[-m+1:], 2)
#print(R(11))
print(len(set([R(N) for N in range(11, 10_000) if 50 <= R(N) <= 100])))
Ответ: \(13\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене