Задача Задача №3605305
А
А
Задача требует определить максимальное количество цветов в палитре, если цвет каждого пикселя кодируется одинаковым количеством бит и данные записываются подряд без промежутков. Размер изображения 1660 × 4048 пикселей, память под данные не превышает 13 Мбайт (без заголовка файла).
Пошаговое решение:
- Найдем общее число пикселей
- N = 1660 × 4048 = 6 719 680 пикселей.
- Переведем ограничение памяти в биты
- 13 Мбайт = 13 × 2^20 байт = 13 631 488 байт.
- В биты: 13 631 488 байт × 8 = 109 051 904 бит.
- Определим максимальное количество бит на пиксель (b)
- Всего бит можно использовать: N × b ≤ 109 051 904.
- b ≤ floor(109 051 904 / 6 719 680) = floor(16.23…) = 16.
- Максимальное количество цветов в палитре
- Так как код пикселей занимает b бит, количество доступных цветов равно 2^b.
- При b = 16: max colors = 2^16 = 65 536.
Проверка:
- При b = 16 пикселей занимают 6 719 680 × 16 = 107 514 880 бит = 13 439 360 байт, что меньше 13 631 488 байт — подходит.
- При b = 17 бит: 6 719 680 × 17 = 114 234 560 бит > 109 051 904 бит — не помещается.
Ответ: максимальное количество цветов в палитре — 65 536.