МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів
Контакти
Тлумачний словник Авто Автоматизація Архітектура Астрономія Аудит Біологія Будівництво Бухгалтерія Винахідництво Виробництво Військова справа Генетика Географія Геологія Господарство Держава Дім Екологія Економетрика Економіка Електроніка Журналістика та ЗМІ Зв'язок Іноземні мови Інформатика Історія Комп'ютери Креслення Кулінарія Культура Лексикологія Література Логіка Маркетинг Математика Машинобудування Медицина Менеджмент Метали і Зварювання Механіка Мистецтво Музика Населення Освіта Охорона безпеки життя Охорона Праці Педагогіка Політика Право Програмування Промисловість Психологія Радіо Регилия Соціологія Спорт Стандартизація Технології Торгівля Туризм Фізика Фізіологія Філософія Фінанси Хімія Юриспунденкция |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Код ХаффменаСтискаючи файл за алгоритмом Хаффмена, необхідно спочатку прочитати файл цілком і підрахувати, скільки разів зустрічається кожен символ з розширеного набору ASCII. Якщо ми будемо враховувати всі 256 символів, то для нас не буде різниці в стиску текстового і EXE файла. Алгоритм Хаффмена вимагає читати вхідний файл двічі, один раз, вважаючи частоти входження символів, а другий раз, виконуючи безпосереднє кодування. Отже, в основі алгоритму кодування Хаффмена лежить простий принцип: символи заміняються кодовими послідовностями різної довжини. Чим частіше використовується символ, тим коротше відповідна послідовність. Наприклад, для англійського тексту символам e, t, a можна поставити відповідні 3-бітові послідовності, а j, z, q — 8-бітові. В одних варіантах алгоритму Хаффмена використовуються готові кодові таблиці, в інших — кодова таблиця будується на основі статистичного аналізу умісту файла. Застосування коду Хаффмена гарантує можливість декодування. Це важливо, тому що "упаковані" кодові послідовності мають різну довжину, на відміну від звичайних, довжина яких постійна і дорівнює 8 біт на символ. Застосування алгоритму коду Хаффмана полягає в наступному. Літери вихідного алфавіту виписуються в стовпець в порядку зменшення їх ймовірностей. Останні дві літери стовпця об'єднуються в одну - допоміжну літеру, якої приписується сумарна ймовірність. Потім формується наступний стовпець з урахуванням нової літери за принципом зменшення ймовірностей. Процес повторюється і продовжується до тих пір, поки залишиться одна літера з імовірністю, рівною 1. Кодові комбінації можна легко отримати, побудувавши кодове дерево. Вершиною дерева є остання літера, процес розгалуження проводиться з урахуванням отриманої таблиці, рухаючись у зворотному напрямку. Кожному з двох ребер, що беруть участь в об'єднанні, приписується кодовий символ: ребру з більшою ймовірністю - «1», з меншою - «0». Рухаючись від вершини дерева до однієї з літер алфавіту по відповідним ребрах, отримуємо її кодову комбінацію.
Приклад 4.1. Проведемо кодування за методом Хаффмена. Вихідний алфавіт складається з шести літер із заданими ймовірностями. Складемо таблицю.
Ai p(Ai) Допоміжні стовпці
Складемо таблицю кодування.
Ai p(Ai) Допоміжні стовпці
Отриманий код:
Читайте також:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|