Код Левенштейна — это универсальный код, позволяющий кодировать неотрицательные целые числа. Он был придуман Владимиром Левенштейном.
Код нуля — это «0»; для кодирования положительного числа используется алгоритм:
- Инициализировать счетчик шагов С = 1, K — код числа(изначально пустой).
- Записать двоичный код кодируемого числа без «старшей» 1 (например, число 1100 записать как 100; число 100 — как 00).
- Дописать полученное в начало K.
- Пусть M — количество бит, записанных на втором шаге. Перевести M в двоичный вид.
- Если М не пусто, то С = С + 1, и повторить алгоритм с шага 2 для полученного М. Иначе перейти на шаг 6.
- Записать С штук единиц и 0 в начало кода К (например, если счетчик С = 2, К = 0 011, получить: 110 0 011) — код Левенштейна.
Код Левенштейна для первых 24 чисел будет выглядеть так:
0 0
1 10
2 110 0
3 110 1
4 1110 0 00
5 1110 0 01
6 1110 0 10
7 1110 0 11
8 1110 1 000
9 1110 1 001
10 1110 1 010
11 1110 1 011
12 1110 1 100
13 1110 1 101
14 1110 1 110
15 1110 1 111
16 11110 0 00 0000
17 11110 0 00 0001
18 11110 0 00 0010
19 11110 0 00 0011
20 11110 0 00 0100
21 11110 0 00 0101
22 11110 0 00 0110
23 11110 0 00 0111
24 11110 0 00 1000
Пусть К — код Левенштейна. Для расшифровки кода Левенштейна необходимо:
- Посчитать количество С единичных бит до первого нулевого бита.
- Если С = 0, то закодированное значение — 0. Если нет, перейти на шаг 3.
- Отбросить из К эти С единиц и следующий за ними 0. Записать новое значение К.
- Установить переменную N = 1. Ввести счетчик шагов P = С — 1.
- Если P = 0, то N — искомое число. Если нет, перейти на шаг 6.
- Считать первые N бит из К. Записать новое значение К без считанных N бит.
- К считанной записи добавить 1 в начало (например, считано 00, получено: 100).
- Преобразовать полученное значение в десятичную систему (или исходную, если известно) — новое значение переменной N.
- P = P — 1. Повторить с шага 5.
При кодировании Левенштейна положительное число всегда на 1 бит больше, чем при омега-кодировании Элиаса. Однако, кодом Левенштейна можно закодировать ноль, в то время как при омега-кодировании Элиаса необходимо переобозначать все цифры таким образом, чтобы ноль представлялся единицей.
Ссылки
Источник
Партнерские ресурсы |
---|
Криптовалюты |
|
---|
Магазины |
|
---|
Хостинг |
|
---|
Разное |
- Викиум - Онлайн-тренажер для мозга
- Like Центр - Центр поддержки и развития предпринимательства.
- Gamersbay - лучший магазин по бустингу для World of Warcraft.
- Ноотропы OmniMind N°1 - Усиливает мозговую активность. Повышает мотивацию. Улучшает память.
- Санкт-Петербургская школа телевидения - это федеральная сеть образовательных центров, которая имеет филиалы в 37 городах России.
- Lingualeo.com — интерактивный онлайн-сервис для изучения и практики английского языка в увлекательной игровой форме.
- Junyschool (Джунискул) – международная школа программирования и дизайна для детей и подростков от 5 до 17 лет, где ученики осваивают компьютерную грамотность, развивают алгоритмическое и креативное мышление, изучают основы программирования и компьютерной графики, создают собственные проекты: игры, сайты, программы, приложения, анимации, 3D-модели, монтируют видео.
- Умназия - Интерактивные онлайн-курсы и тренажеры для развития мышления детей 6-13 лет
- SkillBox - это один из лидеров российского рынка онлайн-образования. Среди партнеров Skillbox ведущий разработчик сервисного дизайна AIC, медиа-компания Yoola, первое и самое крупное русскоязычное аналитическое агентство Tagline, онлайн-школа дизайна и иллюстрации Bang! Bang! Education, оператор PR-рынка PACO, студия рисования Draw&Go, агентство performance-маркетинга Ingate, scrum-студия Sibirix, имидж-лаборатория Персона.
- «Нетология» — это университет по подготовке и дополнительному обучению специалистов в области интернет-маркетинга, управления проектами и продуктами, дизайна, Data Science и разработки. В рамках Нетологии студенты получают ценные теоретические знания от лучших экспертов Рунета, выполняют практические задания на отработку полученных навыков, общаются с экспертами и единомышленниками. Познакомиться со всеми продуктами подробнее можно на сайте https://netology.ru, линейка курсов и профессий постоянно обновляется.
- StudyBay Brazil – это онлайн биржа для португалоговорящих студентов и авторов! Студент получает уникальную работу любого уровня сложности и больше свободного времени, в то время как у автора появляется дополнительный заработок и бесценный опыт.
- Автор24 — самая большая в России площадка по написанию учебных работ: контрольные и курсовые работы, дипломы, рефераты, решение задач, отчеты по практике, а так же любой другой вид работы. Сервис сотрудничает с более 70 000 авторов. Более 1 000 000 работ уже выполнено.
- StudyBay – это онлайн биржа для англоязычных студентов и авторов! Студент получает уникальную работу любого уровня сложности и больше свободного времени, в то время как у автора появляется дополнительный заработок и бесценный опыт.
|
---|