En matemáticas , una cadena de adición para calcular un entero positivo n puede estar dada por una secuencia de números naturales que comienza con 1 y termina con n , de modo que cada número de la secuencia sea la suma de dos números anteriores. La longitud de una cadena de adición es el número de sumas necesarias para expresar todos sus números, que es uno menos que la cardinalidad de la secuencia de números. [1]
A modo de ejemplo: (1,2,3,6,12,24,30,31) es una cadena de adición para 31 de longitud 7, ya que
Las cadenas de adición se pueden utilizar para la exponenciación de cadenas de adición . Este método permite realizar la exponenciación con exponentes enteros utilizando un número de multiplicaciones igual a la longitud de una cadena de adición para el exponente. Por ejemplo, la cadena de adición para 31 conduce a un método para calcular la potencia 31 de cualquier número n utilizando solo siete multiplicaciones, en lugar de las 30 multiplicaciones que se obtendrían de la multiplicación repetida, y ocho multiplicaciones con exponenciación por cuadrado :
Calcular una cadena de adición de longitud mínima no es fácil; una versión generalizada del problema, en la que se debe encontrar una cadena que forme simultáneamente cada uno de los valores de una secuencia, es NP-completa. [2] No se conoce ningún algoritmo que pueda calcular una cadena de adición mínima para un número dado con garantías de tiempo razonable o uso reducido de memoria. Sin embargo, se conocen varias técnicas para calcular cadenas relativamente cortas que no siempre son óptimas. [3]
Una técnica muy conocida para calcular cadenas de adición relativamente cortas es el método binario , similar a la exponenciación por cuadrado . En este método, una cadena de adición para el número se obtiene recursivamente, a partir de una cadena de adición para . Si es par, se puede obtener en una única suma adicional, como . Si es impar, este método utiliza dos sumas para obtenerlo, calculando y luego sumando una. [3]
El método factorial para encontrar cadenas de adición se basa en la factorización prima del número que se va a representar. Si tiene un número como uno de sus factores primos, entonces se puede obtener una cadena de adición para comenzando con una cadena para , y luego concatenando sobre ella una cadena para , modificada multiplicando cada uno de sus números por . Las ideas del método factorial y del método binario se pueden combinar en el método m-ario de Brauer eligiendo cualquier número (sin importar si divide a ), construyendo recursivamente una cadena para , concatenando una cadena para (modificada de la misma manera que antes) para obtener , y luego sumando el resto. Refinamientos adicionales de estas ideas conducen a una familia de métodos llamados métodos de ventana deslizante . [3]
Sea el más pequeño de modo que exista una cadena de adición de longitud que calcule . Se sabe que
donde es el peso de Hamming (el número de unos) de la expansión binaria de . [4]
Se puede obtener una cadena de adición para a partir de una cadena de adición para incluyendo una suma adicional , de la que se sigue la desigualdad sobre las longitudes de las cadenas para y . Sin embargo, esto no siempre es una igualdad, ya que en algunos casos puede tener una cadena más corta que la obtenida de esta manera. Por ejemplo, , observado por Knuth. [5] Incluso es posible para tener una cadena más corta que , de modo que ; el más pequeño para el que esto sucede es , [6] que es seguido por , , y así sucesivamente (secuencia A230528 en la OEIS ).
Una cadena de Brauer o cadena de adición en estrella es una cadena de adición en la que cada una de las sumas utilizadas para calcular sus números utiliza el número inmediatamente anterior. Un número de Brauer es un número para el cual una cadena de Brauer es óptima. [5]
Brauer demostró que
donde es la longitud de la cadena estelar más corta. Para muchos valores de n , y en particular para n < 12509 , son iguales: [7] l ( n ) = l * ( n ) . Pero Hansen demostró que hay algunos valores de n para los cuales l ( n ) ≠ l * ( n ) , como n = 2 6106 + 2 3048 + 2 2032 + 2 2016 + 1 que tiene l * ( n ) = 6110, l ( n ) ≤ 6109 . El n más pequeño de estos es 12509.
La conjetura de Scholz (a veces llamada conjetura de Scholz-Brauer o conjetura de Brauer-Scholz ), llamada así por Arnold Scholz y Alfred T. Brauer), es una conjetura de 1937 que afirma que
Se sabe que esta desigualdad se cumple para todos los números de Hansen, una generalización de los números de Brauer; Neill Clift verificó por computadora que todos son Hansen (mientras que 5784689 no lo es). [6] Clift verificó además que, de hecho, para todos los . [5]