Разбор задания 5 и 14 ЕГЭ по информатике 2025

  • pdf
  • 08.02.2025
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Задания 5 и 14 ЕГЭ ИКТ.pdf

Задания 5 и 14

Рассмотрим функции перевода чисел из одной системы в другую систему счисления. В Python есть встроенные функции для перевода чисел: bin(), oct(), hex(), int().

1)   из десятеричной системы в двоичную используется функция bin()  

Например, 

  

Префикс «0b» показывает в какой системе число представлена, то есть в двоичной системе. Префиксы не используются, поэтому нужно убрать префикс «0b», для этого удобно использовать срез bin()[2:].

 

2)   из десятеричной системы в восьмеричную используется функция oct(), c срезом oct()[2:]  префикс «0o»

Например, 

 

3)   из десятеричной системы в шестнадцатеричную используется функция hex(), c срезом hex()[2:]  префикс «0x» 

Например, 

 

Испайханов Л. Л.

 

4)   Функция int() переводит числа десятичную систему, числа с основанием от 2 до 36:

 

Функция принимает число строковом формате и число(основание) из которого нужно перевести это число.

Если в функции не указать основание, то функция превращает (конвертирует) число из строкового формата в числовой. 

 

Для перевода чисел остальных систем счисления необходимо написать код:

Шаблон кода. Название функции может быть произвольным(любым), данной случае «tri», так как переводить в троичную систему счисления. В шаблоне меняются только цифры, в которых необходимо перевод нужную систему счисления

def tri(n):

    s = ''     while n > 0:

        s += str(n%3)         n //= 3     return s[::-1]

 

 

в 4-ую сс 

в 5-ую сс

 

 

в 6-ую сс

в 7-ую сс

 

Возникает вопрос для чего нужны эти функции, ведь в 5-ом задании дан двоичная запись числа и можно просто использовать функцию bin().

 В основной волне, то есть на реальном экзамене 2021 года, 2022 года дали двоичную запись числа, а 2023 году дали троичную запись числа, из-за этого многие ученики, не зная, как перевести число в троичную запись числа потеряли баллы, а 2024 году снова дали двоичную запись числа. 

Поэтому желательно научить учеников переводить числа в другие системы счисления с помощью функций.

 

Задании взяты с сайтов:

1)   https://kompege.ru  

 

2)   https://kpolyakov.spb.ru/school/ege/generate.htm  

 

3)   https://inf-ege.sdamgia.ru  

 

 

 

 

 

 

 

 

 

Задания 5

Задание 5 (Nº1849) (Основная волга 2021).

Автомат обрабатывает натуральное число N по следующему алгоритму:

1.  Строится двоичная запись числа N.

2.  Если N четное, то в конец полученной записи (справа) дописывается 0, в начало - 1;  если N - нечётное в конец и начало дописывается по две единицы.

3.  Результат переводится в десятичную систему и выводится на экран.

Пример. Дано число N = 13. Алгоритм работает следующим образом:

1.  Двоичная запись числа N: 1101.

2.  Число нечетное, следовательно, по две единицы по краям - 11110111.

3.  На экран выводится число 247. 

Укажите наименьшее число, большее 52, которое может являться результатом работы автомата.

 

 

a                   = [] # список for n in range(1, 100):

b                  = bin(n)[2:]     if n % 2 == 0:

        b = '1' + b + '0'     else:

        b = '11' + b + '11'     r = int(b, 2)     if r > 52:

        a.append(r) print(min(a))

Ответ: 56 

 

Примечание: если нужно найти r, то лучше использовать список, а если n нужно найти, то без списка можно обойтись.

 

 

 

Задание 5 (N°4585) (Основная волга 2022).

На вход алгоритма подаётся натуральное число N.

Алгоритм строит по нему новое число R следующим образом.

1.  Строится двоичная запись числа N.

2.  Далее эта запись обрабатывается по следующему правилу:

а) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается 0, а затем два левых разряда заменяются на 10;

б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается 1, а затем два левых разряда заменяются на 11.

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

Например, для исходного числа 610 = 1102 результатом является число 10002 = 810, а для исходного числа 410 = 1002 результатом является число 11012 = 1310. Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число R, не меньшее, чем 16.

В ответе запишите это число в десятичной системе счисления

 

 

for n in range(1, 100):

    b = bin(n)[2:]     if b.count('1') % 2 == 0:         b = '10' + b[2:] + '0'     else:         b = '11' + b[2:] + '1'     r = int(b, 2)     if r > 16:         print(n)         break

 

Ответ: 8

 

 

 

 

Задание 5 (Nº9774) (Основная волга 2023).

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

1.  Строится троичная запись числа N.

2.  Далее эта запись обрабатывается по следующему правилу:

