Rễ nguyên của một đa thức


10

Thuật toán nào chúng ta có thể sử dụng để tìm tất cả các số nguyên của một đa thức với các hệ số nguyên?f(x)

Tôi quan sát rằng Sage có thể tìm thấy rễ trong vài giây ngay cả khi tất cả các hệ số của là rất lớn. Làm thế nào nó có thể làm điều đó?f(x)


1
Bạn đang tìm kiếm một thuật toán để trả về một số nguyên gốc của một đa thức đã cho? Nếu có, đó là điều không thể giải quyết được và câu hỏi không có chủ đề ở đây. Bạn có thể hỏi nó về Khoa học Máy tính có phạm vi rộng hơn.
Kaveh

7
Giữ lấy. Tại sao không chắc chắn làm cho câu hỏi lạc đề? Đây là một câu hỏi cấp độ nghiên cứu hợp pháp.
Jeffε 18/07/13

2
Vì vậy, sau đó, Sage làm điều đó như thế nào? Việc không thể giải quyết được thậm chí là nổi tiếng là không thể giải quyết được, không làm cho vấn đề về mặt lý thuyết không thú vị. Các nhà khoa học máy tính lý thuyết giải quyết các vấn đề không thể giải quyết mọi lúc - xem, ví dụ, tất cả các xác minh hỗ trợ máy tính.
Jeffε 18/07/13

11
Kaveh, những gì bạn đang nói là không đúng sự thật. Điều không thể giải quyết được là khả năng giải quyết các phương trình Diophantine với nhiều biến số (do đó có vô số giải pháp thực sự và người ta đang tìm kiếm một số nguyên / hợp lý). Nhưng câu hỏi này là về một đa thức đơn phương , tất nhiên là có thể quyết định (nếu có độ , có tới gốc và người ta có thể kiểm tra xem cái nào là số nguyên). f ( x ) d df(x)f(x)dd
MCH

1
@Pratik Bạn không cần căn cứ Gröbner trong trường hợp đơn biến.
Yuval Filmus

Câu trả lời:


10

f

Trong mọi trường hợp, tài liệu Sage giải thích rõ ràng cách họ đang thực hiện tìm kiếm gốc: "Phương pháp tiếp theo, được sử dụng nếu K là một miền tích phân, là cố gắng tính hệ số đa thức. Nếu điều này thành công, thì với mọi mức độ yếu tố a * x + b, chúng tôi thêm -b / a làm gốc (miễn là thương số này thực sự nằm trong vòng mong muốn). " Xem http://www.sagemath.org/doc/reference/polynomial_rings/sage/rings/polynomial/polynomial_element.html .

Vì vậy, câu hỏi của bạn trở thành Làm thế nào để chúng có hiệu quả đa thức với các hệ số nguyên? Rõ ràng, Sage đang gọi NTL để làm điều đó (xem http://www.shoup.net/ntl/doc/ZZXFactoring.txt để biết chi tiết NTL).

Nếu bạn muốn một phương pháp hiệu quả không có triệu chứng, bạn có thể tham khảo phương pháp của Lenstra, Lenstra và Lovasz ( https://openaccess.leidenuniv.nl/handle/1887/3810 ).


1
Cảm ơn những gợi ý hữu ích! Hấp dẫn. Bạn có thể sẵn sàng chỉnh sửa câu trả lời của mình để giải thích cách biến điều này thành thuật toán không, và thời gian chạy của nó là bao nhiêu? Là thời gian chạy trường hợp xấu nhất theo cấp số nhân (bởi vì nó có thể mất thời gian phụ cho yếu tố, và sau đó có thể có nhiều ước số của hệ số dẫn đầu và theo dõi)? Nếu vậy, có thuật toán tốt hơn, hoặc đây là về những điều tốt nhất có thể làm? Ngoài ra, không phải cách tiếp cận này chỉ tìm thấy gốc rễ hợp lý, nhưng không phải là rễ không hợp lý?
DW

Đọc lại câu hỏi và thấy rằng bạn diễn giải nó khác đi, tôi không còn hoàn toàn chắc chắn, nhưng dường như rõ ràng đối với tôi và một số người bình luận rằng câu hỏi hỏi về gốc số nguyên. Bạn không đọc nó theo cách đó?
tối thiểu

@minar, bạn nói đúng. Bây giờ tôi đọc lại câu hỏi, có vẻ như vậy. Tôi phải đọc câu hỏi quá nhanh. (Ban đầu tôi hiểu sai câu hỏi như ngụ ý rằng chúng tôi muốn tất cả rễ của một đa thức với hệ số nguyên, nhưng vào đọc lại câu hỏi, mà có vẻ như một sự hiểu sai.)
DW

2
Đối với một phương pháp không có triệu chứng và thực tế hiệu quả, thuật toán được biết đến nhiều nhất là của van Hoeij (xem tại đây ). Trên thực tế, NTL dường như đang sử dụng nó.
Bruno
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.