![]() |
|
Модераторы: Poseidon |
![]()
|
|
| ROSSKE |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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)) |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 9 Всего: 146 |
а zip не подойдет?
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| ROSSKE |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 30.8.2006 Репутация: нет Всего: нет |
Это как?
|
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 9 Всего: 146 |
алгоритм зипа возьми и жми им данные, в чем програмишь?
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| ROSSKE |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 30.8.2006 Репутация: нет Всего: нет |
в турбо паскале
|
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 9 Всего: 146 |
http://www.zlib.net/
http://www.compression.ru/download/lz.html http://www.sources.ru/pascal/archives/index.htm -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 4 Всего: 484 |
ZIP хорошо для практических целей.
Данный вопрос больше похож на академический, а не практический. |
|||
|
||||
| ROSSKE |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 30.8.2006 Репутация: нет Всего: нет |
так оно и есть. За ссылки спасибо, но я там совсем ничего не понимаю.
У меня получается свернуть только одинаковые символы, или посчитать колличество повторяющихся, а последовательности групп символов, хотя бы двух, уже никак не выходит. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 23 Всего: 459 |
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 4 Всего: 484 |
Да не нужен человеку ни Хаффман, ни ZIP, ни LZMA, BWT и т.п.
У него чётко поставленная задача - есть последовательность - привести её к такому виду. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 23 Всего: 459 |
Хорошо есть тогда такая идея. Состовляется таблица повторений последовательностей. Начинаем с самых длинных с половинной длинны, затем уменьшаем длинну на единицу и сравниваем с соседней последовательностью той же длинны, потом сдвигаемя на один символ вправо и повторяем операцию уже с другой последовательностью той же длинны и так до конца строки. Когда находим повторение, то запускаем рекурсивный поиск в повторяющемся фрагменте. Во время поиска надо обходить уже найденные ранее последовательности.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 4 Всего: 484 |
Там всё гораздо проще - не нужна таблица.
Ищем минимум 2 последовательности, идущие подряд, начиная с длины 1/2 и до 1. То есть - они не просто должны повторяться в строке, а идти именно одна за другой. Нашли - упаковываем. Упаковали - всё заново, но уже по упакованной строке. Перед упаковкой - обязательно проверить, чтобы результат был не длинее исходного. Код писать лениво |
|||
|
||||
| albertn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 1 Всего: 34 |
А все-таки интересно, зачем нужна такая сложность? Для чего может понадобиться такая задача?
Может если знать исходную задачу, можно было-бы найти более подходящее решение? А честно говоря мне такая форма записи кажется глупой. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 4 Всего: 484 |
Говорю же - задача академическая.
Практического смысла не имеет. Человеку дана задача, нужно найти решение. Лето кончилось! Студенты и школьники снова с нами! Чего тут непонятного. Переношу в центр помощи. Модератор: Перенесено из Паскаля |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |