El método de Williams es un método para factorizar números usando secuencias de números de Lucas , desarrollado por Hugh Williams en 1982. El algoritmo encuentra un divisor primo del número . Similar al método de Pollard , pero utiliza la factorización de un número . Tiene buenos indicadores de rendimiento solo en el caso de que sea fácil de factorizar. Por regla general, no suele implementarse en la práctica debido al bajo porcentaje de tales casos [1] .
Para más cálculos, necesitamos introducir secuencias de números de Lucas y enumerar algunas de sus propiedades.
Sean y sean números enteros fijos. Las secuencias de números de Lucas se definen como [1] :
Deja también
Las secuencias tienen las siguientes propiedades:
Para probar estas propiedades, considere las fórmulas explícitas para la secuencia de números de Lucas :
y
donde y son las raíces del polinomio característico
Usando fórmulas explícitas y el teorema de Viette :
obtenemos expresiones y
A continuación, destacamos una propiedad más:
Si GCD y luego: y de donde
Y finalmente formulamos el teorema:
Si p es un número primo impar y el símbolo de Legendre es , entonces:La demostración de este teorema es laboriosa y se encuentra en el libro de D. G. Lemer [2] .
Sea un divisor primo de un número factorizable , y se realiza la expansión:
donde están los números primos.
Dejar
Introduzcamos un número donde los grados se escojan de tal forma que
entonces [1]
Además, según el teorema, si mcd entonces
Y, por lo tanto, se encuentra MCD , es decir, el divisor del número buscado [1] .
Vale la pena señalar que los números no se conocen en la etapa inicial del problema. Por lo tanto, para simplificar la tarea, haremos lo siguiente: ya que por la propiedad (2) A continuación, usamos la propiedad (6) y obtenemos:
Así, sin pérdida de generalidad, podemos afirmar que [1]
A continuación, usamos el teorema del cual concluimos que
y por lo tanto [1]
Ahora elige algún número tal que mcd
Designamos:
Finalmente, necesitas encontrar GCD [1]
Para buscar , proceda de la siguiente manera [1] :
1) descomponer en forma binaria: donde .
2) introducimos una secuencia de números naturales . Al mismo tiempo ;
3) buscamos pares de valores según la siguiente regla:
donde4) los valores se buscan de acuerdo con las reglas (que se derivan de las propiedades y la definición de la secuencia de números de Lucas ):
.Para valores predeterminados, es decir, obtenemos el resultado:
374468Comprobemos este valor. Para ello, consideramos GCD GCD y .
Si elegimos números sin éxito en el primer paso , es decir, resultó que GCD , entonces debemos continuar con el segundo paso. De lo contrario, el trabajo se completa [1] .
Que el número tenga algún divisor primo mayor que pero menor que algún , es decir:
, dóndeIntroduzca una secuencia de números primos .
Introducimos otra secuencia:
A continuación, definimos:
.Usando la propiedad , obtenemos los primeros elementos:
.A continuación, usamos la propiedad y obtenemos:
.Así calculamos
A continuación, consideramos:
MCD paraTan pronto como obtenemos , detenemos los cálculos [1] .
Para valores predeterminados, es decir, obtenemos el resultado:
139,Cuál es la respuesta correcta.
El autor de este método realizó pruebas y métodos en la máquina AMDAHL 470-V7 en 497 números diferentes, lo que mostró que, en promedio, el primer paso del algoritmo es aproximadamente 2 veces más lento que el primer paso del algoritmo , y el segundo el paso es unas 4 veces más lento [1] .
Debido al hecho de que el método de factorización es más rápido, el método - rara vez se usa en la práctica [1] .
Por el momento (14 de diciembre de 2013), los tres divisores primos más grandes [3] encontrados por el método consisten en 60, 55 y 53 dígitos decimales.
Número de dígitos | pags | divisor de números | Encontrado (por quién) | Encontrado (cuando) | B | B2 |
---|---|---|---|---|---|---|
60 | 725516237739635905037132916171116034279215026146021770250523 | A. Kruppa
P.Montgomery |
31.10.2007 | |||
55 | 1273305908528677655311178780176836847652381142062038547 | P. Leyland | 16/05/2011 | |||
53 | 60120920503954047277077441080303862302926649855338567 | P. Leyland | 26.02.2011 |
Aquí está el miembro 2366 de la secuencia numérica de Lucas.