а) если число N делится на 3, то к этой записи дописываются две последние троичные цифры;

б) если число N на 3 не делится, то остаток от деления умножается на 5, переводится в троичную запись и дописывается в конец числа. Полученная таким образом запись является троичной записью искомого числа R. 3. Результат переводится в десятичную систему и выводится на экран.

Например, для исходного числа 11 = 1023 результатом является число 1021013 = 307, а для исходного числа 12 = 1103 это число   110103 = 111.

Укажите минимальное число R, большее 133, которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.

 

 

def tri(n):

    s = ''     while n > 0:

        s += str(n%3)         n //= 3     return s[::-1] a = [] for n in range(1, 100):     b = tri(n)     if n % 3 == 0:         b += b[-2:]     else:

        ost = (n % 3)*5         b += tri(ost)     r = int(b, 3)     if r > 133:

        a.append(r) print(min(a))

 

Ответ: 141

 

Задание 5 (Nº17518) (Основная волга 2024).

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

1.  Строится двоичная запись числа N.

2.  Далее эта запись обрабатывается по следующему правилу:

а) если сумма цифр двоичной записи числа чётная, то к этой записи справа дописывается 0, а затем два левых разряда заменяются на 10;

б) если сумма цифр двоичной записи числа нечётная, то к этой записи справа дописывается 1, а затем два левых разряда заменяются на 11;

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

3.  Результат переводится в десятичную систему и выводится на экран.

Например, для исходного числа 6 = 110г результатом является число 10002 = 8, а для исходного числа 4 = 1002 это число 11012 = 13

Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число R, большее 50. В ответе запишите это число в десятичной системе счисления.

 

 

 

for n in range(1, 100):

    b = bin(n)[2:]     if b.count('1') % 2 == 0:         b = '10' + b[2:] + '0'     else:

        b = '11' + b[2:] + '1'     r = int(b, 2)     if r > 50:         print(n)         break

 

Ответ: 19

 

 

 

 

Задание 5 (Nº 17859) (Демоверсия 2025).

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

1.  Строится двоичная запись числа N.

2.  Далее эта запись обрабатывается по следующему правилу:

а) если число чётное, то к двоичной записи числа слева дописывается 10;

б) если число нечётное, то к двоичной записи числа слева дописывается 1 и справа дописывается 01.

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

3.  Результат переводится в десятичную систему и выводится на экран.

Например, для исходного числа 410 = 1002 результатом является число             2010 = 101002, а для исходного числа 510 = 1012 это число 5310 =1101012. Укажите максимальное число R, которое может быть результатом работы данного алгоритма, при условии, что N не больше 12. В ответе запишите это число в десятичной системе счисления.

 

 

a                   = [] for n in range(1, 13):

b                   = bin(n)[2:]     if n % 2 == 0:         b = '10' + b     else:

        b = '1' + b + '01'     r = int(b, 2)

    a.append(r) print(max(a))

 

 

Ответ: 109

 

 

 

 

 

 

 

Задание 5 (№ 4317) (Уровень: Сложный).

Автомат обрабатывает натуральное число N по следующему алгоритму:

1.  Строится пятеричная запись числа N.

2.  К полученной записи дописываются разряды. Если последняя цифра в пятеричной записи четная, справа дописывается 2, если нечетная – слева дописывается 2 и справа 3.

3.  Результат переводится в десятичную систему и выводится на экран.

Пример. Дано число N = 13. Алгоритм работает следующим образом:

1.  Пятеричная запись числа N: 23.

2.  Последняя цифра нечетная, следовательно, слева дописываем 2, справа 3: 2+23+3 = 2233. Десятичная запись числа 318.

3.  На экран выводится число 318.

В результате работы автомата на экране появилось число, меньшее 1000. Для какого наибольшего значения N данная ситуация возможна?

 

 

def five(n):

    s = ''     while n > 0:

        s += str(n%5)         n //= 5     return s[::-1] for n in range(1, 1000):     b = five(n)     if int(b[-1]) % 2 == 0:

        b += '2'     else:

        b = '2' + b + '3'     r = int(b, 5)     if r < 1000:         print(n)

 

Ответ: 199

 

 

Задания 14

В основной волне 2021 года, 2022 года и 2023 года, задании были, как и в демоверсии 2021, 2022, 2023 года. 

В демоверсии 2024 года дали два варианта заданий, как и предыдущих годах, а в основной волне 2024 условия задании поменяли, но суть решении не поменялось. 

Из-за этого так как ученики заучивали шаблоны двух вариантов заданий, 2024 году многие ученики потеряли баллы, то есть не смогли логически подумать, как можно было бы решить эту задачу, поэтому необходимо не заучивать шаблоны заданий, а понять, как решать задании. 

 

 

