WikiDer > Кодирование НегаФибоначчи
эта статья нужны дополнительные цитаты для проверка. (Январь 2018) (Узнайте, как и когда удалить этот шаблон сообщения) |
Системы счисления |
---|
Индусско-арабская система счисления |
Восточная Азия |
Европейский |
Американец |
По алфавиту |
Бывший |
Позиционные системы от база |
Нестандартные позиционные системы счисления |
Список систем счисления |
В математика, кодирование негаФибоначчи это универсальный код который кодирует ненулевые целые числа в двоичную систему кодовые слова. Это похоже на Кодирование Фибоначчи, за исключением того, что он позволяет представлять как положительные, так и отрицательные целые числа. Все коды заканчиваются на «11» и не имеют «11» в конце.
Код Фибоначчи тесно связан с представление negaFibonacciпозиционный система счисления иногда используется математиками. Код negaFibonacci для конкретного ненулевого целого числа в точности совпадает с кодом представления negaFibonacci целого числа, за исключением того, что порядок его цифр изменен на противоположный, и в конце добавлена дополнительная «1». Код НегаФибоначчи для всех отрицательных чисел состоит из нечетного числа цифр, а для всех положительных чисел - из четного числа цифр.
Метод кодирования
Чтобы закодировать ненулевое целое число Икс:
- Вычислить наибольшее (или наименьшее) кодируемое число с помощью N бит путем суммирования нечетных (или четных) Негафибоначчи числа от 1 до N.
- Когда будет установлено, что N бит достаточно, чтобы содержать Икс, вычтите Nth число negaFibonacci из Икс, отслеживая остаток, и поместите единицу в Nth бит вывода.
- Работая вниз от Nth бит с первым, сравните каждое из соответствующих чисел негаФибоначчи с остатком. Вычтите его из остатка, если абсолютное значение разницы меньше, И если в следующем более высоком бите еще нет единицы. Единица помещается в соответствующий бит, если выполняется вычитание, или ноль, если нет.
- Поместите один в N + 1-й немного закончить.
Чтобы декодировать токен в коде, удалите последнюю «1», присвойте оставшимся битам значения 1, -1, 2, -3, 5, -8, 13… ( Negafibonacci числа) и сложите биты "1".
Таблица
Код для целых чисел от −11 до 11 приведен ниже.
количество | представление negaFibonacci | код negaFibonacci |
---|---|---|
−11 | 101000 | 0001011 |
−10 | 101001 | 1001011 |
−9 | 100010 | 0100011 |
−8 | 100000 | 0000011 |
−7 | 100001 | 1000011 |
−6 | 100100 | 0010011 |
−5 | 100101 | 1010011 |
−4 | 1010 | 01011 |
−3 | 1000 | 00011 |
−2 | 1001 | 10011 |
−1 | 10 | 011 |
0 | 0 | (не может быть закодирован) |
1 | 1 | 11 |
2 | 100 | 0011 |
3 | 101 | 1011 |
4 | 10010 | 010011 |
5 | 10000 | 000011 |
6 | 10001 | 100011 |
7 | 10100 | 001011 |
8 | 10101 | 101011 |
9 | 1001010 | 01010011 |
10 | 1001000 | 00010011 |
11 | 1001001 | 10010011 |
Смотрите также
использованная литература
- Кнут, Дональд (2008), Числа Негафибоначчи и гиперболическая плоскость, Доклад, представленный на ежегодном собрании Математической ассоциации Америки, Сан-Хосе, Калифорния..
- Кнут, Дональд (2009), Искусство программирования, Том 4, Часть 1: Побитовые приемы и методы; Диаграммы двоичных решений, ISBN 0-321-58050-8. в предпубликационный черновик раздела 7.1.3 см., в частности, стр. 36–39.
- Маргенштерн, Морис (2008), Клеточные автоматы в гиперболических пространствах, Достижения в области нетрадиционных вычислений и клеточных автоматов, 2, Archives contemporaines, стр. 79, ISBN 9782914610834.