Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Упаковка символов, подскажите, как решать 
:(
    Опции темы
ROSSKE
Дата 30.8.2006, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 30.8.2006

Репутация: нет
Всего: нет



Необходимо компактно представиь последовательности прописных символов от A до Z c помощью упаковки повторяющихся подпоследовательностей внутри них. Например, возможный способ представить последовательность AAAAAAAAAABABABCCD - есть 10(A)2(BA)B2©D. Нужно запаковать данную последовательность так, чтобы результирующая запакованная последовательность содержала как можно меньше символов (включая цифры и скобки).

Например:

Ввод1: AAAAAAAAAABABABCCD     Вывод1: 9(A)3(AB)CCD


Ввод2: NERRCYESYESYESNEERCYESYESYES  Вывод2: 2(NEERC3(YES))


PM MAIL   Вверх
Romikgy
Дата 30.8.2006, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 9
Всего: 146



а zip не подойдет?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ROSSKE
Дата 30.8.2006, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 30.8.2006

Репутация: нет
Всего: нет



Это как?
PM MAIL   Вверх
Romikgy
Дата 30.8.2006, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 9
Всего: 146



алгоритм зипа возьми и жми им данные, в чем програмишь?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ROSSKE
Дата 30.8.2006, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 30.8.2006

Репутация: нет
Всего: нет



в турбо паскале
PM MAIL   Вверх
Romikgy
Дата 30.8.2006, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 9
Всего: 146





--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Snowy
Дата 30.8.2006, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 4
Всего: 484



ZIP хорошо для практических целей.
Данный вопрос больше похож на академический, а не практический.
PM MAIL   Вверх
ROSSKE
Дата 30.8.2006, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 30.8.2006

Репутация: нет
Всего: нет



так оно и есть. За ссылки спасибо, но я там совсем ничего не понимаю. 
У меня получается свернуть только одинаковые символы, или посчитать колличество повторяющихся, а последовательности групп символов, хотя бы двух, уже никак не выходит.
PM MAIL   Вверх
Alexeis
Дата 30.8.2006, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 23
Всего: 459



А вот готовый Хаффман на паскале.
http://www.compression.ru/download/sources/huff/archaf.rar


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Snowy
Дата 30.8.2006, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 4
Всего: 484



Да не нужен человеку ни Хаффман, ни ZIP, ни LZMA, BWT и т.п.
У него чётко поставленная задача - есть последовательность - привести её к такому виду.
PM MAIL   Вверх
Alexeis
Дата 30.8.2006, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 23
Всего: 459



Хорошо есть тогда такая идея. Состовляется таблица повторений последовательностей. Начинаем с самых длинных с половинной длинны, затем уменьшаем длинну на единицу и сравниваем с соседней последовательностью той же длинны, потом сдвигаемя на один символ вправо и повторяем операцию уже с другой последовательностью той же длинны и так до конца строки. Когда находим повторение, то запускаем рекурсивный поиск в повторяющемся фрагменте. Во время поиска надо обходить уже найденные ранее последовательности.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Snowy
Дата 30.8.2006, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 4
Всего: 484



Там всё гораздо проще - не нужна таблица.
Ищем минимум 2 последовательности, идущие подряд, начиная с длины 1/2 и до 1.
То есть - они не просто должны повторяться в строке, а идти именно одна за другой.
Нашли - упаковываем.
Упаковали - всё заново, но уже по упакованной строке.
Перед упаковкой - обязательно проверить, чтобы результат был не длинее исходного.
Код писать лениво smile
PM MAIL   Вверх
albertn
Дата 31.8.2006, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 368
Регистрация: 17.7.2006
Где: г. Ставрополь

Репутация: 1
Всего: 34



А все-таки интересно, зачем нужна такая сложность? Для чего может понадобиться такая задача?
Может если знать исходную задачу, можно было-бы найти более подходящее решение?
А честно говоря мне такая форма записи кажется глупой.
PM WWW ICQ   Вверх
Snowy
Дата 31.8.2006, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 4
Всего: 484



Говорю же - задача академическая.
Практического смысла не имеет.
Человеку дана задача, нужно найти решение.
Лето кончилось! Студенты и школьники снова с нами!
Чего тут непонятного.
Переношу в центр помощи.

Модератор: Перенесено из Паскаля
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0589 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.