Задание 11. Вычисление количества информации.. ЕГЭ 2026 по информатике

За это задание ты можешь получить 1 балл. На решение дается около 3 минут. Уровень сложности: повышенный.
Средний процент выполнения: 33%
Ответом к заданию 11 по информатике может быть последовательность цифр, чисел или слов. Порядок записи имеет значение.

Алгоритм решения задания 11:

  1. Прочитай условие и выпиши все данные: алфавит/кодировка, длина сообщения, объём одного символа или другие параметры.
  2. Определи информационный вес одного символа (если он не дан) из условий кодирования.
  3. Найди количество символов в сообщении (если оно не дано напрямую).
  4. Вычисли объём сообщения: число символов умножь на информационный вес одного символа.
  5. Если в сообщении несколько частей (слова, строки, файлы), сложи объёмы всех частей.
  6. Переведи результат в требуемые единицы (бит, байт, Кбайт и т.д.).
  7. Проверь, что использованы правильные параметры и единицы.
  8. Запиши ответ в требуемом формате.

Что нужно знать, чтобы решить задание 11:

  1. Арифметические операции в вашем языке программирования
  2. Условный оператор
  3. Функции и процедуры

Теория к 11 заданию: читать

Задачи для практики

Задача 1

На химическом производстве каждой партии реактива присваивается код, состоящий из 127 символов. Код записывается в журнал учета, занимая одинаковое и минимально возможное целое число байт. Используется посимвольное кодирование с одинаковым и минимальным целым количеством бит на символ. Для хранения 33 554 432 кодов требуется минимум 476 Мбайт памяти. Определите минимально возможное количество бит, которое можно использовать на один символ.

Решение

Один код имеет объём, равный I = n * i, где n - длина кода (в этой задаче n=127), i - вес одного символа

Найдём из общего числа сколько памяти можно выделить под один код:

33 554 432 * I >= 476 Мбайт (используется знак ">=", так как выделено "минимум" 476 Мбайт)

I >= (476 * 1024 * 1024) / (33 554 432) >= 14.875 байт. Так как каждый код кодируется целым количеством байт, нужно найти ближайшее целое подходящее число, которое будет больше 14.875, то есть 15 байт

Вернёмся к формуле для одного кода:

127 * i >= 15 байт

Переведём правую часть в биты, умножив на 8, так как левая часть исчисляется в битах

i >= (15 * 8) / 127 >= 0.94 бит. i дробным быть не может (так как это кол-во бит, они всегда исключительно целые), наименьшее целое подходящее i = 1 бит

Ответ: 1
Показать решение
Бесплатный интенсив

Задача 2

Для передачи телеметрии используется идентификатор объекта, составленный из 128-символьного алфавита. Идентификатор занимает в памяти 7 байт (целое минимальное число байт). Определите максимальную длину идентификатора в символах.

Решение

Один идентификатор имеет объём I = n * i, где n — длина идентификатора, i — вес одного символа.

Алфавит: 128 символов → i = 7 бит (2^6=64 < 128 ≤ 128=2^7).

I = 7 байт = 56 бит.

n * 7 = 56

n = 56 / 7 = 8

Ответ: 8

Ответ: 8
Показать решение
Бесплатный интенсив

Задача 3

Каждому файлу в файловой системе присваивается уникальное имя, состоящее из 512 символов. Имя файла занимает в системном каталоге одинаковое и минимально возможное целое число байт. При кодировании используется одинаковое и минимальное целое число бит на символ. Известно, что 4 194 304 имени файлов занимают ровно 2 Гбайта памяти. Определите, сколько всего символов могло использоваться в алфавите для имен файлов.

Решение

Одно имя имеет объём, равный I = n * i, где n - длина имени (в этой задаче n=512), i - вес одного символа

Найдём из общего числа сколько памяти можно выделить под одно имя:

4 194 304 * I = 2 Гбайт

I = (2 * 1024 * 1024 * 1024) / (4 194 304) = 512 байт. По условию каждое имя закодировано целым числом байт, то есть 512 байт так и оставляем

Вернёмся к формуле для одного имени:

512 * i = 512 байт

Переведём правую часть в биты, умножив на 8, так как левая часть исчисляется в битах

