ЕГЭ по информатике 2022 — Задание 16 (Рекурсия)
Шестнадцатое задание из ЕГЭ по информатике 2022 даётся на рекурсию.
Это задание нужно делать с помощью компьютера.
В программировании рекурсией называется процесс, когда функция вызывает сама себя или, когда две функции попарно вызывают друг друга.
Мы будем писать все программы на языке программирования Python.
Что такое Функция в языке программирования Python ?
Рассмотрим пример функции, которая суммирует два числа!
Здесь функция F, которая суммирует два числа.
В главной части программы запрашиваются два числа с клавиатуры: a и b! Эти два числа передаются в функцию F. В функции эти числа кладутся в локальные переменные x и y. Сумма переменных x и y записывается в переменную s. Переменная s возвращается, как результат работы функции F.
Результат работы функции будет помещён в переменную r (в строке r = F(a, b)) в основной части программы.
Таким образом, в переменной r будет сумма двух переменных a и b.
Функции позволяют сократить программный код для однотипных расчётов.
Тренировочные задачи 16 задания из ЕГЭ по информатике 2023
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = 1 при n = 1;
F(n) = n + F(n − 1), если n – чётно,
F(n) = 3 × F(n − 2), если n > 1 и при этом n – нечётно.
Чему равно значение функции F(25)?
Напишем программу для решения данной задачи. В начале опишем все правила, которые даны в условии задачи для функции. В основной части программы запустим эту функцию.
После запуска рекурсивной функции программа выведет ответ 531441.
Выражение n%2 != 0 (остаток от деления на «2» не равен нулю) обозначает нечётное число. Выражение n%2==0 обозначает чётное число.
Ответ: 531441
Продолжаем тренировку по подготовке к 16 заданию ЕГЭ по информатике 2022.
Задача (Продолжаем подготовку)
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(1) = 1
F(2) = 3
F(n) = F(n–1) * n + F(n–2) * (n – 1) , при n > 2
Чему равно значение функции F(8)? В ответе запишите только натуральное число.
Ответ получается 148329.
Ответ: 148329
Закрепляющий пример на рекурсию 16 задания из ЕГЭ по информатике 2022.
Алгоритм вычисления значения функций F(n) и G(n), где n — натуральное число, задан следующими соотношениями:
F(n) = 0, если n 2
Чему равно значение функции F(8)? В ответе запишите только натуральное число.
Получается ответ 9.
Задача (Количество значений)
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = 2*n*n*n + 1, при n > 25
F(n) = F(n+2) + 2*F(n+3), при n ≤ 25
Определите количество натуральных значений n из отрезка [1; 1000], для которых значение F(n) кратно 11.
В начале формируем функцию F. Затем перебираем числа из диапазона от 1 до 1000. Каждое число подставляем в функцию F. Если значение функции F делится на 11, то мы зачитываем такое значение i.
В ответе получается 91.

