El método de forma cuadrática de Shanks es un método de factorización de números enteros basado en el uso de formas cuadráticas , desarrollado por Daniel Shanks [1] en 1975 , como un desarrollo del método de factorización de Fermat .
Para las computadoras de 32 bits, los algoritmos basados en este método son los líderes indiscutibles entre los algoritmos de factorización para números de hasta y probablemente seguirán siéndolo. [2] Este algoritmo puede dividir casi cualquier número compuesto de 18 dígitos en menos de un milisegundo. El algoritmo es extremadamente simple, hermoso y eficiente. Además, los métodos basados en este algoritmo se utilizan como auxiliares en la expansión de divisores de números grandes como los números de Fermat .
Otro nombre para el algoritmo es SQUFOF ( un acrónimo de inglés es SQUare FORm Factorization), que significa factorización de forma cuadrática . Este enfoque ha tenido bastante éxito a lo largo de los años y, como resultado, se pueden encontrar bastantes modificaciones e implementaciones diferentes sobre este tema en la literatura. [3] La mayoría de los métodos son complejos y confusos, especialmente cuando el método debe implementarse en una computadora. Como resultado, muchas variantes de algoritmos no son adecuadas para su implementación. Sin embargo, en 1975, Daniel Shanks propuso crear un algoritmo que pudiera implementarse y usarse no solo en una computadora, sino también en un simple teléfono móvil.
Aunque Shanks ha descrito otros algoritmos para la factorización de enteros, no ha publicado nada en SQUFOF. Dio conferencias sobre el tema y explicó la esencia básica de su método a un círculo bastante pequeño de personas. Algunos artículos de otros científicos [4] [3] [5] [6] discutieron el algoritmo, pero ninguno contiene un análisis detallado. También es interesante que en su método, Shanks hace una gran cantidad de suposiciones [7] que, desafortunadamente, quedaron sin prueba. En [8] se presentan los resultados de algunos experimentos, que indican que existen muchas suposiciones. Al final, en base a estas suposiciones simplificadoras, Shanks pudo crear SQUFOF.
Para comprender cómo se implementa este algoritmo, es necesario conocer la información mínima sobre los objetos matemáticos utilizados en este método, a saber, las formas cuadráticas . Una forma cuadrática binaria es un polinomio en dos variables y :
El método Shanks usa solo formas indefinidas . Por entendemos el discriminante de una forma cuadrática. Diremos que la forma cuadrática representa un número entero si existen números enteros tales que la igualdad sea cierta: . Si la igualdad es verdadera , entonces la representación se llama primitiva .
Para cualquier forma cuadrática indefinida , el operador de reducción se puede definir como:
, donde se define como un entero , determinado únicamente por las condiciones: [8]El resultado de aplicar el operador al formulario una vez se escribe como . El operador también se define como:
, donde se define de la misma forma que en el caso anterior. Nótese que como resultado de aplicar los operadores y a una forma cuadrática con discriminante , las formas cuadráticas resultantes también tendrán discriminante .El método para obtener una forma reducida equivalente a esta fue encontrado por Carl Gauss y consiste en la aplicación sucesiva del operador de reducción hasta que se reduce.
Teorema.
Cada forma es equivalente a alguna forma reducida, y cualquier forma reducida de es igual a alguna positiva . Si - se reduce, entonces también se reduce. |
Además, para una comprensión clara de todas las operaciones con formas cuadráticas, necesitamos los conceptos de formas cuadráticas cuadradas, adyacentes y ambiguas.
La idea del método de Shanks es comparar el número a descomponer con una forma binaria cuadrática con discriminante , con lo cual luego se realiza una serie de transformaciones equivalentes y el paso de la forma a la forma ambigua . Entonces, será un divisor .
La primera variante trabaja con formas cuadráticas binarias definidas positivas de un discriminante negativo dado, y en el grupo de clases de formas encuentra una forma ambigua , que da una factorización del discriminante. La complejidad de la primera opción está sujeta a la verdad de la hipótesis de Riemann extendida . [9]
La segunda variante es SQUFOF, que utiliza un grupo de clases de formas cuadráticas binarias con un discriminante positivo. También encuentra la forma ambigua y factoriza el discriminante. La complejidad de SQUFOF equivale a operaciones aritméticas; el algoritmo trabaja con números enteros que no excedan . Entre los algoritmos de factorización con complejidad exponencial, SQUFOF se considera uno de los más eficientes. [9]
Según los cálculos realizados por el propio Shanks, el número de iteraciones del primer y segundo ciclo del algoritmo está determinado por el número de factores del número y es aproximadamente igual a:
donde es una constante igual a aproximadamente 2,4 para el primer ciclo de iteraciones. [diez]
Con más detalle, el algoritmo se puede escribir de la siguiente manera: [11]
Entrada: un número compuesto impar para factorizar. Si reemplazamos por Now La última propiedad es necesaria para que el determinante de la forma cuadrática sea fundamental, lo que asegura la convergencia del método.
Salida: divisor no trivial .
1. Defina la forma cuadrática original , con discriminante , donde . 2. Ejecutemos el ciclo de reducciones hasta que la forma quede cuadrada. 3. Calcula la raíz cuadrada de 4. Ejecutemos el ciclo de reducciones hasta que se estabilice el valor del segundo coeficiente . El número de iteraciones de este ciclo debe ser aproximadamente igual a la mitad del número de iteraciones del primer ciclo. El último valor dará el divisor del número (posiblemente trivial).Ahora describimos el algoritmo para su implementación en una computadora. [11] Nótese que si bien la parte teórica del algoritmo está relacionada con transformaciones equivalentes de formas cuadráticas, la parte práctica del algoritmo se basa en calcular los coeficientes del método de fracción continua sin recurrir a las formas. Cada iteración del ciclo corresponde a una operación de aplicar el operador de reducción al formulario correspondiente. Si es necesario, puede restaurar los formularios correspondientes utilizando las fórmulas:
Entrada: número compuesto
Salida: divisor no trivial
Como ya se mencionó, esta no es la única implementación de este algoritmo. También puede encontrar la implementación del algoritmo aquí [8]
Aplicamos este método para factorizar el número [8]
|
|
Ahora puedes ver en el segundo ciclo que De ahí el número
Este algoritmo se usa en muchas implementaciones de NFS y QS para factorizar pequeños números auxiliares que surgen cuando se factoriza un entero grande. En cualquier caso, SQUFOF se usa principalmente como algoritmo auxiliar en algoritmos de factorización más potentes y, por lo tanto, SQUFOF generalmente se usará para factorizar números de tamaño modesto que no tienen divisores primos pequeños. Dichos números suelen ser el producto de un pequeño número de números primos diferentes. [8] .
Algoritmos de teoría de números | |
---|---|
Pruebas de simplicidad | |
Encontrar números primos | |
Factorización | |
logaritmo discreto | |
Encontrar MCD | |
Módulo aritmético | |
Multiplicación y división de números. | |
Calcular la raíz cuadrada |