ЕГЭ по информатике. Задание 13

ЕГЭ по информатике. Задание 13Ах, заветное 13-е задание в ЕГЭ по информатике — тот самый момент, когда даже калькулятор вздыхает с облегчением. Что там сложного? Посчитать количество информации!

Ну, кто же не мечтал о таком подарке судьбы? Это почти как сказать: «Пожалуйста, посчитайте свои носки». Простое дело, правда?

Начнем с классического примера.

Представьте себе 20 пользователей, каждый из которых хранит у себя парочку секретиков — пароль и дополнительные сведения объемом в 24 байта на душу. Если вы подумали: «Ого, это ж сколько всего!», не торопитесь — математика уже выстроилась в очередь и готова помочь. 24 байта на пользователя умножаем на 20 пользователей — получаем 480 байт.

Вот и вся арифметика.

Теперь про пароли. Каждый состоит из 15 символов, а символы эти берутся из набора всего лишь из восьми вариантов. Серьезно?

Восьми? Это как играть в лото с восемью шарами — скучно, но надежно! Чтобы узнать, сколько бит понадобится для хранения одного такого пароля, нам нужна формула. Не пугайтесь слова «формула» — она всего лишь напоминает нам про логарифмы и степень двойки.

Если бы у меня был рубль за каждый раз, когда я слышал слово «логарифм» на экзамене… Но вернемся к делу.

Количество бит i равно количеству символов k умноженному на логарифм по основанию 2 от мощности алфавита M (количество символов). В нашем случае: i = 15 * log₂(8). А log₂(8) — это просто три (ведь 2 в кубе равно 8).

Значит i = 15 * 3 = 45 бит.

Дальше переводим биты в байты. Тут главное не забыть: один байт — это восемь бит.

Делим 45 на восемь и получаем примерно 5.6 байт. И поскольку компьютер любит округлять вверх (ведь ему всегда нужно чуть больше места под чай и печеньки), берем сразу шесть байт.

Итого для двадцати пользователей по шесть байт на пароль — ровно сто двадцать байт плюс те самые четыреста восемьдесят под дополнительные сведения дают нам… барабанная дробь… шестьсот байт! Вот так просто.

А теперь представьте себе другую ситуацию: семнадцать сотрудников и алфавит побогаче — цифры от нуля до девяти и целая куча латинских букв как строчных, так и прописных (всего-то шестьдесят два символа).

Тут уже не так просто вычислить логарифм по основанию два от шестидесяти двух символов — ведь это не круглая цифра вроде восьми или шестнадцати.

Но если прикинуть: две в пятой степени равны тридцати двум (слишком мало), а две в шестой – шестьдесят четыре (чуть больше нужного), то приходится брать большую степень – шесть бит на символ.

Значит для пароля из одиннадцати символов получаем: i = 11 * 6 = 66 бит для хранения одного пароля.

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

Умножаем на семнадцать пользователей – выходит сто пятьдесят три байта.

Ну что тут скажешь? Компьютерные системы любят порядок и аккуратность больше наших бабушек с их вязаными пледами!

В целом задача кажется простой настолько, что можно было бы рассказать анекдот:

— Почему программистам легко сдавать информатику?
— Потому что они считают биты во сне!

И правда, если даже ваш кот умеет считать количество информации о своих мурлыках (а он точно знает сколько раз вы нажали кнопку мыши), то вам-то бояться нечего!