8 мин чтения

ЕГЭ по информатике 2026 · задание 14 из 27

ЕГЭ по информатике 2026, задание 14: системы счисления

Задание 14 — повышенный уровень, 1 балл. Числа и выражения записаны в разных системах счисления. Нужно найти основание, цифру или число подходящих оснований. Файла нет.

ФИПИ советует начинать с перевода в одну систему, обычно в ту, у которой основание меньше. Типичная ошибка — арифметика в недесятичной системе: вычитание единицы из 1010000₂ «в столбик» с переносом.

Конспект

Цифра не может быть больше или равна основанию. Если в записи есть цифра C или x, основание больше этой цифры. Буквы: A=10, B=11, … F=15. В основаниях больше 36 стандартных цифр нет, такие основания на ЕГЭ редки и задаются явно.

Перевод в десятичную: d_n ... d0 в основании p равно d_n * p^n + ... + d0.

Обратный перевод: деление на основание с остатком, остатки пишут снизу вверх.

Типовые вопросы:

  • найти основание p, при котором выражение равно данному числу;
  • найти число решений уравнения относительно основания или цифры;
  • посчитать, сколько чисел в данном основании обладают свойством.

Если уравнение содержит неизвестное основание p, переберите p от «максимальная цифра + 1» до разумной границы. Часто основание не больше 36, иногда до нескольких сотен — тогда не стройте строку, а считайте многочлен.

Прямое вычитание в двоичной системе отрабатывайте отдельно: 1000₂ − 1 = 111₂, не 0111 с потерей разряда.

Шаблон на Python

int(строка, основание) работает для оснований от 2 до 36. Для неизвестной цифры x перебирайте её как число и собирайте значение многочленом, не через буквы.

def from_base(digits, base):
    value = 0
    for d in digits:
        if d >= base:
            return None
        value = value * base + d
    return value

# уравнение вида 12x45_p = 6x7_p + число, цифры задайте числами
answers = []
for base in range(6, 100):  # основание больше любой цифры
    left = from_base([1, 2, 5, 4, 5], base)       # пример записи
    right = from_base([6, 5, 7], base)
    if left is None or right is None:
        continue
    if left == right + 100:
        answers.append(base)
print(answers)
print(int("101011", 2), bin(43)[2:])

Типичные ошибки

  • Основание не больше максимальной цифры, и запись всё равно принята.
  • int("12", 2) вызван для цифр больше 1 — будет исключение, его надо отсечь заранее.
  • Забыт перенос при вычитании единицы в двоичной записи.
  • В ответ попали все основания, а просили минимальное.

Попробуйте объяснить с Мишкой

Бесплатный ИИ-репетитор объяснит любую тему так, как вам понятно — шаг за шагом.

Начать бесплатно