Задача (Используем глобальную переменную)
Решение:
При решении этой задачи можно применить глобальную переменную.
Здесь внутри функции заводим глобальную переменную s, которая будет подсчитывать количество напечатанных звёздочек. Теперь эту переменную видно при любом вызове функции, и при каждом вызове функции она будет одна и та же переменная. Вместо печати звёздочек пишем конструкцию s=s+1.
В основной части программы перед первым запуском функции переменной s присваиваем 0.
Программа может немного медленно работать из-за большой глубины рекурсии, но через минуту выведет число 96631265.
Ответ: 96631265
Новые тенденции
В последнее время мы видим тенденцию в 16 задании из ЕГЭ по информатике 2023, что теперь мало переписать функцию и её запустить. Необходимо подумать, как можно преобразовать то рекурсивное выражение, которое нужно вычислить.
(К. Багдасарян) Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = 2, если n = 1,
F(n) = 2 · F(n – 1), если n > 1.
Чему равно значение выражения F(1900)/2 1890 ?
1 Способ (Аналитическое решение)
Если мы просто перепишем функцию и попытаемся вычислить выражение F(1900)/2 1890 , то получим ошибку RecursionError: maximum recursion depth exceeded . Возникает она из-за слишком большой цепочки вызовов функции.
В подобных задачах нужно попытаться самому упростить выражение, которое пытаемся вычислить. Посмотрим, что из себя представляет функция.
F(1900) = 2*F(1899) = 2*2*F(1898) = . 2 1900
F(1900)/2 1890 = 2 1900 /2 1890 = 2 10 = 1024
Получается 1024.
2 Способ (Через lru_cache)
Чтобы уменьшить цепочку вызовов функции, можно использовать инструмент lru_cache.
В задаче функция опирается на значение функции от n-1 и т.д. За счёт этого происходят длинные вычисления для каждого числа n.
Использовав инструмент lru_cache, мы пробегаемся в цикле по значениям n в возрастающем порядке, и для каждого значения сохраняем результаты функции. Таким образом, вычисляя очередное значение, программа опирается на уже готовый результат, тем самым цепочка вызовов функции будет маленькой.
Ответ: 1024
Задача(Новое веяние, закрепление)
Алгоритм вычисления значения функции F(n), где n — натуральное число, задан следующими соотношениями:
F(n) = 1 при n ≤ 2;
F(n) = n * F(n-2), если n > 2.
Чему равно значение выражение F(3000)/F(2996) ?
1 Способ (Аналитическое решение)
Начнём расписывать F(3000).
F(3000) = 3000*F(2998) = 3000*2998*F(2996)
F(3000)/F(2996) = 3000*2998*F(2996)/F(2996) = 3000*2998 = 8994000
2 Способ (Через lru_cache)
Ответ: 8994000
Задача (Вперёд к победе!)
Алгоритм вычисления значения функции F(n), где n — натуральное число, задан следующими соотношениями:
F(n) = 1 при n=1;
F(n) = 2 при n=2;
F(n) = n*(n-1) + F(n-1) + F(n-2), если n > 2.
Чему равно значение функции F(2023) — F(2021) — 2*F(2020) — F(2019)?
1 Способ (Аналитическое решение)
F(2023) = 2023*2022 + F(2022) + F(2021) =
= 2023*2022 + 2022*2021 + F(2021) + F(2020) + F(2021) =
=2023*2022 + 2022*2021 + 2021*2020 + F(2020) + F(2019) + F(2020) + F(2021) =
2023*2022 + 2022*2021 + 2021*2020 + 2*F(2020) + F(2019) + F(2021) =
2023*2022 + 2022*2021 + 2021*2020 + F(2021) + 2*F(2020) + F(2019)
Если подставим полученный результат в выражение, которое нужно найти, то получим:
Задача №16. Поиск основания системы по окончанию числа, уравнения и различные кодировки, арифметические действия в различных системах.
Перед тем, как приступить к решению задач, нам нужно понять несколько несложных моментов.
Рассмотрим десятичное число 875. Последняя цифра числа (5) – это остаток от деления числа 875 на 10. Последние две цифры образуют число 75 – это остаток от деления числа 875 на 100. Аналогичные утверждения справедливы для любой системы счисления:
Последняя цифра числа – это остаток от деления этого числа на основание системы счисления.
Последние две цифры числа – это остаток от деления числа на основание системы счисления в квадрате.
Например, . Разделим 23 на основание системы 3, получим 7 и 2 в остатке (2 – это последняя цифра числа в троичной системе). Разделим 23 на 9 (основание в квадрате), получим 18 и 5 в остатке (5 = ).
Вернемся опять к привычной десятичной системе. Число = 100000. Т.е. 10 в степени k– это единица и k нулей.
Аналогичное утверждение справедливо для любой системы счисления:
Основание системы счисления в степени k в этой системе счисления записывается как единица и k нулей.
1. Поиск основания системы счисления
Пример 1.
В системе счисления с некоторым основанием десятичное число 27 записывается в виде 30. Укажите это основание.
Решение:
Обозначим искомое основание x. Тогда .Т.е. x = 9.
Пример 2.
В системе счисления с некоторым основанием десятичное число 13 записывается в виде 111. Укажите это основание.
Решение:
Обозначим искомое основание x. Тогда
Решаем квадратное уравнение, получаем корни 3 и -4. Поскольку основание системы счисления не может быть отрицательным, ответ 3.
Ответ: 3
Пример 3
Укажите через запятую в порядке возрастания все основания систем счисления, в которых запись числа 29 оканчивается на 5.
Решение:
Если в некоторой системе число 29 оканчивается на 5, то уменьшенное на 5 число (29-5=24) оканчивается на 0. Ранее мы уже говорили, что число оканчивается на 0 в том случае, когда оно без остатка делится на основание системы. Т.е. нам нужно найти все такие числа, которые являются делителями числа 24. Эти числа: 2, 3, 4, 6, 8, 12, 24. Заметим, что в системах счисления с основанием 2, 3, 4 нет числа 5 (а в формулировке задачи число 29 оканчивается на 5), значит остаются системы с основаниями: 6, 8, 12,
Ответ: 6, 8, 12, 24
Пример 4
Укажите через запятую в порядке возрастания все основания систем счисления, в которых запись числа 71 оканчивается на 13.
Если в некоторой системе число оканчивается на 13, то основание этой системы не меньше 4 (иначе там нет цифры 3).
Уменьшенное на 3 число (71-3=68) оканчивается на 10. Т.е. 68 нацело делится на искомое основание системы, а частное от этого при делении на основание системы дает в остатке 0.
Выпишем все целые делители числа 68: 2, 4, 17, 34, 68.
2 не подходит, т.к. основание не меньше 4. Остальные делители проверим:
68:4 = 17; 17:4 = 4 (ост 1) – подходит
68:17 = 4; 4:17 = 0 (ост 4) – не подходит
68:34 = 2; 2:17 = 0 (ост 2) – не подходит
68:68 = 1; 1:68 = 0 (ост 1) – подходит
2. Поиск чисел по условиям
Пример 5
Укажите через запятую в порядке возрастания все десятичные числа, не превосходящие 25, запись которых в системе счисления с основанием четыре оканчивается на 11?
Решение:
Для начала выясним, как выглядит число 25 в системе счисления с основанием 4.
. Т.е. нам нужно найти все числа, не больше , запись которых оканчивается на 11. По правилу последовательного счета в системе с основанием 4,
получаем числа и . Переводим их в десятичную систему счисления:
3. Решение уравнений
Пример 6
Ответ запишите в троичной системе (основание системы счисления в ответе писать не нужно).
Переведем все числа в десятичную систему счисления:
Квадратное уравнение имеет корни -8 и 6. (т.к. основание системы не может быть отрицательным). .
Ответ: 20
4. Подсчет количества единиц (нулей) в двоичной записи значения выражения
Для решения этого типа задач нам нужно вспомнить, как происходит сложение и вычитание «в столбик»:
При сложении происходит поразрядное суммирование записанных друг под другом цифр, начиная с младших разрядов. В случае, если полученная сумма двух цифр больше или равна основанию системы счисления, под суммируемыми цифрами записывается остаток от деления этой суммы на основание системы, а целая часть от деления этой суммы на основание системы прибавляется к сумме следующих разрядов.
При вычитании происходит поразрядное вычитание записанных друг под другом цифр, начиная с младших разрядов. В случае, если первая цифра меньше второй, мы «занимаем» у соседнего (большего) разряда единицу. Занимаемая единица в текущем разряде равна основанию системы счисления. В десятичной системе это 10, в двоичной 2, в троичной 3 и т.д.
Пример 7
Сколько единиц содержится в двоичной записи значения выражения: ?
Представим все числа выражения, как степени двойки:
В двоичной записи двойка в степени n выглядит, как 1 и n нулей. Тогда суммируя и , получим число, содержащее 2 единицы:

