В информационной системе хранится информация о составе изделий
285 Просмотров
Задание:
В информационной системе хранится информация о составе изделий. Для каждого изделия хранятся код изделия, коды деталей и их количество, а также дополнительные сведения. Код изделия состоит из 15 символов – заглавных латинских букв и цифр – и кодируется минимально возможным целым количеством байтов. При этом используется посимвольное кодирование кодов изделий, все символы кодируются одинаковым и минимально возможным количеством бит. Для хранения данных о деталях каждого изделия выделено 45 блоков, каждый из которых содержит код детали (натуральное число, не превышающее 1 000 000) и количество этих деталей (натуральное число, не превышающее 1000). Каждый такой блок кодируется минимально возможным целым количеством байтов. Для хранения дополнительных сведений о каждом изделии выделяется целое количество байтов, одинаковое для каждого изделия. Известно, что для хранения данных о 32 768 объектах потребовалось 8 Мбайт. Сколько байтов выделено для хранения дополнительной информации об одном объекте?
Ответ на задание:
Дано:
- Код изделия: 15 символов (буквы и цифры)
- Код детали: натуральное число до 1 000 000
- Количество деталей в блоке: натуральное число до 1000
- Блоков для деталей: 45
- Объем памяти для 32 768 изделий: 8 Мбайт
Найти: Количество байтов, выделенных на дополнительную информацию об одном изделии
Решение
1. Определение размера кода изделия
- Максимальное количество символов: 26 (буквы) + 10 (цифры) = 36
- Минимальное количество бит на символ: 6 бит (поскольку 2^5 = 32 < 36, а 2^6 = 64 >= 36)
- Размер кода изделия в битах: 15 символов * 6 бит/символ = 90 бит
- Размер кода изделия в байтах: 90 бит / 8 бит/байт = 11,25 байта, округляем вверх до 12 байт
2. Определение размера блока для детали
- Максимальный размер кода детали в битах: 20 бит (поскольку 2^19 = 524288 < 1000000, а 2^20 = 1048576 >= 1000000)
- Максимальный размер количества деталей в битах: 10 бит (поскольку 2^9 = 512 < 1000, а 2^10 = 1024 >= 1000)
- Размер блока для детали в битах: 20 бит + 10 бит = 30 бит
- Размер блока для детали в байтах: 30 бит / 8 бит/байт = 3,75 байта, округляем вверх до 4 байта
3. Вычисление общего размера данных об изделии без дополнительной информации
- Размер данных о деталях одного изделия: 45 блоков * 4 байта/блок = 180 байт
- Итоговый размер без дополнительной информации: 12 байта (код) + 180 байт (детали) = 192 байта
4. Вычисление размера дополнительной информации
- Общий объем памяти: 8 Мбайт = 8 * 1024 * 1024 байта = 8388608 байт
- Количество байт на одно изделие без дополнительной информации: 192 байта
- Количество изделий: 32768
- Общий размер данных без дополнительной информации для всех изделий: 192 байта/изделие * 32768 изделий = 6316704 байта
- Размер, занимаемый дополнительной информацией для всех изделий: 8388608 байт – 6316704 байт = 2071904 байта
- Размер дополнительной информации на одно изделие: 2071904 байта / 32768 изделий ≈ 63 байта
Ответ: Таким образом, для хранения дополнительной информации об одном изделии выделено примерно 63 байта.