Задание 14 (№ 1858) (Основная волна 2021)

Результат выражения 4 ∙ 6259 − 2515 + 2 ∙ 511 − 7 записали в 5-ричной системе счисления. Сколько цифр 4 в получившейся записи? 

 

x = 4 * 625**9 - 25**15 + 2 *

5**11 - 7

s = '' while x > 0:     s += str(x%5)     x //= 5 s = s[::-1] print(s.count('4'))

 

Ответ: 15

 

 

 

 

 

 

Задание 14 (№ 4594) (Основная волна 2022)

Значение арифметического выражения

4 · 6251920 + 4 · 1251930 – 4 · 251940 – 3 · 51950 – 1960

записали в системе счисления с основанием 5. Определите количество значащих нулей в записи этого числа.

 

Задание 14 (№ 17527) (Основная волна 2024)

Значение арифметического выражения 3100 - x, где х — целое положительное число, не превышающее 2030, записали в троичной системе счисления. Определите наибольшее значение х, при котором в троичной записи числа, являющегося значением данного арифметического выражения, содержится ровно пять нулей. В ответе запишите число в десятичной системе счисления.

  Ответ: 2024

 

Задание 14 (№ 9783) (Основная волна 2023)

Операнды арифметического выражения записаны в системе счисления с основанием 22. 

18x8995722 + 80x3322 + 521x622

В записи чисел переменной x обозначена неизвестная цифра из алфавита       22-ричной системы счисления. Определите наименьшее значение x, при котором значение данного арифметического выражения кратно 21. Для найденного          значения     x             вычислите   частное        от        деления       значения арифметического выражения на 21 и укажите его в ответе в десятичной системе счисления. Основание системы счисления указывать не нужно.

Решение:

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

Если забыли англ. алфавит, то можно использовать функцию sorted(), то есть собрав все англ. буквы в одну строку, можно их отсортировать по алфавиту.

 

 

 

Ответ: 162947670

Задание 14 (№ 17868) (Демоверсия 2025)

Операнды арифметического выражения записаны в системе счисления с основанием 19. 

98897x2119 + 2x92319

В записи чисел переменной x обозначена неизвестная цифра из алфавита 19ричной системы счисления.  Определите наибольшее значение x, при котором значение данного арифметического выражения кратно 18.  Для найденного x вычислите частное от деления значения арифметического выражения на 18 и укажите его в ответе в десятичной системе счисления. Основание системы счисления указывать не нужно.

 Ответ: 469034148

 

Задание 14 (№ 17869) (Демоверсия 2025) Значение арифметического выражения:  

3 ∙ 31258 + 2 ∙ 6257 – 4 ∙ 6256 + 3 ∙1255 – 2 ∙254 – 2025

записали в системе счисления с основанием 25. Сколько значащих нулей содержится в этой записи?

 

Ответ: 10

Задание 14 (№ 17870) (Демоверсия 2025)

Значение арифметического выражения: 7170 + 7100 – x,  где x – целое положительное число, не превышающее 2030, записали в              7-ричной системе счисления. Определите наибольшее значение x, при котором в 7-ричной записи числа, являющегося значением данного арифметического выражения, содержится ровно 71 нуль. В ответе запишите число в десятичной системе счисления.

  Ответ: 2029

 

 

ШАБЛОНЫ

 

for x in range(1, 2030):

    n = 7**170 + 7**100 - x     s = ''     while n > 0:

        s += str(n%7)

        n //= 7     s = s[::-1]     if s.count('0') == 71:

        print(x)

 

 

x = 3 * 3125**8 + 2 * 625**7 - 4 * 625**6 + 3 * 125**5 - 2 * 25**4 - 2025 s = '' while x > 0:

    s += str(x%25)

    x //= 25 s = s[::-1]

print(s.count('0'))

 

 

alf = '0123456789abcdefghi' # 19 система счисления for x in alf:

    s1 = f'98897{x}21'     s2 = f'2{x}923' 

    s = int(s1, 19) + int(s2, 19)     if s % 18 == 0:         print(x, s//18)

 

 

alf = 'qwertyuioplkjhgfdsazxcvbnm' s = sorted(alf) print(s)

 

 

Итог запоминать шаблоны с одной стороны хорошо, но с другой стороны не очень, так как с помощью них не всегда получится решать задании, поэтому лучше понимать, как решаются эти задания.

 

Рекомендации по использованию сайтов для решения задач:

 

1)  https://kompege.ru/task

 

2)  https://kpolyakov.spb.ru/school/ege/generate.htm

 

3)  https://openfipi.devinf.ru/tasks_ege/

 

4)  https://thenewschool.ru/trainer/informatics

 

5)  https://gdzotvet.ru/component/tags/tag/ege-po-informatike