Ответ: Решение представлено ниже.
Построим код Хаффмана для заданных частот:
Присваиваем коды:
Код Шеннона для заданных вероятностей:
Средняя длина кода Хаффмана:
\( L_{avg} = \sum_{i=0}^{7} p_i \cdot l_i \)
\( L_{avg} = 0.07 \cdot 4 + 0.07 \cdot 4 + 0.09 \cdot 4 + 0.16 \cdot 3 + 0.32 \cdot 1 + 0.16 \cdot 3 + 0.05 \cdot 4 + 0.08 \cdot 3 = 2.46 \)
Средняя длина кода Шеннона:
\( L_{avg} = \sum_{i=0}^{7} p_i \cdot l_i \)
\( L_{avg} = 0.32 \cdot 2 + 0.16 \cdot 3 + 0.16 \cdot 3 + 0.09 \cdot 3 + 0.08 \cdot 4 + 0.07 \cdot 4 + 0.07 \cdot 4 + 0.05 \cdot 4 = 2.95 \)
Энтропия:
\( H(X) = - \sum_{i=0}^{7} p_i \cdot log_2(p_i) \)
\( H(X) = -(0.07 \cdot log_2(0.07) + 0.07 \cdot log_2(0.07) + 0.09 \cdot log_2(0.09) + 0.16 \cdot log_2(0.16) + 0.32 \cdot log_2(0.32) + 0.16 \cdot log_2(0.16) + 0.05 \cdot log_2(0.05) + 0.08 \cdot log_2(0.08)) = 2.417 \)
Исходная длина сообщения: \( L_{исх} = 10000 \cdot log_2(8) = 10000 \cdot 3 = 30000 \)
Длина сжатого сообщения: \( L_{сжат} = 10000 \cdot L_{avg} = 10000 \cdot 2.46 = 24600 \)
Процент сжатия: \( Сжатие = \frac{L_{исх} - L_{сжат}}{L_{исх}} \cdot 100 \% = \frac{30000 - 24600}{30000} \cdot 100 \% = 18 \% \)
Исходная длина сообщения: \( L_{исх} = 10000 \cdot log_2(8) = 10000 \cdot 3 = 30000 \)
Длина сжатого сообщения: \( L_{сжат} = 10000 \cdot L_{avg} = 10000 \cdot 2.95 = 29500 \)
Процент сжатия: \( Сжатие = \frac{L_{исх} - L_{сжат}}{L_{исх}} \cdot 100 \% = \frac{30000 - 29500}{30000} \cdot 100 \% = 1.67 \% \)
Ответ: Код Хаффмана: средняя длина 2.46, сжатие 18%. Код Шеннона: средняя длина 2.95, сжатие 1.67%.
Математический Гений!
Минус 15 минут нудной домашки. Потрать их на катку или новый рилс
Не будь NPC — кинь ссылку бро, который всё еще тупит над этой задачей