Tôi muốn biết thuật toán nào là nhanh nhất để nhân hai số có n chữ số? Không gian phức tạp có thể được thư giãn ở đây!
Tôi muốn biết thuật toán nào là nhanh nhất để nhân hai số có n chữ số? Không gian phức tạp có thể được thư giãn ở đây!
Câu trả lời:
Tính đến nay thuật toán Fürer của Martin Fürer có độ phức tạp thời điểm trong đó sử dụng biến đổi Fourier trên số phức. Thuật toán của ông thực sự là dựa trên thuật toán Schönhage và Strassen của trong đó có một độ phức tạp thời gian của Θ ( n log ( n ) log ( log ( n ) ) )
Các thuật toán khác mà là nhanh hơn so với trường lớp Nhân thuật toán là Karatsuba nhân trong đó có một độ phức tạp thời gian ≈ O ( n 1,585 ) và Toom 3 thuật toán trong đó có một độ phức tạp thời gian của Θ ( n 1,465 )
Lưu ý rằng đây là những thuật toán nhanh. Tìm thuật toán nhanh nhất để nhân là một vấn đề mở trong Khoa học Máy tính.
Tài liệu tham khảo:
Lưu ý rằng các thuật toán FFT được liệt kê bởi avi thêm một hằng số lớn, khiến chúng không thực tế đối với các số nhỏ hơn hàng nghìn + bit.
Ngoài danh sách đó, còn có một số thuật toán thú vị khác và các câu hỏi mở: