Articulo de referencia

Codificación de Negafibonacci

En matemáticas , la codificación negafibonacci es un código universal que codifica números enteros distintos de cero en palabras binarias. Es similar a la codificación Fibonacci...

En matemáticas , la codificación negafibonacci es un código universal que codifica números enteros distintos de cero en palabras binarias. Es similar a la codificación Fibonacci , con la diferencia de que permite representar tanto números enteros positivos como negativos. Todos los códigos terminan en "11" y no tienen ningún "11" antes del final.

Método de codificación

Los siguientes pasos describen cómo codificar un número entero distinto de cero.incógnita{\displaystyle x}. Tenga en cuenta queF{\displaystyle f}denota la secuencia de negafibonacci.

  1. Siincógnita{\displaystyle x}es positivo, calcula el mayor entero negativo imparnorte{\displaystyle n}de tal manera que la suma de los términos negativos impares de la secuencia de negafibonacci de −1 anorte{\displaystyle n}con un paso de −2, es mayor o igual queincógnita{\displaystyle x}: norte{(2k+1),k[0,[},i=1,ioddnorte2F(i)<incógnitai=1,ioddnorteF(i).{\displaystyle n\in \{-\left(2k+1\right),k\in [0,\infty [\},\quad \sum _{i=-1,\;i\;odd}^{n-2}f(i)<x\leq \sum _{i=-1,\;i\;odd}^{n}f(i).} Siincógnita{\displaystyle x}Si es negativo, calcula el mayor entero negativo par.norte{\displaystyle n}de tal manera que la suma de los términos pares negativos de la secuencia de negafibonacci de 0 anorte{\displaystyle n}con un paso de −2, es menor o igual queincógnita{\displaystyle x}: norte{2k,k[2,[},i=2,imivminortenorte2F(i)>incógnitai=2,imivminortenorteF(i){\displaystyle n\in \{-2k,k\in [2,\infty [\},\quad \sum _{i=-2,\;i\;even}^{n-2}f(i)>x\geq \sum _{i=-2,\;i\;even}^{n}f(i)}
  2. Agregue un 1 en el|norte|el{\displaystyle |n|^{\text{th}}}bit de la palabra binaria. RestarF(norte){\displaystyle f(n)}deincógnita{\displaystyle x}.
  3. Repita el proceso desde el paso 1 con el nuevo valor de x , hasta que llegue a 0.
  4. Para finalizar la codificación, añade un 1 a la izquierda de la palabra binaria resultante.

Para decodificar una palabra binaria codificada, elimine el 1 situado más a la izquierda de la palabra binaria, ya que solo se utiliza para indicar el final del número codificado. A continuación, asigne a los bits restantes los valores de la secuencia de Negafibonacci desde −1 (1, −1, 2, −3, 5, −8, 13...) y sume todos los valores asociados a un 1.

Representación de Negafibonacci

La codificación negafibonacci está estrechamente relacionada con la representación negafibonacci , un sistema de numeración posicional que a veces utilizan los matemáticos. El código negafibonacci de un entero distinto de cero es exactamente igual a su representación negafibonacci, salvo que el orden de sus dígitos está invertido y se le añade un "1" al final. El código negafibonacci de todos los números negativos tiene un número impar de dígitos, mientras que el de todos los números positivos tiene un número par.

Mesa

El código para los números enteros desde -11 hasta 11 se muestra a continuación.

Véase también

Referencias

Obras citadas

  • Knuth, Donald (2008). Números de Negafibonacci y el plano hiperbólico . Reunión anual de la Asociación Matemática de América. San José, California.
  • Knuth, Donald (2009). El arte de la programación informática , Volumen 4, Fascículo 1: Trucos y técnicas bit a bit; Diagramas de decisión binaria . Addison-Wesley. ISBN 978-0-321-58050-4.En el borrador previo a la publicación de la sección 7.1.3, véanse en particular las páginas  36-39.
  • Margenstern, Maurice (2008). Autómatas celulares en espacios hiperbólicos . Avances en computación no convencional y autómatas celulares. Vol.  2. Archives contemporaines. p.  79. ISBN 9782914610834.