Префиксный код
Пре́фиксный код в теории кодирования — код со словом переменной длины, имеющий такое свойство (выполнение условия Фано): если в код входит слово a, то для любой непустой строки b слова ab в коде не существует. Хотя префиксный код состоит из слов разной длины, эти слова можно записывать без разделительного символа.
Например, код, состоящий из слов 0, 10 и 11, является префиксным, и сообщение 01001101110 можно разбить на слова единственным образом:
0 10 0 11 0 11 10
Код, состоящий из слов 0, 10, 11 и 100, префиксным не является, и то же сообщение можно трактовать несколькими способами.
0 10 0 11 0 11 10 0 100 11 0 11 10
Определение
Префиксы могут быть получены путём последовательного отбрасывания последнего знака кодовой комбинации.
Например, для кодовой комбинации 11101101 префиксами будут 11101101, 1110110, 111011, 11101, 1110, 111, 11, 1.
Либо так:
Пишем все комбинации кодов, без нулей спереди: 0//префикс //1 //10<- комментируем (исключаем) те, которые являются началом других //11 100//префикс 101//незакомментированные коды - префиксы префиксного кода. 110 111 ... //пусть это будут все трехбитные комбинации.
Полученная последовательность кодов (0, 100, 101, 110, 111) — эквивалентна последовательности префиксного кода Хаффмана.
Если промежутков или других знаков препинания между кодовыми комбинациями нет, то для однозначного декодирования комбинации 111011101 ни одна из кодовых комбинаций не может быть представлена перечисленными вариантами (префиксами). Код называется префиксным, если ни одна из его комбинаций не является префиксом другой комбинации того же кода. Часть кодовой комбинации, которая дополняет префикс до самой комбинации, называется суффиксом. Префиксные коды наглядно могут быть представлены с помощью кодовых деревьев. Если ни один узел кодового дерева не является вершиной данного кода, то он обладает свойствами префикса. Узлы дерева, которые не соединяются с другими, называются конечными. Комбинации, которые им соответствуют, являются кодовыми комбинациями префиксного кода.
Примеры
Любой код со словом фиксированной длины, очевидно, является префиксным. Рассмотрим несколько нетривиальных примеров.
- Телефонные коды стран.
- Телефонные номера в стационарных сетях.
- UTF-8.
- Код Хаффмана, применяемый для сжатия данных.
- Синтаксис Паскаля и других языков с LL(1)-синтаксисом (если считать символом лексему, а словом — оператор). Поэтому для определения типа оператора транслятору Паскаля не приходится возвращать считанные символы в поток либо запоминать их в стеке.
Код Морзе не является префиксным. В него, кроме точки и тире, входит также символ-разделитель — пауза длиной в тире.
См. также
- Неравенство Крафта — Макмиллана
В статье не хватает ссылок на источники (см. рекомендации по поиску). |
Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Префиксный код, Что такое Префиксный код? Что означает Префиксный код?
Pre fiksnyj kod v teorii kodirovaniya kod so slovom peremennoj dliny imeyushij takoe svojstvo vypolnenie usloviya Fano esli v kod vhodit slovo a to dlya lyuboj nepustoj stroki b slova ab v kode ne sushestvuet Hotya prefiksnyj kod sostoit iz slov raznoj dliny eti slova mozhno zapisyvat bez razdelitelnogo simvola Naprimer kod sostoyashij iz slov 0 10 i 11 yavlyaetsya prefiksnym i soobshenie 01001101110 mozhno razbit na slova edinstvennym obrazom 0 10 0 11 0 11 10 Kod sostoyashij iz slov 0 10 11 i 100 prefiksnym ne yavlyaetsya i to zhe soobshenie mozhno traktovat neskolkimi sposobami 0 10 0 11 0 11 10 0 100 11 0 11 10OpredeleniePrefiksy mogut byt polucheny putyom posledovatelnogo otbrasyvaniya poslednego znaka kodovoj kombinacii Naprimer dlya kodovoj kombinacii 11101101 prefiksami budut 11101101 1110110 111011 11101 1110 111 11 1 Libo tak Pishem vse kombinacii kodov bez nulej speredi 0 prefiks 1 10 lt kommentiruem isklyuchaem te kotorye yavlyayutsya nachalom drugih 11 100 prefiks 101 nezakommentirovannye kody prefiksy prefiksnogo koda 110 111 pust eto budut vse trehbitnye kombinacii Poluchennaya posledovatelnost kodov 0 100 101 110 111 ekvivalentna posledovatelnosti prefiksnogo koda Haffmana Esli promezhutkov ili drugih znakov prepinaniya mezhdu kodovymi kombinaciyami net to dlya odnoznachnogo dekodirovaniya kombinacii 111011101 ni odna iz kodovyh kombinacij ne mozhet byt predstavlena perechislennymi variantami prefiksami Kod nazyvaetsya prefiksnym esli ni odna iz ego kombinacij ne yavlyaetsya prefiksom drugoj kombinacii togo zhe koda Chast kodovoj kombinacii kotoraya dopolnyaet prefiks do samoj kombinacii nazyvaetsya suffiksom Prefiksnye kody naglyadno mogut byt predstavleny s pomoshyu kodovyh derevev Esli ni odin uzel kodovogo dereva ne yavlyaetsya vershinoj dannogo koda to on obladaet svojstvami prefiksa Uzly dereva kotorye ne soedinyayutsya s drugimi nazyvayutsya konechnymi Kombinacii kotorye im sootvetstvuyut yavlyayutsya kodovymi kombinaciyami prefiksnogo koda PrimeryLyuboj kod so slovom fiksirovannoj dliny ochevidno yavlyaetsya prefiksnym Rassmotrim neskolko netrivialnyh primerov Telefonnye kody stran Telefonnye nomera v stacionarnyh setyah UTF 8 Kod Haffmana primenyaemyj dlya szhatiya dannyh Sintaksis Paskalya i drugih yazykov s LL 1 sintaksisom esli schitat simvolom leksemu a slovom operator Poetomu dlya opredeleniya tipa operatora translyatoru Paskalya ne prihoditsya vozvrashat schitannye simvoly v potok libo zapominat ih v steke Kod Morze ne yavlyaetsya prefiksnym V nego krome tochki i tire vhodit takzhe simvol razdelitel pauza dlinoj v tire Sm takzheNeravenstvo Krafta MakmillanaV state ne hvataet ssylok na istochniki sm rekomendacii po poisku Informaciya dolzhna byt proveryaema inache ona mozhet byt udalena Vy mozhete otredaktirovat statyu dobaviv ssylki na avtoritetnye istochniki v vide snosok 9 iyulya 2021
