Привет! Давай разбираться.
Чтобы решить эту задачу, надо понять, как рассчитывается размер звукового файла: это произведение количества каналов на частоту дискретизации, битовое разрешение (в байтах, так как 1 байт = 8 бит) и времени записи в секундах. Плюс надо добавить размер служебной информации, который в обоих файлах одинаков.
Сначала посмотрим на файл в стерео формате:
В стерео-файле (2 канала) с частотой дискретизации 32 кГц (32000 Гц) и 32-битным разрешением (что равняется 4 байтам, так как 32 бита / 8 = 4 байта), размер файла составил 42 Мбайта. Если обозначить время фрагмента как T, а размер служебной информации как X, мы получим уравнение:
42 * 2^20 = 2 * 32000 * 4 * T + X
Теперь файл в моно формате:
В моно-файле (1 канал) с частотой дискретизации 16 кГц (16000 Гц) и 16-битным разрешением (что равняется 2 байтам), размер файла составил 7 Мбайта. Тогда второе уравнение будет выглядеть так:
7 * 2^20 = 1 * 16000 * 2 * T + X
Чтобы решить эту систему уравнений, нужно исключить T. Заметим, что если умножить все части второго уравнения на 8, мы получим почти те же коэффициенты перед T, как в первом уравнении:
56 * 2^20 = 2 * 32000 * 4 * T + 8X
Теперь мы можем вычесть из этого уравнения первое:
(56 - 42) * 2^20 = (2 * 32000 * 4 * T + 8X) - (2 * 32000 * 4 * T + X) 14 * 2^20 = 7X
Отсюда найдем X:
X = 14 * 2^20 / 7 X = 2 * 2^20 X = 2 Мбайт
То есть размер служебной информации — 2 Мбайт, а не 7, как ты предположил. Твоя ошибка заключалась в том, что ты, скорее всего, просто взял размер второго файла, не учтя иную частоту дискретизации и разрешение, а также одноканальную запись.
Надеюсь, теперь понятно, как надо было решать задачу. Оцени мой ответ лайком или дизлайком! Если что-то ещё непонятно – спрашивай.