i = (512 * 8) / 512 = 8

Чтобы определить алфавит нужно вспомнить формулу Хартли: N = 2**i

Самое минимальное кол-во символов, которое можно закодировать 8 битами -> 129 (в 8 бит можно вместить от 129 до 256 символов включительно)

Ответ: 129
Показать решение
Бесплатный интенсив

Задача 4

Система генерирует временные коды из символов алфавита {A, B, C, D, E, F, G, H}. Код хранится в базе, занимая 5 байт (минимальное целое число байт). Найдите максимальное количество символов в коде.

Решение

Один код имеет объём I = n * i, где n — длина кода, i — вес одного символа.

Алфавит: 8 символов → i = 3 бита (2^2=4 < 8 ≤ 8=2^3).

I = 5 байт = 40 бит.

n * 3 ≤ 40

n = 40 / 3 = 13.33 → n = 13

Ответ: 13

Ответ: 13
Показать решение
Бесплатный интенсив

Задача 5

В базе данных каждый номер заказа состоит из символов алфавита мощностью 60. Номер занимает 10 байт (минимальное целое число байт). Какова максимальная длина номера?

Решение

Один номер имеет объём I = n * i, где n — длина номера, i — вес одного символа.

Алфавит: 60 символов → i = 6 бит (2^5=32 < 60 ≤ 64=2^6).

I = 10 байт = 80 бит.

n * 6 ≤ 80

n = 80 / 6 = 13.33 → n = 13

Ответ: 13

Ответ: 13
Показать решение
Бесплатный интенсив

Задача 6

В системе учёта каждый товар имеет штрихкод, состоящий из символов некоторого алфавита. Все символы кодируются одинаковым минимально возможным целым количеством бит. Известно, что для хранения одного штрихкода отводится 30 байт. Мощность алфавита — 33 символа. Какова максимальная длина штрихкода (в символах), которая помещается в отведённый объём?

Решение

Один штрихкод имеет объём, равный I = n * i, где n — длина кода (неизвестна), i — вес одного символа.

Известно: i = 6 бит (т.к. N=33, 2^5=32 < 33 ≤ 64=2^6), I = 30 байт = 240 бит.

Формула: n * i = I

n * 6 = 240

n = 240 / 6 = 40

Ответ: 40

Ответ: 40
Показать решение
Бесплатный интенсив

Задача 7

База данных хранит серийные номера изделий, используя алфавит из 17 символов. Все символы кодируются минимальным целым числом бит. Один номер в базе занимает 9 байт (минимальное целое число байт). Какова максимальная длина номера?

Решение

Один номер имеет объём I = n * i, где n — длина номера, i — вес одного символа.

Алфавит: 17 символов → i = 5 бит (2^4=16 < 17 ≤ 32=2^5).

I = 9 байт = 72 бита.

n * 5 ≤ 72

n = 72 / 5 = 14.4 → n = 14 (целое, т.к. символы)

Ответ: 14

Ответ: 14
Показать решение
Бесплатный интенсив

Задача 8

В системе безопасности каждый пропуск имеет серийный номер длиной 333 символа. Номер хранится в электронной базе, занимая одинаковое и минимально возможное целое число байт на запись. Все символы кодируются одинаковым и минимально возможным целым числом бит. Для хранения информации о 12 648 570 пропусках требуется не менее 5 Гбайт памяти. Определите минимально возможную мощность алфавита, из которого формируются номера пропусков.

Решение

Один номер имеет объём, равный I = n * i, где n - длина номера (в этой задаче n=333), i - вес одного символа

Найдём из общего числа сколько памяти можно выделить под один номер:

12 648 570 * I >= 5 Гбайт (знак >=, так как выделили "не менее" 5 Гбайт)

I >= (5 * 1024 * 1024 * 1024) / (12 648 570) >= 424.45 байт. По условию каждый номер закодирован целым числом байт, то есть нам нужно найти ближайшее целое число, которое больше 424.45, то есть 425 байт

Вернёмся к формуле для одного номера:

333 * i >= 425 байт

Переведём правую часть в биты, умножив на 8, так как левая часть исчисляется в битах

i >= (425 * 8) / 333 >= 10.21... i дробным быть не может (так как это кол-во бит, они всегда исключительно целые), наименьшее целое подходящее i = 11 бит

Чтобы определить алфавит нужно вспомнить формулу Хартли: N = 2**i

Самое минимальное кол-во символов, которое можно закодировать 11 битами -> 1025 (в 11 бит можно вместить от 1025 до 2048 символов включительно)

Ответ: 1025
Показать решение
Бесплатный интенсив

Задача 9

В метеорологической службе каждая станция передает код погоды длиной 819 символов. Код хранится в базе данных, причем под него отводится минимальное целое число байт, достаточное для записи всех символов. Кодирование посимвольное, все символы кодируются минимально возможным целым числом бит. Для хранения архивных данных со 156 381 станции потребовалось более 114 Мбайт. Чему равна минимальная мощность алфавита, используемого в кодах?

Решение

Один код имеет объём, равный I = n * i, где n - длина кода (в этой задаче n=819), i - вес одного символа

Найдём из общего числа сколько памяти можно выделить под один код:

156 381 * I > 114 Мбайт (знак >, так как выделили "более" 114 Мбайт)

I > (114 * 1024 * 1024) / (156 381) > 764.4 байт. По условию каждый код закодирован целым числом байт, то есть нам нужно найти ближайшее целое число, которое больше 764.4, то есть 765 байт

Вернёмся к формуле для одного кода:

819 * i > 765 байт

Переведём правую часть в биты, умножив на 8, так как левая часть исчисляется в битах

i > (765 * 8) / 819 > 7.47... i дробным быть не может (так как это кол-во бит, они всегда исключительно целые), наименьшее целое подходящее i = 8 бит

Чтобы определить алфавит нужно вспомнить формулу Хартли: N = 2**i

Самое минимальное кол-во символов, которое можно закодировать 8 битами -> 129 (в 8 бит можно вместить от 129 до 256 символов включительно)

Ответ: 129
Показать решение
Бесплатный интенсив

Задача 10

В социальной сети каждый пост имеет уникальный цифровой отпечаток длиной 4096 символов. Отпечаток хранится в базе данных, причем под одну запись отводится целое число байт, которого минимально достаточно для хранения всех символов. Все символы кодируются минимальным возможным целым числом бит. Для хранения 262 144 отпечатков выделено ровно 1 Гбайт памяти. Определите максимальную мощность алфавита, из которого формируются эти отпечатки.

Решение

Один отпечаток имеет объём, равный I = n * i, где n - длина отпечатка (в этой задаче n=4096), i - вес одного символа

Найдём из общего числа сколько памяти можно выделить под один отпечаток:

262 144 * I = 1 Гбайт

I = (1* 1024 * 1024 * 1024) / (262 144) = 4096 байт.

Вернёмся к формуле для одного отпечатка:

4096 * i = 4096 байт

Переведём правую часть в биты, умножив на 8, так как левая часть исчисляется в битах

i = (4096 * 8) / 4096 = 8 бит

Чтобы определить алфавит нужно вспомнить формулу Хартли: N = 2**i

Самое максимальное кол-во символов, которое можно закодировать 8 битами -> 256 (в 8 бит можно вместить от 129 до 256 символов включительно)

Ответ: 256
Показать решение
Бесплатный интенсив

Задача 11

В библиотечной системе каждой книге присваивается шифр хранения, состоящий из 255 символов. Шифр занимает в базе данных одинаковое и минимально возможное целое число байт. Кодирование посимвольное, все символы кодируются минимальным целым числом бит. Для хранения 8 388 608 шифров требуется не менее 2 Гбайт памяти. Определите минимальное количество символов в алфавите, из которого состоят шифры.

Решение

Один шифр имеет объём, равный I = n * i, где n - длина шифра (в этой задаче n=255), i - вес одного символа

Найдём из общего числа сколько памяти можно выделить под один шифр:

8 388 608 * I >= 2 Гбайт (знак >=, так как выделили "не менее" 2 Гбайт)

I >= (2 * 1024 * 1024 * 1024) / ( 8 388 608) >= 256 байт. По условию каждый шифр закодирован целым числом байт, то есть нам подходит 256 байт