Теперь вычтем из получившегося числа 10000. По правилам вычитания занимаем у следующего разряда.

Теперь прибавляем к получившемуся числу 1:

Видим, что у результата 2013+1+1=2015 единиц.
Благодарим за то, что пользуйтесь нашими публикациями. Информация на странице «Задача №16. Поиск основания системы по окончанию числа, уравнения и различные кодировки, арифметические действия в различных системах.» подготовлена нашими редакторами специально, чтобы помочь вам в освоении предмета и подготовке к ЕГЭ и ОГЭ. Чтобы успешно сдать нужные и поступить в высшее учебное заведение или колледж нужно использовать все инструменты: учеба, контрольные, олимпиады, онлайн-лекции, видеоуроки, сборники заданий. Также вы можете воспользоваться другими статьями из данного раздела.
Рубрика «ЕГЭ Задание 16»
ЕГЭ информатика 16 задание разбор, теория, как решать.
Рекурсивные алгоритмы, (П) — 1 балл
для которых можно подобрать такое b, что F(a, b) = 1 048 576
Алгоритм вычисления значения функции F(a, b), где a и b – целые неотрицательные числа, задан следующими соотношениями: F(0, 0) = 0; F(a, b) = F(a–1, b) + b, если a > b; F(a, b) = F(a, b–1) + a, если a ≤ b и b > 0. Укажите количество таких целых неотрицательных чисел a, для …
Е16.28 Чему равно значение выражения F(2023) / F(2020)?
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями: F(n) = 1 при n = 1; F(n) = n × F(n − 1), если n > 1. Чему равно значение выражения F(2023) / F(2020)? Ответ: Демонстрационный вариант ЕГЭ 2023 г. – задание №16
Е16.27 Укажите наименьшее значение a, для которого F(a, 0) = 1392781243
Обозначим частное от деления целочисленного натурального числа a на натуральное число b как a div b, а остаток как a mod b. Например, 13 div 3 = 4, 13 mod 3 = 1. Алгоритм вычисления значения функции F(a, b), где a и b – целые неотрицательные числа, задан следующими соотношениями: F(0, b) = b; F(a, …
Е16.26 Чему равно значение функции F(42)?
Алгоритм вычисления значения функции F(n), где n — натуральное число, задан следующими соотношениями: F(n) = 1 при n = 1; F(n) = 3 × n + F(n — 2), если n > 1 и при этом n нечётно, F(n) = 4 × F(n / 2), если n > 1 и при этом n чётно. Чему …
Е16.25 Укажите количество таких значений n 17.02.2022 ЕГЭ Задание 16 Администратор Комментарии: 0
Алгоритм вычисления значения функции F(n), где n – целое неотрицательное число, задан следующими соотношениями: F(0) = 0; F(n) = F(n – 1) + 1, если n нечётно; F(n) = F(n/2), если n > 0 и при этом n чётно. Укажите количество таких значений n < 1 000 000 000, для которых F(n) = 2. СтатГрад …
Е16.24 являющихся результатом вызова функции для значений n в диапазоне [40; 50]
Алгоритм вычисления функции F(n), где n – целое неотрицательное число, задан следующими соотношениями:
Как решать 16 номер егэ информатика
№1. В системе счисления с некоторым основанием десятичное число 18 записывается в виде 30. Укажите это основание.
Составим уравнение: где n — основание этой системы счисления. Исходя из уравнения, n =6

№2. В системе счисления с некоторым основанием десятичное число 49 записывается в виде 100. Укажите это основание.

где n — основание этой системы счисления. Исходя из уравнения, n =7
№3. В системе счисления с некоторым основанием десятичное число 144 записывается в виде 264. Укажите это основание.
Запишем формулу преобразования числа, записанного в n системе счисления как 264 в десятичное число 144.

Решим это квадратное уравнение. Его корни: 7, -10. Так как основанием системы счисления не может быть отрицательное число, ответ — 7.
№4. В системе счисления с некоторым основанием десятичное число 25 записывается как 100. Найдите это основание.

где n — основание этой системы счисления. Исходя из уравнения, n =5
№5. В системе счисления с некоторым основанием число 12 записывается в виде 110. Укажите это основание.
Составим уравнение: где n — основание этой системы счисления. Исходя из уравнения, n =3
№6. В системе счисления с некоторым основанием десятичное число 27 записывается в виде 30. Укажите это основание.
Составим уравнение: где n — основание этой системы счисления. Исходя из уравнения, n =9

№7. В системе счисления с некоторым основанием десятичное число 13 записывается в виде 111. Укажите это основание.
Составим уравнение: 111n = 1 · n 2 + 1 · n 1 + 1 · n 0 = 1310, где n— основание этой системы счисления. Уравнениеn 2 + n − 12 = 0 имеет два корня: 3 и −4. Таким образом, основание системы счисления — 3.
№8. В системе счисления с некоторым основанием десятичное число 57 записывается как 111. Укажите это основание.
Составим уравнение: 111n = 1 · n 2 + 1 · n 1 + 1 · n 0 = 5710, где n — основание этой системы счисления. Уравнениеn 2 + n − 56 = 0 имеет два корня: 7 и −8. Таким образом, основание системы счисления — 7.
№9. В системе счисления с некоторым основанием десятичное число 12 записывается как 110. Укажите это основание.
Составим уравнение: 110n = 1 · n 2 + 1 · n 1 + 0 · n 0 = 1210, где n— основание этой системы счисления. Уравнениеn 2 + n − 12 = 0 имеет два корня: −4 и 3. Таким образом, основание искомой системы счисления — 3.
№10. В системе счисления с некоторым основанием десятичное число 15 записывается в виде 30. Укажите это основание.
Составим уравнение: 30n = 3 · n 1 + 0 · n 0 = 1510, где n— основание этой системы счисления. Откуда n = 5.
Уравнения и различные системы счисления
№1. Укажите, сколько всего раз встречается цифра 2 в записи чисел 10, 11, 12, …, 17 в системе счисления с основанием 5.
Запишем первое и последнее число в заданном диапазоне в системе счисления с основанием 5:
Запишем по порядку числа от
до 

Всего цифра «2» встречается 7 раз.
Ответ запишите в троичной системе (основание системы счисления в ответе писать не нужно).


Основание системы счисления равно 610 = 203.
№3. Сколько единиц содержится в двоичной записи значения выражения: 4 2020 + 2 2017 – 15?

Число 2 4040 в двоичной записи записывается как единица и 4040 нулей. Добавив число 2 2017 , получаем 100. 00100. 000 (единица, 2022 нулей, единица, 2017 нулей, всего 4040 разрядных цифр). Если вычесть из этого числа 2 4 = 100002 и прибавить 2 0 , то число примет вид 100. 001. 10001. В полученном числе единица, 2023 нуля, 2013 единиц, три нуля и одна единица. Значит, всего в числе 2015 единиц.
№4. Сколько единиц содержится в двоичной записи значения выражения: 4 2018 + 2 2018 – 32?

Число 2 4036 в двоичной записи записывается как единица и 4036 нулей. Добавив число 2 2018 , получаем 100. 00100. 000 (единица, 2018 нулей, единица, 2018 нулей, всего 4037 разрядных цифр). Если вычесть из этого числа 2 5 = 1000002, то число примет вид 100. 001. 100000. В полученном числе единица, 2019 нулей, 2013 единиц и пять нулей. Значит, всего в числе 2014 единиц.
№5. Решите уравнение 121x + 110 = 1019.

Корни квадратного уравнения: 8 и −10. Следовательно, основание системы счисления равно 8.
№6. Укажите, сколько всего раз встречается цифра 3 в записи чисел 19, 20, 21, …, 33 в системе счисления с основанием 6.
Запишем первое и последнее число в заданном диапазоне в системе счисления с основанием 6:


Запишем по порядку числа, в записи которых встречается цифра 3, от до : 316, 326, 336, 346, 356, 436, 536. Всего цифра «3» встречается 8 раз.
№7. Укажите, сколько всего раз встречается цифра 2 в записи чисел 13, 14, 15, …, 23 в системе счисления с основанием 3.
Запишем первое и последнее число в заданном диапазоне в системе счисления с основанием 3:


Запишем все числа из заданного диапазона, содержащие цифру «2»: 112, 120, 121, 122, 200, 201, 202, 210, 211, 212. Итого 2 встречается 13 раз.
№8. Укажите через запятую в порядке возрастания все десятичные числа, не превосходящие 30, запись которых в системе счисления с основанием 5 начинается на 3?
Сначала определим запись числа 29 в пятеричной системе.
. Выпишем числа, меньшие запись которых в пятеричной системе начинается на 3: 3, 30, 31, 32, 33, 34.
Переведем их в десятичную систему счисления.
,
,
,
,
, 
№9. Укажите через запятую в порядке возрастания все десятичные натуральные числа, не превосходящие 17, запись которых в троичной системе счисления оканчивается на две одинаковые цифры?
Так как число в системе счисления с основанием 3 кончается на f , то искомое число в десятичной системе счисления при делении на 3 должно давать остаток f (т. Е x =3 y + f . у — любое целое неотрицательное число, x — искомое число) и частное от этого деления также должно давать остаток f при делении на 3 (т. е. y =3 z + f , z — любое целое неотрицательное число). Следовательно, x=9z+4f .
Подбирая f и z , найдем все натуральные решения этого уравнения, не превосходящие 17.
1. При f =1, z =0 x =4;
2. При f = 2, z =0 x =8;
3. При f = =0, z =1 x =9;
4. При f = 1, z =1 x =13;
5. При f = 2, z =1 x =17;
6. При f = 1, z =2 x =22.
Заметим, что в последнем варианте искомое число больше 17, значит, мы заканчиваем пересчет на предыдущем.
№10. Чему равно наименьшее основание позиционной системы счисления x, при котором 225x = 405y?
Ответ записать в виде целого числа.
Поскольку в левой и в правой частях есть цифра 5, оба основания больше 5, то есть перебор имеет смысл начинать с 
Для каждого x вычисляем значение
и решаем уравнение
, причем нас интересуют только натуральные y >5
Для x =6 и x =7 нужных решений нет, а для x =8 получаем
так что у=6