Yanıtlar:
Hızlı Fourier Dönüşümü kullanarak, üzerinde çarpmalar bitlik sayıların sürede yapılabilir (burada tilde anlamına hangi biz polylogarithmic faktörleri görmezden geliyorsunuz o). Tekrarlanan kareleme ile çarpımları ile hesaplayabiliriz ve her çarpma kabaca biti olan den daha büyük bir sayı . Dolayısıyla, gereken toplam süre .~ O ( k ) O ( log n ) n n 2 n 2 log 2 n ˜ O ( n 2 ( log n ) 2 ) = ˜ O ( n 2 )
Yorumlara yanıt olarak düzenlenmiştir işlem zamanı işlem için gerekli süre ayrılacak olabilir ve gerçekleştirmek için gerekli olan . Bir bit sayısını bit sayısıyla çarpmanın okul defteri yöntemiyle tam olarak zaman aldığını varsayacağım ; eklemeler, vb. sabit süredir. Bunun bir sonucu olarak, işlem alır süresi. f 1 ( n ) = n 2 n f 1 ( n ) m n m n n 2 log 2 2 ( n )
hesaplaması için ikili üs kullandığımızı varsayalım . İkili üs işlem operasyonları iki tür yapar : Geçerli ürün karesi ve geçerli bir ürün çarparak göre, bağımsız olarak ikili genişleme mevcut bit 0 veya en kötü durumda, 1'dir , , ikinin bir gücü bu nedenle bu ikili üs sürekli kareler bu answer.Note ulaşıncaya kadar mevcut ürün sahiptir , böylece, bit sayısı bu tür . Aşağıda daha ayrıntılı analiz ettiğimiz durum budur.f ( n ) n, n, 2 , n 2 , n 2 m ' = ⌈ 2 log 2 ( n ) ⌉ m = m ' - 1
İlk kare alma işlemi zaman alır ve bu da bit ürünüyle sonuçlanır . İkinci kareleme iki bitlik sayı alır ve kez çalışır ve bu da bir sonuçlanır . Devam , Adım zaman alır ve bir bit ürünü . Bu işlem adımında durur ; sonuç olarak, zaman alıro1=2log2(n)o1t2=o 2 1 o2=2o1iti=4i-1log 2 2 noi=2ilog2(n)m
.
İlk kare maliyeti dahil edildiğinde, en fazla zamana ihtiyacımız olduğunu görüyoruz
Not