Saya ingin tahu algoritma mana yang tercepat untuk perkalian dua angka n-digit? Kompleksitas ruang bisa santai di sini!
21
Saya ingin tahu algoritma mana yang tercepat untuk perkalian dua angka n-digit? Kompleksitas ruang bisa santai di sini!
Jawaban:
Sampai sekarang algoritma Fürer oleh Martin Fürer memiliki kompleksitas waktu yang menggunakan transformasi Fourier atas bilangan kompleks. Algoritma-nya sebenarnya didasarkan pada algoritma Schönhage dan Strassen yang memiliki kompleksitas waktu Θ ( n log ( n ) log ( log ( n ) ) )n log( n ) 2Θ (log∗ ( n ) ) Θ (nlog( n ) log( log( n ) ) )
Algoritma lain yang lebih cepat daripada algoritma Multiplikasi Sekolah Tingkat adalah perkalian Karatsuba yang memiliki kompleksitas waktuO ( nlog23) ≈ O ( n1.585) dan algoritma Toom 3 yang memiliki kompleksitas waktu dari Θ ( n1.465)
Perhatikan bahwa ini adalah algoritma cepat. Menemukan algoritma tercepat untuk perkalian adalah masalah terbuka dalam Ilmu Komputer.
Referensi :
sumber
Perhatikan bahwa algoritma FFT yang dicantumkan oleh avi menambahkan konstanta besar, menjadikannya tidak praktis untuk angka yang kurang dari ribuan + bit.
Selain daftar itu, ada beberapa algoritma menarik lainnya, dan pertanyaan terbuka:
sumber