Для вычисления объёма изображения в мегабайтах (Мб), нужно определить размер файла, который зависит от количества пикселей, цветовой палитры и формата хранения данных. Обычно простое изображение без компрессии хранится так:
Количество пикселей: X * Y
Количество бит на один пиксель, если используется N цветов:
Формула: бит на пиксель = log2(N) (округляем вверх, если результат не целое)
Общее число бит: (X * Y) * log2(N)
Переводим биты в байты: делим на 8
Получаем размер файла в байтах, затем переводим в мегабайты: делим на 1024^2 (или 1024*1024)
Пошаговое решение:
- Ввод данных X, Y, N
- Вычисление bits_per_pixel = логарифм по основанию 2 от N
- Общий размер в битах: total_bits = X * Y * bits_per_pixel
- Размер в байтах: total_bytes = total_bits / 8
- Размер в Мб: total_MB = total_bytes / (1024 * 1024)
- Вывести целую часть (отбросить дробную часть)
Код:
import math
X = int(input())
Y = int(input())
N = int(input())
# Вычисляем биты на пиксель
bits_per_pixel = math.ceil(math.log2(N))
# Общий размер в битах
total_bits = X * Y * bits_per_pixel
# Размер в байтах
total_bytes = total_bits / 8
# Размер в мегабайтах
total_MB = total_bytes / (1024 * 1024)
# Выводим целую часть
print(int(total_MB))
Это решение даёт приблизительный размер файла без сжатия и в точных условиях.