Задача: для изображения 64×64 пикселя выделено 512 бит памяти. Какое максимальное число цветов в палитре можно иметь?
Пошаговое решение:
- Число пикселей: 64 × 64 = 4096.
- Биты на пиксель: 512 бит / 4096 пикселей = 0.125 бит на пиксель.
- Если используется палитра из C цветов, то для индекса каждого пикселя требуется не менее ceil(log2 C) бит.
- Требование: 4096 пикселей × ceil(log2 C) ≤ 512 бит ⇒ ceil(log2 C) ≤ 512/4096 = 0.125.
- Так как ceil(log2 C) — целое неотрицательное число, единственное допускаемое значение — 0.
- Значит: log2 C ≤ 0 ⇒ C ≤ 1. Поскольку палитра не может иметь нулевой размер, получаем C = 1.
Ответ: максимальное количество цветов в палитре — 1 (из-за ограниченной памяти изображение будет одноколорное).
Примечание: если бы требовалось хотя бы 1 бит на пиксель, то для 4096 пикселей потребовалось бы 4096 бит, что намного больше 512 бит.