Системы счисления и вычисления в разных основаниях
Работа со степенями основания, заём при вычитании и подсчёт цифр в записи — техника заданий 12 и 14 ЕГЭ.
Задание 14 ЕГЭ почти никогда не требует прямого перевода огромного числа. Оно требует увидеть выражение как сумму степеней основания и аккуратно выполнить один заём при вычитании. Это чисто техническое умение, отрабатываемое за час.
Число q^k в системе с основанием q записывается как единица и k нулей. Сумма различных степеней основания даёт запись с единицами в соответствующих разрядах. Максимальная цифра в системе с основанием q равна q − 1 — именно она появляется при заёме.
49^8 = (7²)^8 = 7^16, 8^5 = (2³)^5 = 2^15, 25^n = 5^(2n). Всегда приводите все слагаемые к степеням того основания, в котором просят записать результат.
- ·Разряд 16: цифра 1
- ·Разряд 15: цифра 1
- ·Разряды 14…0: нули
- ·Всего 17 цифр
- ·Разряд 16: цифра 1
- ·Разряд 15: становится 0
- ·Разряды 14…3: двенадцать шестёрок
- ·Разряд 2: 7 − 1 = 6
- ·Разряды 1 и 0: нули
Степени двойки — знать наизусть
| Показатель | 2^k | Значение | Где встречается |
|---|---|---|---|
| 10 | 2^10 | 1024 | 1 Кбайт |
| 16 | 2^16 | 65536 | палитра 65536 цветов |
| 20 | 2^20 | 1048576 | 1 Мбайт |
| 24 | 2^24 | 16777216 | True Color, 3 байта |
| 30 | 2^30 | 1073741824 | 1 Гбайт |
| 32 | 2^32 | 4294967296 | число IPv4-адресов |
Условие: значение арифметического выражения 49^8 + 7^15 − 49 записали в системе счисления с основанием 7. Сколько цифр 6 содержится в этой записи? Решение. 1) Приводим к степеням семёрки: 49^8 = (7²)^8 = 7^16, 49 = 7². Выражение равно 7^16 + 7^15 − 7². 2) Сумма 7^16 + 7^15 в семеричной записи — это единица в разряде 16, единица в разряде 15 и нули в разрядах с 14-го по 0-й (всего 17 цифр). 3) Вычитаем 7²: в разряде 2 стоит ноль, поэтому берём заём у ближайшей ненулевой цифры — это разряд 15. Он становится нулём, а все промежуточные разряды с 14-го по 3-й (двенадцать разрядов) становятся 6. Разряд 2 получает 7 и после вычитания единицы даёт 6. 4) Считаем шестёрки: 12 + 1 = 13. Проверка на Python: n = 49**8 + 7**15 - 49 s = '' while n: s = str(n % 7) + s; n //= 7 print(s.count('6')) В бланк: 13
Условие: исполнитель Редактор работает со строкой. Дана строка из 70 идущих подряд цифр 8. Какая строка получится, если многократно применять команду «заменить (888, 8)»? Решение. Каждое применение уменьшает длину на 2. 70 = 3k + r: команда применима, пока длина не меньше 3. 70 → 68 → 66 → … Все длины чётные, поэтому процесс остановится на длине 2, когда подстрока 888 перестанет встречаться. Ответ — строка 88. Проверка на Python: s = '8'*70 while '888' in s: s = s.replace('888', '8', 1) print(s) В бланк: 88 (строка символов, без пробелов и кавычек)
Разряды нумеруются с нуля, поэтому число из разрядов 14…3 содержит 14 − 3 + 1 = 12 цифр, а не 11. Ошибка на единицу в этом подсчёте — самая частая в задании 14. Вторая ловушка: спрашивают количество цифр 6, а ученик пишет сумму цифр или саму запись. Третья: при заёме нулём становится источник заёма, а не соседний разряд.
- ✓Все слагаемые приведены к степеням одного основания
- ✓Разряды пронумерованы с нуля и подсчитаны по формуле «верх − низ + 1»
- ✓При заёме промежуточные нули заменены на q − 1
- ✓Проверено, что именно спрашивают: количество цифр, их сумму или саму запись
- ✓Результат подтверждён коротким скриптом на Python
- ✓В бланке одно число или строка без пробелов