Jakiego algorytmu możemy użyć do znalezienia wszystkich pierwiastków całkowitych wielomianu o współczynnikach całkowitych?
Zauważyłem, że Sage może znaleźć pierwiastki w ciągu kilku sekund, nawet jeśli wszystkie współczynniki są bardzo duże. Jak to zrobić?
ds.algorithms
na.numerical-analysis
użytkownik12290
źródło
źródło
Odpowiedzi:
W każdym razie dokumentacja Sage jasno wyjaśnia, w jaki sposób przeprowadzają wyszukiwanie roota: „Następną metodą, która jest używana, jeśli K jest domeną integralną, jest próba uwzględnienia wielomianu. Jeśli to się powiedzie, to dla każdego stopnia pierwszego współczynnik a * x + b, dodajemy -b / a jako pierwiastek (o ile ten iloraz faktycznie znajduje się w żądanym pierścieniu). ” Zobacz http://www.sagemath.org/doc/reference/polynomial_rings/sage/rings/polynomial/polynomial_element.html .
Twoje pytanie brzmi: w jaki sposób efektywnie uwzględniają wielomiany ze współczynnikami całkowitymi? Najwyraźniej Sage dzwoni do NTL, aby to zrobić ( szczegółowe informacje na temat NTL można znaleźć na stronie http://www.shoup.net/ntl/doc/ZZXFactoring.txt ).
Jeśli chcesz asymptotycznie wydajnej metody, możesz odnieść się do metody Lenstry, Lenstry i Lovasz ( https://openaccess.leidenuniv.nl/handle/1887/3810 ).
źródło