Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Поиск повторяющихся значени и их обратная роспись


Автор: chiffa 12.4.2010, 13:27
Всем добрый день. Есть следующая задача: имеем строку (массив) с повторяющимися симвовали, допустим: "rwtwwqowqtirwqoweuoewwywtrwtwutwrrwtwpiirwtwpiypooiwirwqoirwtwuuppwqtppiwwtwiewwyppw". Цель "красивее" записать эту строку, что то вроде:
[r] => 8 [w] => 27 [t] => 10 [q] => 5 [o] => 6 [i] => 9 [e] => 3 [u] => 4 [y] => 3 [p] => 9

то есть сколько раз какой символ повторяется. Это сделать не проблема, проблема возникает в "обратной перегонки", 
из  [r] => 8 [w] => 27 [t] => 10 [q] => 5 [o] => 6 [i] => 9 [e] => 3 [u] => 4 [y] => 3 [p] => 9 собрать строку "rwtwwqowqtirwqoweuoewwywtrwtwutwrrwtwpiirwtwpiypooiwirwqoirwtwuuppwqtppiwwtwiewwyppw". Проблема в том что неизвестно порядок символов. 

Может у кого то будут идеи как сие можно реализовать? Заранее всем спасибо.

Автор: azesmcar 12.4.2010, 13:38
http://www.google.mu/search?hl=en&client=firefox-a&hs=4ww&rls=org.mozilla%3Aen-US%3Aofficial&q=%D1%81%D0%B6%D0%B0%D1%82%D0%B8%D0%B5+%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0+%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC&meta=&aq=f&aqi=&aql=&oq=&gs_rfai=

Автор: Akina 12.4.2010, 14:57
Цитата(chiffa @  12.4.2010,  14:27 Найти цитируемый пост)
Проблема в том что неизвестно порядок символов

Его надо сохранить. Если не изменять остальное в этом алгоритме.

Автор: chiffa 12.4.2010, 15:59
azesmcar, спасибо. 

Возник вопрос по алгоритму Хаффмана. С кодирование вроде как все понятно: построил деверо, все норм. А вот как расшифровать по данному алгоритму непонятно, может кто подскажет на примере дерева:
 
           6
         /   \
        3    Б:3
      /  \
    в:1  а:2

как из этого собрать строку?....

Добавлено через 6 минут и 52 секунды
Akina, а как его сохранить?...

Автор: nworm 12.4.2010, 16:16
из [r] => 8 [w] => 27 [t] => 10 [q] => 5 [o] => 6 [i] => 9 [e] => 3 [u] => 4 [y] => 3 [p] => 9 строку "rwtwwqowqtirwqoweuoewwywtrwtwutwrrwtwpiirwtwpiypooiwirwqoirwtwuuppwqtppiwwtwiewwyppw"
не собрать, информация о порядке утеряна...

Автор: chiffa 12.4.2010, 16:23
А по алгоритму Хаффмана?

Автор: azesmcar 12.4.2010, 16:30
вот детальное описание алгоритма Хаффмана, там еще есть реализация на паскале.
http://algolist.manual.ru/compress/standard/huffman.php
вот еще реализации на Си
http://compression.ru/download/huff.html#src_c

Автор: chiffa 12.4.2010, 16:39
я как раз по этому http://algolist.manual.ru/compress/standard/huffman.php и читал. Не поможешь разобраться с дешифрованием?...

Автор: azesmcar 12.4.2010, 16:42
посмотри исходники, есть полно готовых решений.

Автор: esperanto 22.4.2010, 21:42
Цитата(nworm @ 12.4.2010,  16:16)
из [r] => 8 [w] => 27 [t] => 10 [q] => 5 [o] => 6 [i] => 9 [e] => 3 [u] => 4 [y] => 3 [p] => 9 строку "rwtwwqowqtirwqoweuoewwywtrwtwutwrrwtwpiirwtwpiypooiwirwqoirwtwuuppwqtppiwwtwiewwyppw"
не собрать, информация о порядке утеряна...

+1

Осталось чтобы, вас услышал спрашивающий

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)