К содержанию

Задание 14

Позиционные системы счисления

Как посчитать цифры в записи огромного числа — вручную и программой — и как найти неизвестное число x или неизвестную цифру.

6 подтем · 44 задачи + 6 дополнительных · повышенный · ≈ 3 мин

Подтема 1 из 6

Запись числа и её значение

Что спрашивают в задании 14, как прочитать запись в любой системе и как получить запись числа делением.

Как устроена тема

В задании 14 огромное число записывают в другой системе счисления и спрашивают что-то о его цифрах. Вот задача, которую мы будем решать всю тему:

«Значение арифметического выражения 5²³ + 25¹² − 10 записали в системе счисления с основанием 5. Сколько цифр 4 содержится в этой записи?»

Переводить такое число вручную не нужно: его запись можно понять по тому, как оно составлено, или посчитать программой. Сначала разберём, что сказано в условии:

В условииЧто это значит
значение выражения 5²³ + 25¹² − 10одно огромное число — в нём 17 десятичных цифр
записали в системе с основанием 5это же число пишут цифрами 0, 1, 2, 3, 4
сколько цифр 4ответ — количество четвёрок в этой записи

Тема состоит из шести подтем — у каждой своя страница. Идём по ним по порядку:

  1. Запись числа и её значение — ты сейчас здесь.
  2. Запись суммы и разности степеней — как выглядят степени основания, и ответ задачи вручную: 21.
  3. Цифры значения выражения программой — тот же ответ программой; так решают любую задачу на подсчёт цифр.
  4. Выражение с параметром x — вместо 10 вычитают неизвестное x.
  5. Неизвестные цифры — неизвестная цифра x стоит в самой записи.
  6. Неизвестное основание и признаки делимости — дополнительный урок для редких задач.

Почти везде задачу можно решить и вручную, и программой — выбирай вкладку «Вручную» или «Python». На экзамене подойдёт любой способ, а второй пригодится для проверки.

Значение записи

Какое число скрывается за записью 2304₅? Маленькое число снизу — основание системы, здесь 5.

Каждую цифру умножают на вес её места и всё складывают. Веса справа налево: 1, q, q², q³, … В десятичной системе так же: 507 = 5 · 100 + 0 · 10 + 7 · 1.

У 2304₅ веса мест — 125, 25, 5 и 1. Ноль значит, что пятёрок нет, но место он всё равно занимает.

В Python то же самое делает :

print(int('2304', 5))
329

Цифр в системе ровно q: от 0 до q − 1. Цифры «5» в пятеричной системе нет — после 4 идёт уже 10₅, то есть одна пятёрка и ноль единиц. Поэтому запись 10 в любой системе означает её основание: 10₅ = 5, 10₂ = 2.

Цифры-буквы

А как записать цифру «десять», если основание больше десяти?

Цифры больше 9 обозначают латинскими буквами: A = 10, B = 11, C = 12, … Каждая буква — это одна цифра. В шестнадцатеричной записи 1A3₁₆ три цифры: 1, десять и 3.

1A3₁₆: буква A стоит в разряде шестнадцати и значит десять — 1 · 256 + 10 · 16 + 3 = 419.

По записи можно оценить основание: оно больше самой большой цифры. В записи 372 есть цифра 7 — значит, основание не меньше 8; в 2B4 есть B = 11 — не меньше 12.

Тонкости:основания больше 36

Букв латинского алфавита 26, поэтому буквами записывают цифры только до основания 36: int(s, q) работает при q ≤ 36. При большем основании цифры хранят числами — так делают в подтеме 5.

Запись делением

Теперь наоборот: как записать число 329 в пятеричной системе?

Остаток от деления на q — последняя цифра записи, а целая часть частного — запись без этой цифры. 329 = 5 · 65 + 4: запись оканчивается на 4, а остальные её цифры — запись числа 65. Делим дальше, пока частное не станет нулём: каждое деление даёт ещё одну цифру, справа налево.

  1. Переводим 329 в систему с основанием 5. Цифры записи появятся справа налево.
  2. 329 = 5 · 65 + 4. Остаток 4 — цифра разряда 5⁰, дальше работаем с частным 65.
  3. 65 = 5 · 13 + 0. Остаток 0 — цифра разряда 5¹, дальше работаем с частным 13.
  4. 13 = 5 · 2 + 3. Остаток 3 — цифра разряда 5², дальше работаем с частным 2.
  5. 2 = 5 · 0 + 2. Остаток 2 — цифра разряда 5³, частное 0 — перевод закончен.
  6. Готово: 329 = 2304₅. Первый найденный остаток стоит справа, последний — слева.

Остатки 4, 0, 3, 2, прочитанные снизу вверх, — запись 2304₅. В Python остаток и целую часть частного дают :

print(329 % 5, 329 // 5)
4 65
Тонкости:почему остаток — последняя цифра

2304₅ = 2 · 5³ + 3 · 5² + 0 · 5 + 4. Все слагаемые, кроме последнего, делятся на 5: 2304₅ = 5 · (2 · 25 + 3 · 5 + 0) + 4. Значит, при делении на 5 остаток — последняя цифра 4, а частное 2 · 25 + 3 · 5 + 0 = 230₅ — запись без неё.

Итого

  • Значение записисумма цифр, умноженных на веса 1, q, q², …
  • Цифрыот 0 до q − 1; 10 в системе q — это q
  • БуквыA = 10, B = 11, …; буква — одна цифра
  • Основаниебольше наибольшей цифры записи
  • Запись делениемостатки — цифры справа налево
  • Pythonint(s, q), n % q, n // q

Проверьте себя

Ответь сначала сам, потом открой ответ.

Вопрос 1
Чему равно 2103₄ в десятичной системе?
ОтветСкрыть ответ
Ответ
147: 2 · 64 + 1 · 16 + 0 · 4 + 3 = 147.
Вопрос 2
Как записать 94 в пятеричной системе?
ОтветСкрыть ответ
Ответ
334₅: 94 = 5 · 18 + 4, 18 = 5 · 3 + 3, 3 = 5 · 0 + 3 — остатки снизу вверх.
Вопрос 3
В каком наименьшем основании возможна запись 3A7?
ОтветСкрыть ответ
Ответ
11: цифра A = 10, а цифра должна быть меньше основания.
Вопрос 4
Какое число означает запись 10 в системе с основанием 7?
ОтветСкрыть ответ
Ответ
Семь: одна единица разряда 7¹ и ноль единиц.
Вопрос 5
Что дают 329 % 5 и 329 // 5 для записи 2304₅?
ОтветСкрыть ответ
Ответ
4 — её последнюю цифру и 65 = 230₅ — запись без последней цифры.

Практика

Для проверки ответов нужен JavaScript. Условия, подсказки и решения доступны ниже.

Четверичная запись 2103

Переведи в десятичную систему 2103₄.

Введите число.

Наименьшее основание для 3A7

Запись 3A7 возможна в нескольких системах счисления. Найди её значение в системе с наименьшим возможным основанием.

Введите число.

94 в пятеричной системе

Переведи 94₁₀ в пятеричную систему.

Введите число.

Цифра в разряде 3

Какая цифра стоит в разряде 3 (считая справа с нуля) пятеричной записи числа 2024? Найди её формулой и проверь переводом.

Введите число.

Частное и остаток от деления на 49

Чему равен остаток от деления 2024 на 49? Найди его по семеричной записи 2024 = 5621₇.

Введите число.