Kompleksitas mengambil mod

23

Ini sepertinya pertanyaan yang seharusnya memiliki jawaban yang mudah, tapi saya tidak punya yang pasti:

Jika saya memiliki dua n bit angka a,hal , apa kerumitan komputasi ?Sebuahmodhal

Membagi dengan akan membutuhkan waktu mana adalah kompleksitas dari perkalian. Tetapi bisakah dilakukan sedikit lebih cepat?Sebuahhal HAI(M.(n))M.(n)mod

Suresh
sumber
1
Mungkin pertanyaan bodoh, tetapi bisakah Anda mengonversi untuk ditulis dalam dasar dan kemudian melihat LSB? halSebuahhal
Pål GD
2
Anda bisa, tetapi itu sepertinya kerja ekstra, dan mungkin akan membutuhkan pembagian.
Suresh

Jawaban:

12

Shoup (Bagian 3.3.5, Teorema 3.3, hal. 62) memberikan batasan untuk menghitung residu dalam waktu mana a = q p + r dan mencatat a = n .rO(nlogq)a=qp+rlogSebuah=n

Saya kira jika dan a keduanya kira-kira n angka bit, maka q (dan karenanya log q ) harus agak kecil, memberikan O ( n ) .halSebuahnqlogqHAI(n)

Jika adalah angka n- bit, dan p relatif kecil, maka pendekatan multiplikasi harus lebih cepat.Sebuahnhal

Luke Mathieson
sumber