Задание:
В базе данных хранятся записи, содержащие информацию о датах. Каждая запись содержит три поля: год (число от 1 до 2100), номер месяца (число от 1 до 12) и номер дня в месяце (число от 1 до 31). Каждое поле записывается отдельно от других полей с помощью минимально возможного числа бит. Определите минимальное количество бит, необходимых для кодирования одной записи.
Решение:
N1 = 2100 - мощность алфавита года
N2 = 12 - мощность алфавита месяца
N3 = 31 - мощность алфавита дня
Найти: V (Объем одной записи в битах)
* V = i1 + i2 + i3
* N1 = 2i1
2100 = 2i1
11 < i1 < 12, берем в большую сторону, i = 12.
* N2 = 2i2
12 = 2i2
3 < i2 < 4, берем в большую сторону, i = 4.
* N3 = 2i3
31 = 2i3
4 < i3 < 5, берем в большую сторону, i = 5.
* V = i1 + i2 + i3 = 12 + 4 + 5 = 21
Ответ: 21