Jaka jest złożoność obliczeń ?
complexity-theory
integers
number-theory
Raphael
źródło
źródło
Odpowiedzi:
Dzięki szybkiej transformacie Fouriera mnożenie liczb bitowych może być wykonane w czasie ˜ O ( k ) (gdzie tylda oznacza , że ignorujemy czynniki polilogarytmiczne). Przez powtarzanie kwadratu możemy obliczyć n n 2 z mnożeniem O ( log n ) , a każde mnożenie obejmuje liczbę większą niż n n 2 , która ma z grubsza n 2 log 2 n bitów. Zatem całkowity wymagany czas wynosi ˜ O ( n 2 (k O~(k) nn2 O(logn) nn2 n2log2n .O~(n2(logn)2)=O~(n2)
źródło
Edytowane w odpowiedzi na komentarze Czas obliczenia można rozłożyć na czas wymagany do obliczenia f 1 ( n ) = n 2 i czas wymagany do wykonania n f 1 ( n ) . Zakładam, że pomnożenie liczby m bitów przez liczbę n bitów zajmuje dokładnie m n czasu metodą podręcznika szkolnego; dodatki itp. są stałym czasem. W rezultacie obliczenie n 2 zajmuje log 2f(n)=nn2 f1(n)=n2 nf1(n) m n mn n2 czas.log22(n)
Załóżmy, że do obliczania używamy potęgowania binarnego . Potęgowanie binarne wykonuje dwa rodzaje operacji przy obliczaniu f ( n ) : podniesienie kwadratu bieżącego produktu i pomnożenie bieżącego produktu przez n , w zależności od tego, czy bieżący bit w rozwinięciu binarnym n 2 wynosi 0 czy 1. W najgorszym przypadku n 2 jest potęgą dwóch, tak że potęgowanie binarne wielokrotnie kwadratuje bieżący iloczyn, aż osiągnie odpowiedź. Zauważ, że n 2 ma m ′ = ⌈ 2 log 2 ( nf(n) f(n) n n2 n2 n2 bitów, tak że liczba takich kwadratów wynosi m = m ′ - 1 . Jest to przypadek, który analizujemy poniżej.m′=⌈2log2(n)⌉ m=m′−1
Pierwsze podniesienie do kwadratu zajmuje czas , co daje iloczyn o 1 = 2 log 2 ( n ) -bit. Drugie kwadraty przyjmują dwie liczby o 1 bit i biegną w czasie t 2 = o 2 1 , co daje iloczyn o 2 = 2 o 1- bit. Kontynuując, i- ty krok zajmuje t i = 4 i - 1 logt1=log22(n) o1=2log2(n) o1 t2=o21 o2=2o1 i czas i wyjścia aoi=2ilog2(n)-bitowy produkt. Proces ten zatrzymuje się nam-tymetapie; w rezultacie wymaga czasuti=4i−1log22n oi=2ilog2(n) m
.Texp=∑[1..m]ti=log22(n)∑[1..m]4i=4m−13log22n
Po uwzględnieniu początkowego kosztu do kwadratu potrzebujemy czasu
Uwaga
źródło