Thuật toán hiệu quả nhất cho tính phân chia là gì?


12

Hiệu quả nhất (trong thời gian phức tạp) thuật toán nổi tiếng hiện nay cho Divisibity Quyết Vấn đề là gì: cho hai số nguyên, nói b , không một phân chia b ? Hãy nói rõ rằng những gì tôi yêu cầu không phải (nhất thiết) là một thuật toán cho Tính toán còn lại. Tôi chỉ muốn biết liệu a chia b hay không. Cụ thể hơn, câu hỏi của tôi là có tồn tại hay không một số thuật toán gần đây cho Tính phân chia với độ phức tạp thời gian tốt hơn O ( m log m log log m ) , trong đó m là số bit của max { amộtbmộtbmộtbÔi(mđăng nhậpmđăng nhậpđăng nhậpm)m . Hơn nữa, là Ω ( m log m log log m ) thấp hơn bị ràng buộc về vấn đề này?tối đa{một,b}Ω(mđăng nhậpmđăng nhậpđăng nhậpm)

Cảm ơn và trân trọng, và xin lỗi nếu đây là một câu hỏi ngây thơ.


AFAIK không có giới hạn dưới không tầm thường được biết đến. Tôi tin rằng phép nhân và phép chia được biết là về cơ bản có cùng độ phức tạp (mặc dù nó có thể phụ thuộc vào hệ số log log?) Thông qua phương pháp của Newton, và vì không có giới hạn nào được xác định thấp hơn về phép nhân nên tôi nghĩ rằng bất kỳ giới hạn dưới nào của biểu mẫu bạn nói rằng sẽ là một kết quả chính.
Steven Stadnicki

(Trên thực tế, nhìn vào nó bây giờ tôi nghĩ rằng yếu tố nhật ký nhật ký sẽ biến mất bởi vì trong khi bạn đang thực hiện một số phép nhân không đáng kể, chúng không phải là tất cả cùng độ dài, vì vậy các yếu tố siêu tuyến có thể được hấp thụ theo cùng một cách, ví dụ, vẫn là tuyến tính trongnmặc dù nó có số lượng yếu tố 'tuyến tính' không đáng kể.)Σk= =1lgnn2kn
Steven Stadnicki

Câu trả lời:


4

Làm sáng tỏ ý kiến ​​của tôi thành một câu trả lời: vì tính phân chia là (có thể giảm) một cách đơn giản và vì phép chia có thể giảm bớt để nhân lên thông qua các cách tiếp cận như phương pháp của Newton, nên vấn đề của bạn sẽ có độ phức tạp cùng thời gian với phép nhân số nguyên. AFAIK, không có giới hạn nào được biết để nhân lên tốt hơn so với giới hạn tuyến tính tầm thường, do đó, điều tương tự cũng đúng với vấn đề của bạn - và đặc biệt, vì phép nhân được biết là có thuật toán , hy vọng của bạn cho một log n log n log log n ràng buộc gần như chắc chắn là vô ích.Ôi(nđăng nhậpnđăng nhập*n)nđăng nhậpnđăng nhậpđăng nhậpn

Lý do sự phân chia giảm chính xác về độ phức tạp đối với phép nhân - theo tôi hiểu - là phương pháp của Newton sẽ thực hiện một chuỗi các phép nhân có kích thước leo thang khác nhau; phương tiện này rằng nếu có một thuật toán cho phép nhân với độ phức tạp thì sự phức tạp của một thuật toán phân chia sử dụng thuật toán nhân này như một bước trung gian sẽ được dọc theo dòng Θ ( Σ lg n k = 0 f ( nΘ(f(n))- và cho tất cả các lớp phức tạp đang được thảo luận này chỉ làΘ(f(n)).Θ(k=0lgnf(n2k))Θ(f(n))


2
Nitpick: Tôi không thấy làm thế nào bạn có được một ràng buộc thấp hơn từ loại lý luận này, ngay cả khi chúng tôi cho rằng không có thuật toán nào tốt hơn cho phép nhân so với những thuật toán tốt nhất hiện được biết đến. Việc cắt giảm của bạn ngụ ý rằng việc chia hết không khó hơn phép nhân. Nhưng vẫn có khả năng chia hết có thể dễ hơn chia và dễ hơn nhân, vì phép chia chỉ yêu cầu câu trả lời có / không thay vì số. (Ít nhất, mức giảm mà bạn đề cập dường như không loại trừ được.)
DW

2
@DW Đồng ý, và đó là một điểm tuyệt vời; nhưng tôi đã không cố gắng để có được một giới hạn thấp hơn. Thay vào đó, vấn đề là bất kỳ giới hạn dưới nào của phép chia đều hàm ý giới hạn dưới tương ứng trên phép nhân, và vì không có giới hạn nào được biết ngoài giới hạn tuyến tính tầm thường, sau đó nhận được bất kỳ giới hạn dưới tuyến tính nào tốt hơn (đó là một phần của OP yêu cầu) là không thể.
Steven Stadnicki

@DW Tôi sẽ không hoàn toàn sốc khi biết về giới hạn tuyến tính bị chia rẽ và như bạn nói rằng điều đó sẽ không bao hàm cụ thể bất cứ điều gì về giới hạn trên của phép nhân, nhưng không có kết quả cụ thể nào theo hướng AFAIK.
Steven Stadnicki

-2

Tôi nghĩ rằng có các loại hack Vees cho một số số kết thúc bằng 3,7, v.v. Hoặc các ước số cơ sở 2 ^ n ...

Nhưng nói chung, thuật toán phân chia nhanh nhất dường như là chuẩn mực.

Cách tốt nhất mà tôi biết mà không cần tìm kiếm là Thuật toán D trong các phương pháp Hội thảo của Knuth ... Chưa bao giờ kiểm tra tính đúng đắn của nó. Nó chạy trong ít nhiều O (mn-n ^ 2) trong đó m và n là cổ tức và ước số ... mà không bao gồm độ phức tạp nhân ...

Tuy nhiên, giới hạn thấp hơn có thể thấp đến mức đáng kinh ngạc vì câu hỏi của bạn chỉ liên quan đến vấn đề quyết định.

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.