Негафибоначчи кодирование

В математике негафибоначчиевое кодирование — это универсальный код , который кодирует ненулевые целые числа в двоичные кодовые слова . Оно похоже на кодирование Фибоначчи , за исключением того, что позволяет представлять как положительные, так и отрицательные целые числа. Все коды заканчиваются на «11» и не имеют «11» перед концом.

Метод кодирования

Следующие шаги описывают, как закодировать ненулевое целое число . Обратите внимание, что обозначает последовательность Негафибоначчи. х {\displaystyle x} ф {\displaystyle f}

  1. Если положительно, вычислите наибольшее нечетное отрицательное целое число , такое что сумма нечетных отрицательных членов последовательности Негафибоначчи от -1 до с шагом -2 была больше или равна : Если отрицательно, вычислите наибольшее четное отрицательное целое число , такое что сумма четных отрицательных членов последовательности Негафибоначчи от 0 до с шагом -2 была меньше или равна : х {\displaystyle x} н {\displaystyle n} н {\displaystyle n} х {\displaystyle x}
    н { ( 2 к + 1 ) , к [ 0 , [ } , я = 1 , я о г г н 2 ф ( я ) < х я = 1 , я о г г н ф ( я ) . {\displaystyle n\in \{-\left(2k+1\right),k\in [0,\infty [\},\quad \sum _{i=-1,\;i\;нечет}^{n-2}f(i)<x\leq \sum _{i=-1,\;i\;нечет}^{n}f(i).}
    х {\displaystyle x} н {\displaystyle n} н {\displaystyle n} х {\displaystyle x}
    н { 2 к , к [ 2 , [ } , я = 2 , я е в е н н 2 ф ( я ) > х я = 2 , я е в е н н ф ( я ) {\displaystyle n\in \{-2k,k\in [2,\infty [\},\quad \sum _{i=-2,\;i\;четно}^{n-2}f(i)>x\geq \sum _{i=-2,\;i\;четно}^{n}f(i)}
  2. Добавьте 1 к биту двоичного слова. Вычтите из . | н | й {\displaystyle |n|^{\text{й}}} ф ( н ) {\displaystyle f(n)} х {\displaystyle x}
  3. Повторите процесс с шага 1 с новым значением x , пока оно не достигнет 0.
  4. Добавьте 1 слева от полученного двоичного слова, чтобы завершить кодирование.

Чтобы расшифровать закодированное двоичное слово, удалите самую левую 1 из двоичного слова, так как она используется только для обозначения конца закодированного числа. Затем присвойте оставшимся битам значения последовательности Негафибоначчи от -1 (1, −1, 2, −3, 5, −8, 13...) и просуммируйте все значения, связанные с 1.

Представление Негафибоначчи

Кодирование негафибоначчи тесно связано с представлением негафибоначчи , позиционной системой счисления, иногда используемой математиками. Код негафибоначчи для конкретного ненулевого целого числа в точности соответствует представлению негафибоначчи этого целого числа, за исключением того, что порядок его цифр изменен на противоположный и в конце добавлена ​​дополнительная «1». Код негафибоначчи для всех отрицательных чисел имеет нечетное количество цифр, в то время как для всех положительных чисел — четное количество цифр.

Стол

Код для целых чисел от −11 до 11 приведен ниже.

ЧислоПредставление НегафибоначчиКод Негафибоначчи
−111010000001011
−101010011001011
−91000100100011
−81000000000011
−71000011000011
−61001000010011
−51001011010011
−4101001011
−3100000011
−2100110011
−110011
00(не может быть закодировано)
1111
21000011
31011011
410010010011
510000000011
610001100011
710100001011
810101101011
9100101001010011
10100100000010011
11100100110010011

Смотрите также

Ссылки

Цитируемые работы

  • Кнут, Дональд (2008). Числа Негафибоначчи и гиперболическая плоскость . Ежегодное собрание Математической ассоциации Америки. Сан-Хосе, Калифорния.
  • Кнут, Дональд (2009). Искусство программирования , том 4, выпуск 1: побитовые приемы и методы; диаграммы двоичных решений . Addison-Wesley. ISBN 978-0-321-58050-4.В предварительном проекте раздела 7.1.3 см., в частности, стр. 36–39.
  • Маргенштерн, Морис (2008). Клеточные автоматы в гиперболических пространствах. Достижения в области нетрадиционных вычислений и клеточных автоматов. Том 2. Архивы современности. С. 79. ISBN 9782914610834.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Negafibonacci_coding&oldid=1261421449"