¿Qué algoritmo podemos usar para encontrar todas las raíces enteras de un polinomio con coeficientes enteros?
Observo que Sage puede encontrar las raíces en unos pocos segundos, incluso cuando todos los coeficientes de son muy grandes. ¿Cómo es capaz de hacer eso?
ds.algorithms
na.numerical-analysis
usuario12290
fuente
fuente
Respuestas:
En cualquier caso, la documentación de Sage explica claramente cómo están haciendo la búsqueda raíz: "El siguiente método, que se usa si K es un dominio integral, es intentar factorizar el polinomio. Si esto tiene éxito, entonces para cada grado uno factor a * x + b, agregamos -b / a como raíz (siempre y cuando este cociente esté realmente en el anillo deseado) ". Ver http://www.sagemath.org/doc/reference/polynomial_rings/sage/rings/polynomial/polynomial_element.html .
Entonces su pregunta es ¿Cómo factorizan eficientemente polinomios con coeficientes enteros? Aparentemente, Sage está llamando a NTL para hacer eso (consulte http://www.shoup.net/ntl/doc/ZZXFactoring.txt para obtener detalles sobre NTL).
Si desea un método asintóticamente eficiente, puede consultar el método de Lenstra, Lenstra y Lovasz ( https://openaccess.leidenuniv.nl/handle/1887/3810 ).
fuente