Size: a a a

2020 October 27

NZ

Nazar Zakap in pro.algorithms
Я в else ещё прописал код который выводит содержимое nextmatch и выводило несколько символов
источник

ВВ

Вадим Великодный... in pro.algorithms
Ну, раз работает, попробуем разобраться. :)
источник

NZ

Nazar Zakap in pro.algorithms
Размер этой строки может быть разным, 3, 5, 9 - кол-во символов в ней
источник

ВВ

Вадим Великодный... in pro.algorithms
В общем, тут такая ситуация.
Незнакомый код встречается тогда, когда кодировщик только что добавил его и встретил снова. В противном случае код будет знакомым, так как декодер реконструирует словарь по мере декодирования. А раз он встретил его снова, то этот код встречается два раза подряд и следующей буквой будет первая буква этого же кода.
источник

NZ

Nazar Zakap in pro.algorithms
Как то не вяжется
источник

NZ

Nazar Zakap in pro.algorithms
Встретил он к примеру код пробел234(пробел в смысле символ а не слово). Этого кода нету в таблице.
источник

NZ

Nazar Zakap in pro.algorithms
Так как нету такого кода мы пишем пробел234пробел и записываем этот код в файл
источник

I

Islambek in pro.algorithms
Кто проходил курс на степике по теор.информатике от Шеня? Как оцените?
источник

ВВ

Вадим Великодный... in pro.algorithms
@bestofworst Попробуйте позапускать и проверьте. А то я мог и ошибиться. Я с LZW последний раз дело имел лет восемь назад, и, конечно, всё забыл кроме общей идеи. :)
источник

ВВ

Вадим Великодный... in pro.algorithms
Мне с телефона, к сожалению, запустить не выйдет, там работа с файлами, и чтоб в онлайн-IDE это проверить, надо дополнительно код писать, что не особо удобно.
источник

NZ

Nazar Zakap in pro.algorithms
Давайте на примере. Происходит чтение очередного кода из файла. Предыдущий код = 2556. Такого кода в таблице нету значит в nextmatch = 25562. Записали этот код в файл, а в список записали так же  25562
источник

ВВ

Вадим Великодный... in pro.algorithms
Это не так работает. Коды — это просто числа, а символ приклеивается к цепочке. Соответственно, в таблице мы ищем именно число, и по этому индексу достаём цепочку символов.
источник

NZ

Nazar Zakap in pro.algorithms
Символ здесь ни к че
му не приклеивается. В разархивации мы разархивируем не используя таблицу цепочек. Мы получаем сам символ через его кодировку которая есть в системе кодирования
источник

ВВ

Вадим Великодный... in pro.algorithms
В общем, попробуйте руками закодировать ABABABA.
Там как раз происходит наложение цепочек.
Первые два символа кодируются как обычно и в словарь добавляются AB и BA.
А потом две одинаковые цепочки подряд:
..ABA..
....ABA

При кодировании первого ABA он был добавлен в словарь и был записан код для AB.
Кодировщик использовал последнюю букву первого  как начало новой проверки. При кодировании второго ABA он взял из словаря код и записал его.
Но декодер когда прочитал первый AB ещё не успел добавить ABA в словарь. Потому следующий код ему неизвестен. А раз он не успел добавить, то значит это второй раз та же цепочка.
Так как это одинаковые цепочки, и их начало и конец совпадают, то это значит, что неизвестная цепочка — AB + первый символ.
источник

ВВ

Вадим Великодный... in pro.algorithms
Nazar Zakap
Символ здесь ни к че
му не приклеивается. В разархивации мы разархивируем не используя таблицу цепочек. Мы получаем сам символ через его кодировку которая есть в системе кодирования
Мы используем таблицу, просто реконструируем её по ходу декодирования.
источник

NZ

Nazar Zakap in pro.algorithms
Вадим Великодный
Мы используем таблицу, просто реконструируем её по ходу декодирования.
источник

NZ

Nazar Zakap in pro.algorithms
Вот так оно будет
источник

NZ

Nazar Zakap in pro.algorithms
Это при архивации
источник

NZ

Nazar Zakap in pro.algorithms
И при разархивации нужно использовать таблицу цепочек. Из кода символа А получим А, Из кода символа в получим В, из кода 256 получим АВ из кода 258 получим АВА => ABABABA
источник

NZ

Nazar Zakap in pro.algorithms
Так все же почему else так записан ?
источник