Вернёмся к формуле для одного шифра:

255 * i >= 256 байт

Переведём правую часть в биты, умножив на 8, так как левая часть исчисляется в битах

i >= (256 * 8) / 255 >= 8.03... i дробным быть не может (так как это кол-во бит, они всегда исключительно целые), наименьшее целое подходящее i = 9 бит

Чтобы определить алфавит нужно вспомнить формулу Хартли: N = 2**i

Самое минимальное кол-во символов, которое можно закодировать 9 битами -> 257 (в 9 бит можно вместить от 257 до 512 символов включительно)

Ответ: 257
Показать решение
Бесплатный интенсив

Задача 12

Каждому студенту выдаётся логин, состоящий из букв десяти латинских букв (A-J). Логин хранится в базе в виде целого числа байт минимального размера. Для кодирования 65 536 логинов потребовалось  ровно 192 Кбайт памяти. Определите длину логина.

Решение

Один логин имеет объём I = n * i, где n — длина логина, i — вес одного символа.

Алфавит: 10 букв → i = 4 бита (2^3=8 < 10 ≤ 16=2^4).

Общий объём: 192 Кбайт = 192 * 1024 байт = 196608 байт.

Количество логинов: 65536.

I = 196608 / 65536 = 3 байта = 24 бита.

n * 4 = 24

n = 24 / 4 = 6

Ответ: 6

Ответ: 6
Показать решение
Бесплатный интенсив

Задача 13

На складской системе каждой товарной единицы присваивается уникальный код, состоящий из 1024 символов. Для хранения кода в базе данных отводится одинаковое и минимально возможное целое число байт. Все символы кодируются одинаковым и минимально возможным целым числом бит. Известно, что для хранения 2 560 000 кодов требуется не менее 2560 Мбайт памяти. Определите минимально возможную мощность алфавита, используемого для записи кодов.

Решение

Один код имеет объём, равный I = n * i, где n - длина кода (в этой задаче n=1024), i - вес одного символа

Найдём из общего числа сколько памяти можно выделить под один код:

2 560 000 * I >= 2560 Мбайт (знак >=, так как выделили "не менее" 2560 Мбайт)

I >= (2560 * 1024 * 1024) / (2 560 000) >= 1048.576 байт. По условию каждый код закодирован целым числом байт, то есть нам нужно найти ближайшее целое число, которое больше 1048.576, то есть 1049 байт

Вернёмся к формуле для одного кода:

1024 * i >= 1049 байт

Переведём правую часть в биты, умножив на 8, так как левая часть исчисляется в битах

i >= (1049 * 8) / 1024 >= 8.19... i дробным быть не может (так как это кол-во бит, они всегда исключительно целые), наименьшее целое подходящее i = 9 бит

Чтобы определить алфавит нужно вспомнить формулу Хартли: N = 2**i

Самое минимальное кол-во символов, которое можно закодировать 9 битами -> 257 (в 9 бит можно вместить от 257 до 512 символов включительно)

Ответ: 257
Показать решение
Бесплатный интенсив

Задача 14

Каждая книга в библиотеке имеет шифр из 16-символьного алфавита. Шифр хранится в базе, занимая 6 байт (минимальное целое число байт). Определите максимальную длину шифра в символах.

Решение

Один шифр имеет объём I = n * i, где n — длина шифра, i — вес одного символа.

Алфавит: 16 символов → i = 4 бита (2^3=8 < 16 ≤ 16=2^4).

I = 6 байт = 48 бит.

n * 4 = 48

n = 48 / 4 = 12

Ответ: 12

Ответ: 12
Показать решение
Бесплатный интенсив

Задача 15

В системе безопасности пароль состоит из цифр 0–9 и заглавных латинских букв (A-Z). На хранение одного пароля отводится 12 байт (целое число байт минимально возможное). Какую максимальную длину может иметь пароль?

Решение

Один пароль имеет объём I = n * i, где n — длина пароля, i — вес одного символа.

Алфавит: 10 цифр + 26 букв = 36 символов → i = 6 бит (2^5=32 < 36 ≤ 64=2^6).

I = 12 байт = 96 бит.

