ЕГЭ-2023 по информатике. Разбор задания №14
Составил:
учитель информатики
МОУ Подосинковской СОШ
Казаров С.Р.
Кодирование чисел. Системы счисления
- Прямое сложение в системах счисления
- Операции в одной системе счисления
- Операции в разных системах счисления с одной переменной
- Операции в разных системах счисления с двумя переменными
Прямое сложение в системах счисления
Сколько единиц содержится в двоичной записи значения выражения: 8 2020 + 4 2017 + 26 – 1?
Прямое сложение в системах счисления
Решение.
Преобразуем немного выражение, получим:
2 6060 + 2 4034 + 25
2 6060 = 100..(всего 6060 нулей)..00 2
2 4034 = 100..(всего 4034 нулей)..00 2
25 10 = 11001 2
В двоичной записи результат будет выглядеть так:
100..(всего 2025 нулей)..00100..(всего 4029 нулей)..0011001
Всего 5 единиц.
Прямое сложение в системах счисления
Решение на языке Python
x = 8**2020 + 4**2017 + 26 - 1
s = ‘ '
while x != 0:
s += str(x % 2)
x //= 2
s = s[::-1]
print(s.count("1"))
Прямое сложение в системах счисления
Значение арифметического выражения: 125 + 25 3 + 5 9 – записали в системе счисления с основанием 5. Сколько значащих нулей содержит эта запись?
Прямое сложение в системах счисления
Решение.
Последовательно рассмотрим данное выражение.
Рассмотрим первое слагаемое 125=5 в кубе =1000_5 .
Рассмотрим второе слагаемое: 25 в кубе = 5 в степени левая круглая скобка 6 правая круглая скобка = 1000000_5..
Рассмотрим третье слагаемое: 5 в степени левая круглая скобка 9 правая круглая скобка = 100...00_5 — на конце 9 нулей.
Результат сложения первых двух чисел: 5 в кубе плюс 5 в степени левая круглая скобка 6 правая круглая скобка = 1001000_5.
На последнем шаге получаем: 1000000000 плюс 1001000=1001001000 .
Нетрудно увидеть, что всего 7 значащих нулей.
Ответ: 7
Прямое сложение в системах счисления
Решение на языке Python
x = 125 + 25**3 + 5**9
s = ‘ '
while x != 0:
s += str(x % 5)
x //= 5
s = s[::-1]
print(s.count("0"))
Операции в одной системе счисления
Операнды арифметического выражения записаны в системе счисления с основанием 19:
321x419 + 498x919
В записи чисел переменной x обозначена неизвестная цифра из алфавита девятнадцатеричной системы счисления. Определите наименьшее значение x, при котором значение данного арифметического выражения кратно 23. Для найденного значения x вычислите частное от деления значения арифметического выражения на 23 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.
Операции в одной системе счисления
При помощи цикла for будем перебирать x в соответствии в заданной системой счисления. Затем переведём все числа в десятичную систему счисления и найдём их сумму, записав полученное значение в переменную. Проверим кратность переменной на 23 и выведем частное от деления значения арифметического выражения.
Решение на языке Python
for x in '0123456789ABCDEFGHI':
t = int('321' + x + '4', 19) + int('498' + x + '9', 19)
if t % 23 == 0:
print(t // 23)
exit
Ответ: 43100.
Операции в одной системе счисления
Числа M и N записаны в системе счисления с основанием 9 соответственно.
M = 842x59, N = 8x7259
В записи чисел переменной x обозначена неизвестная цифра из алфавита девятеричной системы счисления. Определите наименьшее значение натурального числа A, при котором существует такой x, что M + A кратно N.
Операции в одной системе счисления
При помощи цикла for будем перебирать числа A и x (в соответствии в заданной системой счисления). Затем переведём числа M и N в десятичную систему счисления. Проверим кратность суммы M и A на N и выведем наименьшее A на экран.
Решение на языке Python
for A in range(1, 1000):
for x in '012345678':
M = int('842' + x + '5', 9)
N = int('8' + x + '725', 9)
if (M + A) % N == 0:
print(A)
exit
Ответ: 387.
Операции в разных системах счисления с одной переменной
Операнды арифметического выражения записаны в системе счисления с основаниями 18 и 12:
28x218 + 93x512
В записи чисел переменной x обозначена неизвестная цифра из алфавита десятичной системы счисления. Определите наименьшее значение x, при котором значение данного арифметического выражения кратно 133. Для найденного значения x вычислите частное от деления значения арифметического выражения на 133 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.
Операции в разных системах счисления с одной переменной
При помощи цикла for будем перебирать x в соответствии в заданной системой счисления. Затем переведём все числа в десятичную систему счисления и найдём их сумму, записав полученное значение в переменную. Проверим кратность переменной на 133 и выведем частное от деления значения арифметического выражения.
Решение на языке Python
for x in '0123456789':
t = int('28' + x + '2', 18) + int('93' + x + '5', 12)
if t % 133 == 0:
print(t // 133)
break
Ответ: 229.
Операции в разных системах счисления с одной переменной
Операнды арифметического выражения записаны в системе счисления с основаниями 13 и 18:
xA0413 + 1Dx318
В записи чисел переменной x обозначена неизвестная цифра из алфавита десятичной системы счисления. Определите наименьшее значение x, при котором значение данного арифметического выражения кратно 184. Для найденного значения x вычислите частное от деления значения арифметического выражения на 184 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.
Операции в разных системах счисления с одной переменной
При помощи цикла for будем перебирать x в соответствии в заданной системой счисления. Затем переведём все числа в десятичную систему счисления и найдём их сумму, записав полученное значение в переменную. Проверим кратность переменной на 184 и выведем частное от деления значения арифметического выражения.
Решение на языке Python
for x in '0123456789A':
t = int(‘ ' + x + 'A04', 13) + int('1D' + x + '3', 18)
if t % 184 == 0:
print(t // 184)
break
Ответ: 124.
Операции в разных системах счисления с двумя переменными
Операнды арифметического выражения записаны в системах счисления с основаниями 15 и 16:
90x4y15 + 91xy216
В записи чисел переменными x и y обозначены допустимые в данных системах счисления неизвестные цифры. Определите значения x и y, при которых значение данного арифметического выражения будет наименьшим и кратно 56. Для найденных значений x и y вычислите частное от деления значения арифметического выражения на 56 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.
Операции в разных системах счисления с двумя переменными
При помощи цикла for будем перебирать x и y в соответствии в заданными системами счислений. Затем переведём все числа в десятичную систему счисления и найдём их сумму, записав полученное значение в переменную. Проверим кратность переменной на 56 и выведем частное от деления значения арифметического выражения.
Решение на языке Python
result_search = [ ]
for x in '0123456789ABCDE':
for y in '0123456789ABCDE':
t = int('90' + x + '4' + y, 15) + int('91' + x + y + '2', 16)
if t % 56 == 0:
result_search.append(t)
if result_search:
print(min(result_search) // 56)
Операции в разных системах счисления с двумя переменными
Операнды арифметического выражения записаны в системах счисления с основаниями 7 и 9:
yx3207 + 1x3y39
В записи чисел переменными x и y обозначены допустимые в данных системах счисления неизвестные цифры. Определите значения x и y, при которых значение данного арифметического выражения будет наименьшим и кратно 181. Для найденных значений x и y вычислите частное от деления значения арифметического выражения на 181 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.
Операции в разных системах счисления с двумя переменными
При помощи цикла for будем перебирать x и y в соответствии в заданными системами счислений. Затем переведём все числа в десятичную систему счисления и найдём их сумму, записав полученное значение в переменную. Проверим кратность переменной на 181 и выведем частное от деления значения арифметического выражения.
Решение на языке Python
result_search = [ ]
for x in '0123456':
for y in '0123456':
t = int(y + x + '320', 7) + int('1' + x + '3' + y + '3', 9)
if t % 181 == 0:
result_search.append(t)
if result_search:
print(min(result_search) // 181)
Ответ: 148.
В презентации использовались материалы с сайтов
https://inf-ege.sdamgia.ru/
https://kpolyakov.spb.ru/
https://fipi.ru/