Внимание! Студландия не продает дипломы, аттестаты и иные документы об образовании. Наши специалисты оказывают услуги консультирования в области образования: в сборе информации, ее обработке, структурировании и оформления в соответствии с ГОСТом. Все услуги на сайте предоставляются исключительно в рамках законодательства РФ.

Лабораторная работа: Алгоритм Хаффмана

  • 17.03.2024
  • Дата сдачи: 26.03.2024
  • Статус: Архив
  • Детали заказа: # 164393

Тема: Алгоритм Хаффмана

Задание:
Нужно реализовать алгоритм Хаффмана на python с разными мощностями.
Описания алгоритма:
На вход с клавиатуры должен подаваться текст(и русские буквы и латиница а также все знаки препинания и пробелы должны быть учтены).
После этого с клавиатуры должна задаваться "мощность алфавита" или же "кодовый алфавит" - на выбор 2 или 3.
Далее в этом тексте нужно определить вероятности появления всех символов и записать их в таблицу, отсортировав в порядке убывания вероятностей.
После этого реализуем алгоритм Хаффмана следующим образом:
Для выбранной мощности - 2:
Шаг 1: Объединяем 2 символа с наименьшими вероятностями. Символу с большей вероятностью приписываем цифру 1, символу с меньшей вероятностью приписываем цифру 0 в качестве элементов их кодов.
Шаг 2: Считаем объединения символов за один символ с вероятностью, равной сумме вероятностей объединения символов.
Шаг 3: Возвращаемся на шаг 1 до тех пор, пока все символы не будут объединены в один с вероятностью, равной единице.
Шаг 4: После этого строим таблицу соответствия символа и кодового слова. Берём символ, и присваиваем ему кодовое значение. Его кодовым значением будет являться набор цифр, присвоенных этому символу на шаге 1, в порядке убывания.
Для выбранной мощности - 3:
Шаг 1: Объединяем 3 символа с наименьшими вероятностями. Символу с большей вероятностью приписываем цифру 2, символу с меньшей вероятностью приписываем цифру 0, оставшемуся символу присваиваем цифру 1, в качестве элементов их кодов.
Шаг 2: Считаем объединения символов за один символ с вероятностью, равной сумме вероятностей объединения символов.
Шаг 3: Возвращаемся на шаг 1 до тех пор, пока все символы не будут объединены в один с вероятностью, равной единице.
Шаг 4: Если в конце остаются 2 символа вместо трёх, то мы объединяем их, символу с большей вероятностью присваиваем цифру 2, символу с меньшей вероятностью присваиваем цифру один
Шаг 5: После этого строим таблицу соответствия символа и кодового слова. Берём символ, и присваиваем ему кодовое значение. Его кодовым значением будет являться набор цифр, присвоенных этому символу на шаге 1, в порядке убывания.
5) После этого выводим на экран таблицу соответствия символа и кодового слова а также закодированное предложение.
Программа должна решать общие случаи а не частные(любой текст и любой язык(кириллица, латиница)). Допустимо приводить символы к одному регистру.
  • Тип: Лабораторная работа
  • Предмет: Источники и кодирование информации, программирование
  • Объем: 1-1 стр.

Можем рассчитать стоимость такой же или похожей работы за 2 минуты

Примеры выполненных работ
103 972 студента обратились к нам за прошлый год
22 оценок
среднее 4.9 из 5