Решение: Память для автомобильных номеров
Автомобильный номер состоит из 7 символов: четырёх цифр, за которыми следуют 3 буквы. Допустимыми символами считаются 9 цифр (кроме нуля) и 6 заглавных букв: А, Е, М, Н, О, Р. Для хранения каждой из цифр используется одинаковое и наименьшее возможное количество бит. Аналогично, для хранения каждой из букв используется одинаковое и наименьшее возможное количество бит. При этом количество бит, используемых для хранения одной буквы и одной цифры, могут быть разными.
Для хранения каждого номера используется одинаковое и минимально возможное количество байт. Сколько байт памяти потребуется для хранения 200 автомобильных номеров? Номера хранятся без разделителей.
Решение по шагам
5 шаговДля хранения одной цифры из 9 возможных требуется минимальное целое число бит, такое что $2^n \geq 9$. Следовательно, нужно 4 бита.
$$2^3 < 9 \leq 2^4$$Для хранения одной буквы из 6 возможных требуется 3 бита.
$$2^2 < 6 \leq 2^3$$В номере четыре цифры и три буквы, поэтому объём информации для одного номера равен:
$$4 \cdot 4 + 3 \cdot 3 = 16 + 9 = 25\text{ бит}$$Для хранения одного номера выделяется целое число байт. 25 бит занимают 4 байта.
$$\left\lceil\frac{25}{8}\right\rceil = 4\text{ байта}$$Для 200 номеров потребуется:
$$4 \cdot 200 = 800\text{ байт}$$Где здесь ошибаются
Использовать 3 бита для цифр, хотя 3 бита кодируют только 8 вариантов.
Округлять 25 бит до 3 байт вместо округления вверх до 4 байт.
Умножать отдельно объём цифр и букв на 200, не учитывая упаковку каждого номера в целое число байт.