n * 6 = 96

n = 96 / 6 = 16

<Ответ: 16

Ответ: 16
Показать решение
Бесплатный интенсив

Задача 16

В электронном журнале каждая запись кодируется с помощью алфавита мощностью 5 символов. Для хранения 4096 записей потребовалось  ровно 8 Кбайт памяти, причём каждая запись занимает одинаковое минимальное целое число байт. Определите длину одной записи.

Решение

Одна запись имеет объём I = n * i, где n — длина записи, i — вес одного символа.

Алфавит: 5 символов → i = 3 бита (2^2=4 < 5 ≤ 8=2^3).

Общий объём: 8 Кбайт = 8 * 1024 = 8192 байта.

Количество записей: 4096.

I = 8192 / 4096 = 2 байта = 16 бит.

n * 3 ≤ 16

n = 16 / 3 = 5.33 → n = 5

Ответ: 5

Ответ: 5
Показать решение
Бесплатный интенсив

Задача 17

Космическая станция принимает сигналы от спутника, собирающего данные по одному из показателей. Известно, что значение измеряемого показателя находится в диапазоне чисел от 10 до 5000 с шагом 0,5. Для сокращения количества передаваемых сигналов показания записываются в пакеты по 20 штук. Каждое показание кодируется одинаковым и минимально возможным количеством битов. При этом каждый пакет показаний сохраняется с помощью целого и минимально возможного количества байтов, после чего передаётся на космическую станцию.

Сколько Кбайт будет принято космической станцией, если от спутника будет получено 10000 пакетов? В ответе запишите только целую часть полученного числа Кбайт.

Решение

Первое, что нам нужно сделать, это определить мощность

N = (5000-10) / 10 + 1 = 9981 => что значение i = 14

Данных хранятся в виде пакетов, при этом имеют минимальное количество байт => (14 * 20) / 8 = 35

Сколько потребуется для хранения 10 000 пакетов в Кбайт? Для этого подсчитаем (10 000 * 35) / 1024 = 341.79, делим на 1024, так как данных уже в байтах. 

В ответе необходимо дать только целую часть. Ответ: 341

Ответ: 341
Показать решение
Бесплатный интенсив

Задача 18

Запись для каждого пользователя при регистрации состоит из идентификатора, логина и пароля. Идентификатор представляет собой пятизначное (в десятичной системе счисления) натуральное число, которое кодируется минимальным количеством битов, одинаковым для всех пятизначных чисел, и занимает в компьютерной системе минимально возможное целое число байтов. Логин, который пользователь придумывает сам, состоит из 17 символов и содержит только символы из 11 символьного набора: А, В, С, D, Е, F, G, H, K, L, M. Каждый такой логин в компьютерной программе записывается минимально возможным и одинаковым целым количеством байтов (при этом используют посимвольное кодирование, все символы кодируются одинаковым минимально возможным количеством битов). Далее к логину каждого пользователя дописывается пароль, автоматически сгенерированный системой, под который отводится 9 байт.

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

Решение

1. Размер идентификатора:
Идентификатор — это пятизначное натуральное число в десятичной системе счисления. Пятизначные числа могут варьироваться от 10000 до 99999, то есть всего 90000 различных чисел.
Для кодирования этих чисел потребуется минимум 17 бит. Переводим биты в байты:
17 / 8 = 2.125 байта, округляем в большую сторону до 3 байт.

2. Размер логина:
Логин состоит из 17 символов, каждый из которых выбирается из 11 символов: А, В, С, D, Е, F, G, H, K, L, M. Для кодирования одного символа потребуется минимум 4 бита.
Общий размер для всего логина: 17 * 4 = 68 бит, что составляет 68 / 8 = 8.5 байт, округляем в большую сторону до 9 байт.

3. Размер пароля:
Пароль фиксированного размера, для которого отведено 9 байт.

4. Общий размер данных для одного пользователя:
Суммируем размеры всех компонентов:
3 байта (идентификатор) + 9 байт (логин) + 9 байт (пароль) = 21 байт.

