Çarpma algoritmalarındaki wikipedia sayfası Donald Knuth tarafından ilginç bir sayfadan bahsediyor . Temel olarak, fourier dönüşümü çarpımının önceden hesaplanmış bir logaritmik boyutlu çarpım tablosu ile birleştirilmesini içerir. Doğrusal zamanda çalışır.
Makale bu algoritma gibi davranıyor bir şekilde "gerçek" çarpma algoritması sayılmaz. Daha da önemlisi, çarpmanın eşit O(n lg n)
zamanda yapıp yapamayacağı açık bir soru olarak kabul edilir !
Bu algoritmanın hangi ayrıntıları "gerçek" çarpma algoritması olarak sayılmasını diskalifiye eder?
Tahminlerim:
- Tabloyu önceden hesaplamak doğrusal süreden daha fazla zaman alır. Öte yandan, yine de
n lg n
zaman içinde yapılabilir, böylece etkileyici görünebilir. - Rastgele erişime bir şekilde izin verilmiyor. Peki neden diğer algoritmalar hash tabloları ve işaretçiler gibi şeyleri kullanabilir?
- Bir makinenin kelime boyutunu artırdıkça bir şekilde yanlış ölçeklenir, örneğin tek bir komutta 256 bit çarpma yapan 256 bitlik bir makineniz varsa, bu algoritmanın 2 ^ 256'dan fazla öğeye sahip olana kadar anlamı yoktur. Diğer yandan sendika bulmada ters-ackermann faktörü ile uğraşıyoruz.
- "Doğrusal bir zaman çarpma algoritması var mı?" soru gizlice bazı zayıf makine açısından, ama bu sadece ima edilir.