Tại sao thuật toán nhân thời gian tuyến tính của Knuth không đếm được?


13

Trang wikipedia về thuật toán nhân đã đề cập đến một điều thú vị của Donald Knuth . Về cơ bản, nó liên quan đến việc kết hợp phép nhân biến đổi Fourier với bảng nhân các phép nhân có kích thước logarit. Nó chạy trong thời gian tuyến tính.

Bài viết này hoạt động như thuật toán này bằng cách nào đó không được tính là thuật toán nhân "thật". Quan trọng hơn, nó được coi là một câu hỏi mở cho dù nhân có thể được thực hiện trong O(n lg n)thời gian thậm chí !

Những chi tiết nào của thuật toán này không đủ điều kiện để tính là thuật toán nhân "thật"?

Tôi đoán là:

  • Việc tính toán trước bảng mất nhiều hơn thời gian tuyến tính. Mặt khác, nó vẫn có thể được thực hiện n lg nkịp thời nên dường như vẫn còn ấn tượng.
  • Truy cập ngẫu nhiên bằng cách nào đó không được phép. Nhưng tại sao các thuật toán khác có thể sử dụng những thứ như bảng băm và con trỏ?
  • Nó bằng cách nào đó sai quy mô khi bạn tăng kích thước từ của máy, như nếu bạn có một máy 256 bit thực hiện phép nhân 256 bit trong một lệnh thì sẽ không có thuật toán nào cho đến khi bạn có nhiều hơn 2 ^ 256 phần tử. Mặt khác, chúng tôi bận tâm với yếu tố nghịch đảo-ackermann trong tìm kiếm kết hợp.
  • "Có thuật toán nhân thời gian tuyến tính không?" câu hỏi là bí mật về một số máy yếu hơn, nhưng điều này chỉ được gợi ý.

Câu trả lời:


16

O(logn)nO(nlognloglogn)

CCΩ(nlogn)Ω(nlogn)

Để thảo luận về mô hình "chính xác" để nhân số thực của số nguyên lớn, hãy xem bài báo gần đây của Fürer . Kết luận của ông là ủng hộ thuật toán Schönhage tầm Strassen "thực tế" (có hai trong số chúng, và cái còn lại có độ phức tạp bit tốt hơn nhưng thực hiện kém hơn trong thực tế; Fürer giải quyết vấn đề này trong bài báo).


2
Cảm ơn bạn đã làm rõ. Tôi không có bản sao TAOCP vì vậy tất cả những gì tôi phải làm là những gì có trong bài viết wiki (Tôi thấy bạn đã chỉnh sửa nó để khắc phục vấn đề).
Craig Gidney
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.