Базовый (1 балл)
Время: 2-4 мин
Python
int(s, base)
Универсальный перевод
Все задачи №{ topic_num } в каталоге
Задание №14. Позиционные системы счисления
Тема: Арифметические выражения в n-ичных СС, перебор неизвестных цифр x и y
Вычисление количества цифр в больших степенных выражениях или поиск неизвестных цифр x, y в позиционных уравнениях. На Python решается за 1 минуту.
1. Универсальный перевод в любую систему счисления:
def to_base(n, base):
digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
if n == 0: return "0"
res = ""
while n > 0:
res = digits[n % base] + res
n //= base
return res
Разновидности и прототипы задания на экзамене
Тип 1: Подсчет цифр в выражении (3^2026 - 9^100 + 27)
Перевод длинного числа в нужную систему счисления делением с остатком.
Тип 2: Уравнения с неизвестными цифрами x, y в СС с основанием N
Перебор x в `range(N)` с приведением строк через `int(..., N)`.
Боевой шаблон решения на Python
Запустить код в онлайн-песочнице# === Боевой шаблон Задания №14 на Python ===
# Тип 1: Подсчет цифр в степенном выражении:
val = 4**120 + 2**300 - 64
# Переводим в 4-ичную систему счисления:
s = ""
while val > 0:
s = str(val % 4) + s
val //= 4
print("Количество троек в 4-ичной записи:", s.count('3'))
# Тип 2: Поиск неизвестной цифры x (СС с основанием 19):
# Выражение: 12x45_19 + 78x90_19 кратно 18
for x in range(19):
# Превращаем x в 16-ричный/19-ричный символ:
x_char = "0123456789ABCDEFGH"[x]
num1 = int(f"12{x_char}45", 19)
num2 = int(f"78{x_char}90", 19)
total = num1 + num2
if total % 18 == 0:
print("Искомый x:", x, "Значение частного:", total // 18)
break
Анти-примеры (Типичные ошибки vs Как делать правильно)
Как делать НЕ надо:
Ошибка: Перебирать range(20) при основании системы счисления 15
Цифра x не может быть больше или равна основанию СС!
Как делать ПРАВИЛЬНО:
Правильно: Диапазон перебора цифры строго от 0 до base-1: range(base)
ГРОБ
ГРОБ №14: Две неизвестные переменные x и y
Уравнение содержит две неизвестные цифры x и y.
Как обойти ловушку: Используйте вложенный цикл: `for x in range(base): for y in range(base):`.
Лайфхаки и подводные камни на экзамене:
- Функция `int('12A45', 19)` встроена в Python и работает для любых систем счисления от 2 до 36!