ЕГЭ Информатика 2023: Решения задач от подписчиков #4

Представлены решения задач ЕГЭ по информатике, присланных подписчиками. Рассмотрены задания различных типов и уровней сложности.

Задача 1: Обработка натурального числа

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

  1. Строится двоичная запись числа n.
  2. Удаляется первая слева единица и все следующие непосредственно за ней нули. Если после этого в числе не остаётся цифр, результат считается равным нулю.
  3. Полученное число переводится в десятичную запись.
  4. Новое число вычитается из исходного.
  5. Полученная разность выводится на экран.

Вопрос: Сколько разных значений будет показано на экране автомата при последовательном вводе всех натуральных чисел от 10 до 1000?

Решение:

Задача решается перебором чисел от 10 до 1000. Для каждого числа строится двоичная запись с помощью функции bin(). Первые два символа (указывающие систему счисления) отбрасываются. Затем удаляется первая слева единица и последующие нули, результат переводится обратно в десятичную систему счисления с помощью int(S, 2). Разность между исходным числом и полученным результатом добавляется в множество для исключения дубликатов. Выводится количество элементов множества. Результат: 7.

Задача 2: Дописывание разрядов в двоичной записи

На вход подаётся натуральное число n. Строится двоичная запись числа n. К этой записи дописываются ещё несколько разрядов по следующему правилу:

  • Если n чётное, то слева дописывается 1, справа 0.
  • Если n нечётное, то слева дописывается 11, справа 0.

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

Вопрос: Сколько различных результатов, принадлежащих отрезку от 800 до 1500 включительно, может быть получено в результате работы алгоритма?

Решение:

Задача решается перебором чисел от 1 до 1000. Для каждого числа строится двоичная запись, к ней дописываются разряды по описанному правилу, результат переводится в десятичную систему. Полученные значения, попадающие в интервал [800, 1500], добавляются в множество. Выводится размер множества. Результат: 44.

Задача 3: Шестнадцатеричная запись и частота цифр

Исполнитель получает на вход натуральное число n и строит новое число R следующим образом:

  1. Строится шестнадцатеричная запись числа n.
  2. Если число чётное, то справа приписывается цифра F (максимальная в шестнадцатеричной системе). В противном случае справа приписывается 0.
  3. Справа приписывается шестнадцатеричная цифра, равная остатку от деления суммы цифр шестнадцатеричной записи на 16.

Вопрос: Запишите в десятичной системе счисления минимальное число n, для которого максимальная цифра в полученной шестнадцатеричной записи встречается в пять раз чаще, чем минимальная.

Решение:

Задача решается перебором натуральных чисел. Для каждого числа строится шестнадцатеричная запись при помощи функции hex(), отбрасываются первые два символа. К записи добавляется F или 0 в зависимости от чётности. Далее вычисляется сумма цифр шестнадцатеричной записи с учётом того, что буквы A-F представляют числа 10-15. Остаток от деления суммы на 16 добавляется к записи. Затем определяется частота максимальной и минимальной цифр. Если частота максимальной цифры в пять раз больше частоты минимальной, число выводится. Результат: 131000058.

Задача 4: Черепаха в Кумире

Черепаха рисует фигуру по следующему алгоритму (команды в Кумире):

вперед 100
направо 90
вперед 100
направо 45
опустить_перо
нц 10
  вперед 30
  направо 90
кц

Вопрос: Определите, сколько точек с целыми координатами будет находиться внутри области, ограниченной линией, заданной данным алгоритмом (точки на линии не учитывать).

Решение:

Фигура, нарисованная черепахой, представляет собой приблизительный ромб, составленный из нескольких прямоугольных треугольников. Количество точек внутри фигуры определяется путём подсчёта точек в каждом из треугольников, используя формулу суммы арифметической прогрессии. Добавляются точки на вертикальной оси симметрии. Результат: 882.

Задача 5: Пятибуквенные коды

Руслан составляет пятибуквенные коды из букв Р, У, С, Л, А, Н. Каждая допустимая гласная буква (А, У) может входить в код не более одного раза.

Вопрос: Сколько кодов может составить Руслан?

Решение:

Для решения используется модуль itertools. Функция product генерирует все возможные комбинации букв. Цикл перебирает полученные комбинации, проверяет условие на количество гласных букв и считает количество подходящих кодов. Результат: 4864.

Задача 6: Рекурсивная функция

Задана рекурсивная функция, которая считает количество способов получить из числа a число b, избегая при этом числа c.

Вопрос: Сколько есть способов получить из числа 225 число 1024, избегая числа 512?

Решение:

Рекурсивная функция реализуется согласно условию задачи. В ней проверяются условия: a = b, a = c, и a > b. В остальных случаях используется рекурсивная формула. Функция вызывается с параметрами 225, 1024 и 512. Результат: 327715.

Что будем искать? Например,программа