Как решать задание 5 ЕГЭ по информатике (автомат, системы счисления)?
Задание 5 с автоматом, который что-то делает с числом по правилам и выдаёт результат, меня запутывает. Надо найти наименьшее число, у которого результат больше какого-то. Как подступиться к заданию 5?
2 ответа
Задание 5 — это «автомат» или алгоритм, преобразующий число по заданным правилам. Часто работа идёт с десятичной или двоичной записью.
Типовой автомат: берётся число, по нему строится новое (например: сумма цифр, приписывание остатков, операции в двоичной системе), и нужно найти наименьшее/наибольшее исходное число с заданным свойством результата.
Лучший метод — перебор на Python. Реализуешь правила автомата точно как в условии и гоняешь числа по порядку:
def avtomat(n):
# 1) перевести в нужную с/с
# 2) применить правила из условия
# 3) вернуть результат R
...
return R
x = 1
while True:
if avtomat(x) > 300: # условие из задачи
print(x)
break
x += 1
Для систем счисления удобно: bin(n), oct(n), int(s, 2).
Частая ошибка: неточно перенести правила автомата (порядок действий, в какой системе считаем, что приписываем спереди или сзади). Перечитай условие пошагово и проверь автомат на примере из задания — если для контрольного числа получаешь тот же результат, что в условии, логика верна.
Если требуют именно наименьшее — иди while от 1 вверх; если наибольшее в диапазоне — перебирай весь диапазон и бери максимум подходящего.
Ключ к заданию 5 — дословно воспроизвести алгоритм автомата. В условии обычно по шагам: «получили двоичную запись, нашли сумму единиц, приписали...». Каждый шаг — строка кода.
И всегда проверяй свою функцию на примере, который дан в условии (там часто показан результат для какого-то числа). Совпало — можно запускать перебор и доверять ответу.