Форум программистов, компьютерный форум, киберфорум
Python: Научные вычисления
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.70/40: Рейтинг темы: голосов - 40, средняя оценка - 4.70
103 / 102 / 51
Регистрация: 28.01.2014
Сообщений: 310
1

Получение бинарного кода, Хаффман

12.11.2017, 18:50. Показов 8322. Ответов 1
Метки нет (Все метки)

Доброго времени суток, работаю с алгоритмом Хаффмана(работаю со строкой "Мама мыла лапу ламы")
Так выглядит результат работы алгоритма:
Python
1
2
print(tree)
>>>[[['ы', 'у'], [' ', ['п', 'М']]], ['а', ['л', 'м']]]
Дерево должно развернуться так:
Кликните здесь для просмотра всего текста

Получение бинарного кода, Хаффман



Использую рекурсивную функцию:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def getByteString(arr, byteString):
    for i in range(len(arr)):
        byteString += str(i)
        if type(arr[i]) == str:
            for j in range(len(tbl)):
                if tbl[j][0] == arr[i]:  # tbl - словарь, в котором хранится таблица,
                    tbl[j][1] = byteString # первый столбик - символ, второй для 0 и 1
                    byteString = byteString[0: -1]
                    break
        else:
            getByteString(arr[i], byteString)
 
 
for i in range(len(tree)):
    getByteString(tree[i], str(i))
Разворачивается вот так:
Кликните здесь для просмотра всего текста

Получение бинарного кода, Хаффман



Прошу помочь с решением проблемы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2017, 18:50
Ответы с готовыми решениями:

Как организовать побитовую запись двоичного кода (Хаффман) ?
Пытаюсь реализовать алгоритм Хаффмана, который будет сжимать текстовый файл. Уже построено дерево...

Получение бинарного исхода
Доброго времени суток. Нужно получить корректный исходник бинарного файла, расположенного в...

Получение информации из бинарного файла
Собственно есть такая ситуация. Есть программа DatEdit. Принцип её работы в следующем. Мы...

Из бинарного кода в изображение
Любой выбранный файл разбивает на бинарный код и выводит случайное изображение. Что нибудь подобное...

1
103 / 102 / 51
Регистрация: 28.01.2014
Сообщений: 310
15.11.2017, 17:49  [ТС] 2
Практически своими силами:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def getByteString(arr):
    global byteString
 
    for i in range(len(arr)):
        if len(arr) > 1:
            byteString += str(i)
        if type(arr[i]) == str:
            for j in range(len(tbl)):
                if tbl[j][0] == arr[i]:
                    tbl[j][1] = byteString
                    byteString = byteString[0: -1]
                    break
        else:
            getByteString(arr[i])
    byteString = byteString[0: -1]
 
for i in range(len(tree)):
    byteString = str(i)
    getByteString(tree[i])
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2017, 17:49

Перевод бинарного кода
Имеется строка s="1101000", как можно получить символ этого кода?

Перевод из бинарного кода в текст на C
Всем привет! Кто знает , каким образом сделать что бы программа бинарный код перевоила в буквы, не...

Не корректное исполнение бинарного кода
Добрый день дорогие форумчане. На днях столкнулся с такой проблемой как некорректное открытие...

Преобразование бинарного кода в машинный
Есть строка, содержащая бинарный код (символы входного текста согласно ASCII таблице). Необходимо...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.