5. Количество пользователей, которых можно зарегистрировать:
У нас есть 6 Кбайт (6144 байта). Чтобы найти, сколько пользователей можно зарегистрировать, делим общее количество байт на размер записи одного пользователя:
6144 / 21 ≈ 292.57, округляем в меньшую сторону, получаем 292 пользователя.

Ответ: Максимальное количество пользователей, которых можно зарегистрировать — 292.

Ответ: 292
Показать решение
Бесплатный интенсив

Задача 19

При регистрации в компьютерной системе на каждого сотрудника заводят запись из двух полей: идентификатор и биометрия лица. Идентификатор состоит из 5 символов, которые берутся из набора символов {?, $, %, @, &, *}. Биометрия лица представлена десятью различными трёхзначными числами. В базе данных для хранения каждого поля отведено минимально возможное целое число байтов. При этом используют посимвольное кодирование полей. Все символы (или числа) кодируют одинаковым и минимально возможным количеством битов.

Сколько Кбайт памяти потребуется для хранения 1000 записей? В ответе запишите только целую часть полученного числа Кбайт.

Решение

Идентификатор состоит из 5 символов, и каждый символ выбирается из набора {?, $, %, @, &, *}, то есть всего 6 символов.

Для хранения одного символа нам нужно минимальное количество битов, которое достаточно для кодирования 6 различных символов. Количество битов, необходимое для представления NN различных значений, можно найти по формуле: N = 2i = 6. 

Итак, для хранения одного символа достаточно 3 бит. Поскольку идентификатор состоит из 5 символов, то для всего идентификатора потребуется:

5×3=15 бит = 2байт

Биометрия лица представлена десятью различными трёхзначными числами. Каждое число — это трёхзначное число, то есть число от 000 до 999. Для хранения такого числа потребуется 10 бит, так как: N = 2i = 1000.

Поскольку таких чисел 10, для хранения всей биометрии потребуется:

10×10=100 бит =  13байт

Для хранения 1000 записей потребуется (2+13) * 1000 = 15000байт. Разделим на 1024, чтобы получить в Кбайт, 13000 / 1024 = 14.64.

Целая часть полученного числа 14.

Ответ: 14
Показать решение
Бесплатный интенсив

Задача 20

Космическая станция принимает сигналы от спутника, собирающего данные по одному из показателей. Известно, что значение измеряемого показателя находится в диапазоне чисел от 10 до 3000 с шагом 0,1. Для сокращения количества передаваемых сигналов показания записываются в пакеты по 30 штук. Каждое показание кодируется одинаковым и минимально возможным количеством бит. При этом каждый пакет показаний сохраняется с помощью целого и минимально возможного количества байтов, после чего передаётся на космическую станцию.

Сколько Кбайт будет принято космической станцией, если от спутника будет получено 1000 пакетов? В ответе запишите целую часть полученного числа.

Решение

Первое, что нам нужно сделать, это определить мощность

N = (3000-10) / 0.1 + 1 = 29901 => что значение i = 15

Данных хранятся в виде пакетов, при этом имеют минимальное количество байт => (15 * 30) / 8 = 57, округляем в большую сторону, чтобы сохранить всю информацию.

Сколько потребуется для хранения 1000 пакетов в Кбайт? Для этого подсчитаем (1000 * 57) / 1024 = 55.66, делим на 1024, так как данные уже в байтах. 

В ответе необходимо дать только целую часть. Ответ: 55

Ответ: 55
Показать решение
Бесплатный интенсив
Показать еще

Теория для 11 задания ЕГЭ по информатике


Для начала разберёмся с понятием Рекурсия.

Рекурсия — вызов функции внутри самой себя.

Давайте разберёмся на примере. Предположим, вы где-то работаете и вам каждый день платят по 1000 рублей. Вы хотите узнать, сколько у вас сейчас денег. Давайте попробуем их посчитать через рекурсию.

Сегодняшняя сумма ваших денег — это вчерашняя сумма, увеличенная на 1000 рублей.
А вчерашняя сумма денег — это позавчерашняя сумма, увеличенная на 1000 рублей.
И так можно продолжать до бесконечности. Ситуацию можно описать формулой:
F(n) = F(n-1)+1000, где F(n) — сумма денег в n-ый день, а F(n-1) — сумма денег в предыдущий n-1-ый день. Такая формула называется рекуррентной.

