Решение: Мощность алфавита серийных номеров
На предприятии каждой изготовленной детали присваивают серийный номер, состоящий из 212 символов. В базе данных для хранения каждого серийного номера отведено одинаковое и минимально возможное целое число байт. При этом используется посимвольное кодирование серийных номеров, все символы кодируются одинаковым и минимально возможным числом бит. Известно, что для хранения 15 476 350 серийных номеров отведено не более 6 Гбайт памяти. Определите максимально возможную мощность алфавита, используемого для записи серийных номеров.
Решение по шагам
4 шагаОпределим максимально допустимый размер одного серийного номера в байтах:
$$\left\lfloor\dfrac{6 \cdot 2^{30}}{15\,476\,350}\right\rfloor = 416$$Пусть один символ кодируется $b$ битами. Тогда номер из 212 символов занимает:
$$\left\lceil\dfrac{212b}{8}\right\rceil$$Проверим возможное число бит на символ. При $b=15$ размер номера равен $\left\lceil\dfrac{212 \cdot 15}{8}\right\rceil = 398$ байт, что допустимо. При $b=16$ размер равен $\left\lceil\dfrac{212 \cdot 16}{8}\right\rceil = 424$ байта, что превышает ограничение.
Следовательно, максимально возможная мощность алфавита равна:
$$2^{15} = 32768$$Где здесь ошибаются
Забывают округлить размер одного номера вверх до целого числа байт.
Используют 6 Гбайт как $6 \cdot 10^9$ байт вместо $6 \cdot 2^{30}$ байт.
Берут число бит на символ равным числу байт на символ.