Чому алгоритм множення лінійного часу Кнута не «рахується»?


13

Сторінка вікіпедії в алгоритмах множення згадує цікаву Дональд Кнут . В основному, це передбачає поєднання множення множинних перетворень на фур'є з попередньо обчисленою таблицею множин логарифмічного розміру. Він працює в лінійний час.

Стаття діє так, що цей алгоритм якось не вважається "справжнім" алгоритмом множення. Більш суттєво, що це вважається відкритим питанням, чи можна множити за рівний O(n lg n)час!

Які деталі цього алгоритму позбавляють його від врахування як "справжнього" алгоритму множення?

Мої здогадки:

  • Попереднє обчислення таблиці займає більше, ніж лінійного часу. З іншого боку, це все ще можна зробити n lg nвчасно, так що все-таки здавалося б вражаючим.
  • Випадковий доступ якось заборонено. Але тоді чому інші алгоритми можуть використовувати такі речі, як хеш-таблиці та покажчики?
  • Колись ви збільшуєте розмір слова машини, це як-небудь помиляється, як, наприклад, якщо у вас є 256-бітна машина, яка робить 256-бітне множення в одній інструкції, тоді в цьому алгоритмі немає сенсу, поки у вас більше 2 ^ 256 елементів. З іншого боку, ми турбуємось із зворотним фактором Ackermann у пошуку об'єднання.
  • "Чи існує лінійний алгоритм множення часу?" питання таємно стосується якоїсь слабшої машини, але це лише натякає на це.

Відповіді:


16

O(logn)nO(nlognloglogn)

CCΩ(nlogn)Ω(nlogn)

Для обговорення "правильної" моделі для практичного множення великих цілих чисел перегляньте нещодавній документ Фюрера . Його висновок на користь "практичного" алгоритму Шенхаге-Страссена (їх два, а інший має кращу складність бітів, але на практиці гірший; Фюрер вирішує це питання в роботі).


2
Дякуємо за роз’яснення. У мене немає копії TAOCP, тому все, що мені довелося пройти, - це те, що було у статті вікі (я бачу, ви вже відредагували це, щоб виправити проблему).
Крейг Гідні
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.