Найти в Дзене

Алгоритм решения задания 11 ЕГЭ по информатике. Часть 2

Это вторая часть статьи, в которой мы разбираем алгоритм решения задания 11 ЕГЭ по информатике. Остальные статьи доступны по ссылкам: В прошлой статье мы познакомились с формулами для определения объёма текстового сообщения и научились решать 11 задания, в которых необходимо найти длину серийного номера или идентификатора. Эта же статья посвящена второму типу 11 заданий, в котором условие содержат такую фразу: «Определите объём памяти, необходимый для хранения заданного числа серийных номеров / идентификаторов». Ранее мы говорили, что 11 задания предполагают три возможных варианта решения: Однако в случае с рассматриваемым в этой статье типом, третий вариант – перебор значений – будет недоступен. Здесь от нас требуется буквально вычислить точный объём памяти, а не подобрать минимальный/максимальный. Так что решать все задания будем только по формулам. Полностью ручное решение распишем для одного примера, а два других будем решать уже в среде разработки. Больше заданий с подробными реше
Оглавление

Это вторая часть статьи, в которой мы разбираем алгоритм решения задания 11 ЕГЭ по информатике.

Остальные статьи доступны по ссылкам:

В прошлой статье мы познакомились с формулами для определения объёма текстового сообщения и научились решать 11 задания, в которых необходимо найти длину серийного номера или идентификатора.

Эта же статья посвящена второму типу 11 заданий, в котором условие содержат такую фразу: «Определите объём памяти, необходимый для хранения заданного числа серийных номеров / идентификаторов».

Ранее мы говорили, что 11 задания предполагают три возможных варианта решения:

  1. Полностью ручное решение
  2. Решение по формулам, но в среде разработки
  3. Перебор значений в цикле for

Однако в случае с рассматриваемым в этой статье типом, третий вариант – перебор значений – будет недоступен. Здесь от нас требуется буквально вычислить точный объём памяти, а не подобрать минимальный/максимальный. Так что решать все задания будем только по формулам.

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

Ручное решение

Первой рассмотрим задание с такой формулировкой:

Задание 1101

«При регистрации в компьютерной системе каждому объекту присваивается идентификатор, состоящий из 317 символов и содержащий только десятичные цифры и символы из 4090-символьного специального алфавита. В базе данных для хранения каждого идентификатора отведено одинаковое и минимально возможное целое число байт. При этом используется посимвольное кодирование идентификаторов, все символы кодируются одинаковым и минимально возможным количеством бит. Определите объём памяти (в Мбайт), необходимый для хранения 262 144 идентификаторов.

В ответе запишите только целое число – количество Мбайт»

Начнём решение с определения мощности алфавита (N): 10 цифр + 4090 спецсимволов, итого мощность алфавита равна 5000 символов.

Сразу же найдём вес одного символа. Вспоминаем степени двойки: ближайшее число к 5000 – это 2 в 12-ой степени  или же 4096. Но в 12 бит у нас не влезут все 5000 символов, так что придётся брать на один побольше – 13 бит на символ.

Из условия мы знаем длину идентификатора (L), равную 317 символов, и только что вычислили вес одного символа (i) в битах, следовательно, можем найти вес одного идентификатора в байтах:

-2

Чтобы все символы точно уместились, округлим вес одного идентификатора в большую сторону, до значения в 516 байт.

Теперь осталось вычислить объём памяти, необходимый для хранения всех 262 144 идентификаторов. Для этого просто умножим вес одного идентификатора на их количество и переведём полученное значение в мегабайты:

-3

В ответе запишем число 129.

Решение кодом. Пример 1

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

Формулировка второй задачи следующая:

Задание 1110

«При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 7 символов и содержащий только символы 26-символьного набора строчных латинских букв и десяти арабских цифр. В базе данных для хранения сведений о каждом пользователе отведено одинаковое и минимально возможное целое число байт. При этом используют посимвольное кодирование паролей, все символы кодируют одинаковым и минимально возможным количеством бит. Кроме собственно пароля, для каждого пользователя в системе хранятся дополнительные сведения, для чего отведено 9 байт на одного пользователя.

Определите объём памяти (в байтах), необходимый для хранения сведений о 30 пользователях. В ответе запишите только целое число – количество байт»

Что мы имеем из условия:

  1. Длина пароля: 7 символов
  2. Алфавит: 10 цифр и 26 строчных букв латинского алфавита
  3. Дополнительные данные в размере 9 байт на каждого пользователя
  4. Всего пользователей в системе: 30

Давайте все эти данные и запишем в переменные:

-4

Вычисляем вес одного символа:

-5

Далее вычисляем вес одного пароля:

-6

Осталось лишь сложить полученный вес одного пароля с 9 байтами дополнительных данных и умножить эту сумму на количество пользователей:

-7

В итоге получаем такой код для решения этого задания:

-8

После выполнения этой программы, видим на экране значение 450, которое и пишем в ответ.

Решение кодом. Пример 2

Рассмотрим еще один пример на решение в среде разработки. В этот раз будет такая формулировка 11 задания:

Задание 1115

идентификатор, состоящий из 5 символов и содержащий только десятичные цифры и символы из 7084-символьного специального алфавита. В базе данных для хранения каждого идентификатора отведено одинаковое и минимально возможное целое число байт. При этом используется посимвольное кодирование идентификаторов, все символы кодируются одинаковым и минимально возможным количеством бит.

Определите объём памяти (в Кбайт), необходимый для хранения 22 528 идентификаторов. В ответе запишите только целое число – количество Кбайт»

По аналогии с прошлым решением выпишем все имеющиеся у нас на руках данные:

  1. Длина идентификатора: 5 символов
  2. Алфавит: 10 цифр и 7084 спецсимволов
  3. Количество идентификаторов: 22 528 штук

Переносим эти данные в нашу среду разработки:

-9

Вычисляем вес одного символа:

-10

Теперь вычисляем вес одного идентификатора:

-11

И, наконец, вычислим требуемый объем памяти и переведём его в килобайты:

-12

Вся наша программа выглядит так:

-13

А в результате получаем ответ на это задание –198.

В следующей статье мы завершим работу с 11 заданиями и научимся вычислять мощность алфавита.

<<< Предыдущая статья Следующая статья >>>