La numeración biyectiva es cualquier sistema de numeración en el que cada número entero no negativo puede representarse de exactamente una manera utilizando una cadena finita de dígitos . El nombre se refiere a la biyección (es decir, correspondencia uno a uno) que existe en este caso entre el conjunto de números enteros no negativos y el conjunto de cadenas finitas utilizando un conjunto finito de símbolos (los "dígitos").
La mayoría de los sistemas de numeración ordinarios, como el sistema decimal común , no son biyectivos porque más de una cadena de dígitos puede representar el mismo entero positivo. En particular, la adición de ceros a la izquierda no cambia el valor representado, por lo que "1", "01" y "001" representan el número uno . Aunque solo el primero es habitual, el hecho de que los demás sean posibles significa que el sistema decimal no es biyectivo. Sin embargo, el sistema de numeración unario , con un solo dígito, es biyectivo.
Una numeración biyectiva en base k es una notación posicional biyectiva . Utiliza una cadena de dígitos del conjunto {1, 2, ..., k } (donde k ≥ 1) para codificar cada entero positivo; la posición de un dígito en la cadena define su valor como un múltiplo de una potencia de k . Smullyan (1961) llama a esta notación k -ádica, pero no debe confundirse con los números p -ádicos : los numerales biyectivos son un sistema para representar números enteros ordinarios mediante cadenas finitas de dígitos distintos de cero, mientras que los números p -ádicos son un sistema de valores matemáticos que contienen los números enteros como un subconjunto y pueden necesitar secuencias infinitas de dígitos en cualquier representación numérica.
El sistema de numeración biyectiva base k utiliza el conjunto de dígitos {1, 2, ..., k } ( k ≥ 1) para representar de forma única cada número entero no negativo, de la siguiente manera:
Por el contrario, la notación posicional estándar se puede definir con un algoritmo recursivo similar donde
Para la base , el sistema de numeración base biyectiva podría extenderse a números enteros negativos de la misma manera que el sistema de numeración base estándar mediante el uso de un número infinito del dígito , donde , representado como una secuencia infinita por la izquierda de dígitos . Esto se debe a que la suma de Euler
lo que significa que
y para cada número positivo con numeración biyectiva la representación de dígitos se representa por . Para la base , los números negativos se representan por con , mientras que para la base , los números negativos se representan por . Esto es similar a cómo en las representaciones de dígitos con signo , todos los números enteros con representaciones de dígitos se representan como donde . Esta representación ya no es biyectiva, ya que todo el conjunto de secuencias de dígitos infinitas por la izquierda se utiliza para representar los números enteros -ádicos , de los cuales los números enteros son solo un subconjunto.
Para una base dada ,
Para una base dada ,
El sistema de numeración biyectivo de base 10 es un sistema de numeración posicional de base diez que no utiliza un dígito para representar el cero , sino un dígito para representar el diez, como A.
Al igual que con el sistema decimal convencional , cada posición de dígito representa una potencia de diez, por lo que, por ejemplo, 123 es "cien, más dos decenas, más tres unidades". Todos los números enteros positivos que se representan únicamente con dígitos distintos de cero en el sistema decimal convencional (como 123) tienen la misma representación en el sistema biyectivo de base 10. Aquellos que utilizan un cero deben reescribirse, por lo que, por ejemplo, 10 se convierte en A, el 20 convencional se convierte en 1A, el 100 convencional se convierte en 9A, el 101 convencional se convierte en A1, el 302 convencional se convierte en 2A2, el 1000 convencional se convierte en 99A, el 1110 convencional se convierte en AAA, el 2010 convencional se convierte en 19AA, y así sucesivamente.
En este sistema, la suma y la multiplicación son básicamente las mismas que en el sistema decimal convencional, excepto que los acarreos se producen cuando una posición excede a diez, en lugar de cuando excede a nueve. Por lo tanto, para calcular 643 + 759, hay doce unidades (escribe 2 a la derecha y lleva 1 a las decenas), diez decenas (escribe A sin necesidad de llevar a las centenas), trece centenas (escribe 3 y lleva 1 a los millares) y un millar (escribe 1), para obtener el resultado 13A2 en lugar del 1402 convencional.
En el sistema biyectivo de base 26 se pueden utilizar las letras del alfabeto latino "A" a "Z" para representar los 26 dígitos del uno al veintiséis . (A=1, B=2, C=3, ..., Z=26)
Con esta elección de notación, la secuencia numérica (que comienza desde 1) comienza A, B, C, ..., X, Y, Z, AA, AB, AC, ..., AX, AY, AZ, BA, BB, BC, ...
Cada posición de dígito representa una potencia de veintiséis, así que, por ejemplo, el numeral WI representa el valor 23 × 26 1 + 9 × 26 0 = 607 en base 10.
Muchas hojas de cálculo , incluido Microsoft Excel, utilizan este sistema para asignar etiquetas a las columnas de una hoja de cálculo, comenzando con A, B, C, ..., Z, AA, AB, ..., AZ, BA, ..., ZZ, AAA, etc. Por ejemplo, en Excel 2013, puede haber hasta 16384 columnas (2 14 en código binario), etiquetadas de A a XFD. [3] Las variantes de malware también se nombran utilizando este sistema: por ejemplo, el primer macrovirus de Microsoft Word generalizado, Concept, se denomina formalmente WM/Concept.A, su 26.ª variante WM/Concept.Z, la 27.ª variante WM/Concept.AA, et seq. Una variante de este sistema se utiliza para nombrar estrellas variables . [4] Se puede aplicar a cualquier problema en el que se desee una denominación sistemática utilizando letras, al tiempo que se utilizan las cadenas más cortas posibles.
El hecho de que cada entero no negativo tenga una representación única en base biyectiva k ( k ≥ 1) es un " teorema popular " que ha sido redescubierto muchas veces. Ejemplos tempranos son Foster (1947) para el caso k = 10, y Smullyan (1961) y Böhm (1964) para todos los k ≥ 1. Smullyan utiliza este sistema para proporcionar una numeración de Gödel de las cadenas de símbolos en un sistema lógico; Böhm utiliza estas representaciones para realizar cálculos en el lenguaje de programación P′′ . Knuth (1969) menciona el caso especial de k = 10, y Salomaa (1973) analiza los casos k ≥ 2. Forslund (1995) parece ser otro redescubrimiento, y plantea la hipótesis de que si los sistemas de numeración antiguos utilizaban la base biyectiva k , podrían no ser reconocidos como tales en los documentos arqueológicos, debido a la falta de familiaridad general con este sistema.