Jawaban:
Dengan menggunakan transformasi Fourier cepat, perkalian pada bilangan bit dapat dilakukan dalam waktu (di mana tilde menandakan bahwa kita mengabaikan faktor polylogaritmik). Dengan kuadrat berulang, kita dapat menghitung dengan perkalian , dan setiap perkalian tidak melibatkan angka yang lebih besar dari , yang memiliki kira-kira bit. Jadi jumlah total waktu yang diperlukan adalah .
Diedit dalam menanggapi komentar Waktu untuk menghitung dapat didekomposisi menjadi waktu yang diperlukan untuk menghitung dan yang diperlukan untuk melakukan . Saya akan berasumsi bahwa mengalikan angka sedikit dengan angka sedikit membutuhkan waktu tepat dengan metode buku sekolah; tambahan, dll. adalah waktu yang konstan. Akibatnya, komputasi membutuhkan waktu.
Misalkan kita menggunakan eksponen biner untuk komputasi . Binary exponentiation melakukan dua jenis operasi dalam komputasi : mengkuadratkan produk saat ini, dan mengalikan produk saat ini dengan , sesuai dengan apakah bit saat ini dalam ekspansi biner adalah 0 atau 1. Dalam kasus terburuk , adalah kekuatan dua, sehingga eksponensial biner berulang kali mengkuadratkan produknya saat ini hingga mencapai jawaban. Perhatikan bahwa memiliki bit, sehingga jumlahnya kuadrat tersebut adalah . Ini adalah kasus yang kami analisis lebih lanjut di bawah ini.
pertama membutuhkan waktu , menghasilkan -bit produk. kedua mengambil dua angka bit dan berjalan dalam waktu , menghasilkan produk -bit. Melanjutkan, langkah ke- membutuhkan waktu dan menghasilkan -bit produk. Proses ini berhenti pada langkah ke- ; Akibatnya, butuh waktu
.
Ketika biaya kuadrat awal sudah termasuk, kami merasa kami membutuhkan waktu paling banyak
Catatan