Решение задач по теме «СИСТЕМЫ СЧИСЛЕНИЯ» (ЕГЭ – 2023, задание 14)
Согласно спецификации КИМ ЕГЭ 2023 г., для решения данного задания повышенного уровня сложности использование специализированного программного обеспечения не требуется. Поэтому рассмотрим теоретический разбор решения задач по теме, а также написание программ для них.
Обозначим через N основание системы счисления. Тогда наибольшая цифра в системе счисления с основанием N равна N-1.
Следует помнить, что:
(например, 210=102, 310=103, 810=108, 10010=10100 и так далее).
Nk = 10…0N
k
(например, 4=22=1002, 8=23 =10002, 16=24=100002 и так далее).
-
Число, стоящее перед k-той степенью основания, в своей системе счисления выглядит как последовательность из k самых больших цифр этой системы счисления, т.е.
Nk - 1 = (N-1)…(N-1)N
k
Тогда 2k – 1 = 1…12
k
(например: 3=22-1=112, 7=23 -1=1112, 15=24-1=11112 и так далее).
Nk – Nm = (N-1)…(N-1) 0…0N
k – m m
Тогда
2k – 2m = 1…1 0…02
k – m m
(например, 103 - 102 = 900, 103 - 101 = 990, 105 - 103 = 99000, 25 – 22 = 111002,
35 – 32 = 222003 и так далее).
-
При решении задач следует: привести все числа, заданные в выражении, к одному основанию системы счисления, расположить числа в порядке убывания степеней основания и только потом выполнять математические действия.
Рассмотрим несколько примеров решения задач по теме.
Задача 1. Демоверсия 2020
Значение арифметического выражения: 497 + 721 – 7 записали в системе счисления с основанием 7. Сколько цифр «6» содержится в этой записи?
Решение:
497 + 721 – 7 = 714 + 721 – 71 = 721 + 714 – 71
Цифры 6 появятся в результате вычитания 714 – 71 и их количество вычисляется из разницы степеней, т.е. 14 – 1 = 13.
Писать программу для этой задачи скучно и неинтересно, но все-таки приведем ее:
x = 4**2015 + 2**2015 - 15
k = 0
while x0:
if x%2 == 1:
k+= 1
x = x//2
print(k)
Ответ: 13
Задача 2 (М.В. Кузнецова)
Значение арифметического выражения
2·277 + 310 - 9
записали в системе счисления с основанием 3. Сколько цифр «0» содержится в этой записи?
Решение:
Условие данной задачи аналогично предыдущей, но степени здесь меньше, что позволяет решить задачу другим способом. Запишем заданное выражение через числа 3 в разных степенях:
2·277 + 310 – 9 = 2·321 + 310 – 32
Учитывая, что N10 = 10N, распишем выражение:
20000000000000000000003
+ 100000000003
- 1003
20000000000022222222003
Итого – 13 нулей.
Примечание. Решать таким способом можно любые похожие задачи, главное – точно записать количество нулей в числах.
Программа:
x = 2*27**7 + 3**10 - 9
k = 0
while x0:
if x%3 == 0:
k += 1
x = x//3
print(k)
Ответ: 13
Задача 3
Найдите основания систем счисления X и Y, если известно, что 87X=73Y и 62X=52Y. в ответе запишите число, составленное из чисел Y и X, записанных подряд без пробелов. Например, если X=13 и Y=15, ответ запишется как 1513.
Решение:
Из условия видно, что x 8 и y 7 и y x, тогда y 9. Далее будем брать по очереди числа для у от 10 и х от 9 и вычислять значения, пока не получим равенство, заданное в условии.
При y = 10 и х = 9 получаем 879 = 72 + 7 = 79 73, то увеличиваем х и у на 1 и
при y = 11 и х = 10 получаем 8710 и 7311 = 77 + 3 = 80 Увеличиваем у еще на единицу, получаем: 7312 = 84 + 3 = 87, то х = 10. Тогда в ответе получаем 1210.
Ответ: 1210
Задача 4
Сколько единиц в двоичной записи числа 42015 + 22015 – 15?
Решение:
42015 + 22015 – 15 = 22030 + 22015 – 24 + 20
Здесь 2015 – 4 = 2011 единиц плюс 2 единицы дают оставшиеся числа 22030 и 20, то всего получаем 2013 единиц.
Программа:
x = 4**2015 + 2**2015 - 15
k = 0
while x0:
if x%2 == 1:
k+= 1
x = x//2
print(k)
Ответ: 2013
Задача 5
Сколько единиц в двоичной записи числа 82014 – 2614 + 45?
Решение:
В данной задаче нужно разложить число 45 на степени двойки и далее записать все в порядке убывания:
82014 – 2614 + 45 = 26042 – 2614 + 25 + 23 + 22 + 20
Получаем 6042 – 614 = 5428 плюс 4 единицы от оставшихся чисел (25, 23, 22, 20), итого – 5432 единицы.
Ответ: 5432
Задача 6
Сколько единиц в двоичной записи числа 81014 – 2530 – 12?
Решение:
Разложив число 12 на степени двойки, получаем:
81014 – 2530 – 12 = 23042 – 2530 – 23 – 22
Получаем разницу первой и последней степеней: 3042- 2 = 3040 и еще вычитаем 2 единицы, которые стоят между ними, итого - 3038 единиц.
Программа:
x = 8**1014 - 2**530 - 12
k = 0
while x0:
if x%2 == 1:
k+= 1
x = x//2
print(k)
Ответ: 3038
Задача 7. Демоверсия 2023 (Уровень: Средний)
Операнды арифметического выражения записаны в системе счисления с основанием 15:
123x515 + 1x23315
В записи чисел переменной x обозначена неизвестная цифра из алфавита 15-ричной системы счисления. Определите наименьшее значение x, при котором значение данного арифметического выражения кратно 14. Для найденного значения x вычислите частное от деления значения арифметического выражения на 14 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.
Решение:
Запишем оба слагаемых в развернутой записи в системе счисления с основанием 15:
123x515 + 1x23315 = (1·154+2·153+3·152+x·15+5) + (1·154+x·153+2·152+3·15+3) =
= (2·154+2·153+5·152+ 3·15+8) + (x·153 +x·15) =
= (101250 + 6750 + 1125 + 45 + 8) + x · (3375 + 15) = 109178 + 3390·x
Согласно условию, выражение Y = 109178 + 3390*x делится на 14.
Остаток от деления 109178 на 14 равен 6; остаток от деления 3390 на 14 равен 2.
Выражение Y кратно14, когда остаток от деления Y на 14 должен быть равен 0 (или 14, 28 и т.д.). При сложении остатков получаем 6+2*x = 0, где х примет отрицательное значение. Берем следующее значение остатка:
6+2*x = 14, откуда x =4.
Тогда Y = 109178 + 3390*4 = 122738, а частное Y на 14 равно 8767.
Программа:
for x in '0123456789abcde':
a = int(f'123{x}5',15)+int(f'1{x}233',15)
if a% 14==0:
print(x, a//14)
break
В результате выполнения программы получаем два числа - наименьшее значение х и искомое частное:
4 8767
Ответ: 8767
Задача 8
(А. Богданов) Операнды арифметического уравнения записаны в разных системах счисления.
3364x11 + x794612 = 55x8714
В записи чисел переменной x обозначена неизвестная цифра. Определите наименьшее значение x, при котором данное уравнение обращается в тождество. В ответе укажите значение правой части уравнения в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.
Решение:
Запишем обе части заданного выражения в развернутой форме чисел, получим:
3364x11 + x794612 = 55x8714
Левая часть:
3364x11 + x794612 = х + 4*11 + 6*112 + 3*113 + 3*114 + 6 + 4*12 + 9*122 + 7*123 + х*124 =
= х + 44 + 726 + 3993 + 43923 + 6 + 48 + 1296 + 12096 + х*124 =
= х + 131769 + 13446 + х*20736 =
= 48686 + х + х*20736 = 48686 + х*20737
Правая часть:
55x8714 = 7 + 8*14 + х*142 + 5*143 + 5*144 =
= 119 + х*196 + 13720 + 192080 = 205919 + х*196
Следовательно, 48686 + х*20737 = 205919 + х*196
20541*х = 143787, откуда х=7 и 205919 + 7*196 = 207291
Программа:
for x in range(13):
a = 8 + 13 + 4*13**2 + 13**3 + x*13**4
b = 7 + 3*14 + 0*14**2 +x*14**3 + 14**4
c = 9 + 0*19 + 2*19**2 + x*19**3 +2*19**4
if a + b == c:
print(c)
break
Ответ: 323104
Задача 9
Операнды арифметического уравнения записаны в разных системах счисления.
x1418₁₃ + 1x037₁₄ = 2x209₁₉
В записи чисел переменной x обозначена неизвестная цифра. Определите наименьшее значение x, при котором данное уравнение верно. В ответе укажите значение правой части уравнения в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.
Решение:
Запишем обе части заданного выражения в развернутой форме чисел, получим:
8 + 13 + 4*132 + 133 + x*134 + 7 + 3*14 + 0*142 + x*143 + 144 =
= 9 + 0*19 + 2*192 + x*193 + 2*194
2894 + х*28561 + 38465 + х*2744 = 1083 + 130321 + х*6859
41359 + х*31305 = 261373 + х*6859
х*24446 = 220014
Тогда х = 220014 / 24446 = 9
и правая часть уравнения равна 1083 + 130321 + 9*6859 = 323104.
Программа:
for x in range(13):
a = 8 + 13 + 4*13**2 + 13**3 + x*13**4
b = 7 + 3*14 + 0*14**2 +x*14**3 + 14**4
c = 9 + 0*19 + 2*19**2 + x*19**3 +2*19**4
if a + b == c:
print(c)
break
Ответ: 323104
Задача 10 (Джобс)
Известно, что значение выражения 36x538 – 4y38 является положительным и минимальным. Известно, что x и y – допустимые комбинации из одной или более цифр.
Определите значение выражения. В качестве ответа запишите полученное число в десятичной системе счисления. Основание системы счисления указывать не нужно.
Решение:
Чтобы результат выражения (разница двух чисел) была минимальной, нужно из минимально возможного первого числа (далее – 1min) вычесть максимально возможное второе число (далее – 2max). При этом, чтобы значение выражения было положительным, необходимо, чтобы 36x538 4y38, тогда у может быть двухразрядным, но не более.
Тогда 1min = 360538,
2max= 47738.
Разница между ними равна 310608 = 12848.
Ответ: 12848