Но так мы можем считать до бесконечности. Сумма, которая была у нас 451 день назад = сумме, которая была 452 назад, увеличенной на 1000. Именно поэтому нам необходимо условие выхода из рекурсии:
Предположим, что в 1-ый день у нас было 0 рублей. А сейчас 100-ый день, тогда если n > 1, то нашу сумму можно посчитать по формуле
F(n) = F(n-1)+1000,
а если n = 1, то
F(n) = 0 — это и есть условие выхода из рекурсии.

В виде кода (язык Python) это можно записать как:
def f(n):
ᅠif n > 1:
ᅠᅠreturn f(n-1)+1000
ᅠelse:
ᅠᅠreturn 0

Практика

Пример

На рисунке записан рекурсивный алгоритм F. Чему равна сумма чисел, напечатанных на экране при выполнении вызова F(4)?

Решение

Обратим внимание, что вывод значения на экран происходит в тот момент, когда запускается наша процедура. Следовательно, как только мы вызвали F(4), на экране появилось первое число. Консоль вывода будет выглядеть так: | 4

Далее проверяется условие n > 1. 4 явно больше 1, значит заходим внутрь условного оператора, оказываемся на строчке f(n-1). Эта строчка запускает процедуру f(n-1). Важный момент: сейчас текущая процедура f(n) встала на паузу и ждёт, пока процедура f(n-1) полностью завершит свою работу. Это как в Марио попасть с основного уровня на бонусный. Пока мы на бонусном уровне, основной уровень стоит на паузе.

Схему проще всего представлять в виде дерева:

Теперь запустилась процедура F(3). Сразу же в консоль отправляется число «3». Теперь в консоли мы наблюдаем:
| 4 3

Далее проверяется условие n > 1. 3 больше, чем 1, значит вновь оказываемся на строчке f(n-1) и запускаем f(2):

F(2) выводит на экран число «2»:
| 4 3 2

2 > 1, значит F(2) запускает F(n-1), то есть F(1):

F(1) выводит на экран число «1»:
| 4 3 2 1

Проверка условия n > 1 даёт нам False. 1 не больше, чем 1. Значит процедура F(1) завершает свою работу. Возвращаемся в процедуру F(2). Там мы остановились на строчке F(n-1), которая только что успешно завершила свою работу. Переходит к следующей строчке: F(n-2), которая вызовет F(0):

F(0) выведет на экран 0 и тут же завершит свою работу, не пройдя условие n > 1:
| 4 3 2 1 0

Больше в F(2) делать нечего, она тоже завершает свою работу. Мы возвращаемся в F(3), где остановились на строчке F(n-1). Теперь переходим к строчке F(n-2) и вызываем F(1):

Мы уже вызывали F(1) ранее, но сейчас он вызывается заново, выводит на экран «1» и завершается, не пройдя условие n > 1:
| 4 3 2 1 0 1

Возвращаемся в F(3), она завершила свою работу. Теперь возвращаемся в самое начало — процедуру F(4). Напоминаю, что в ней мы остановились на строчке F(n-1). Теперь, когда она полностью завершила свою работу, мы приступаем к следующей строке F(n-2) и вызываем F(2). Ранее мы уже вызывали F(2) и знаем, что дерево выглядеть будет так:

И выведет поочередно «2» «1» «0»:
| 4 3 2 1 0 1 2 1 0

После чего все процедуры завершат свою работу, а значит и программа завершит свою работу. Осталось сложить числа, выведенные на экран, согласно условию:
4+3+2+1+0+1+2+1+0=14

Ответ: 14

  • Без воды
  • Ламповая атмосфера
  • Крутые преподаватели

ЕГЭ 2026: бесплатный курс
по информатике

На бесплатном демо-курсе ты:
  • Узнаешь как кодируется изображение
  • Поймешь как решать 7 номер ЕГЭ
  • Разберешься с паролями
  • Потренируешь 11 и 4 номер ЕГЭ
Получи бесплатный демо-доступ
Оставь заявку и займи место
на бесплатном курсе Турбо ЕГЭ
Нажимая на кнопку «Отправить», вы принимаете положение об обработке персональных данных.