Najlepsza odpowiedź
Google jest Twoim przyjacielem: z Złożoność czasowa – Wikipedia
Czas wielomianowy
Mówi się, że algorytm czas wielomianowy , jeśli jego czas wykonywania wynosi górną granicę przez wyrażenie wielomianowe w rozmiarze danych wejściowych dla algorytmu, tj. T ( n ) = {\ Displaystyle O (n ^ {k})} dla jakiejś dodatniej stałej k .
Problemy , dla których istnieje deterministyczny algorytm czasu wielomianowego, należą do klasy złożoności P , który ma kluczowe znaczenie w dziedzinie teorii złożoności obliczeniowej . Cobham „w tezie stwierdza, że czas wielomianowy jest synonimem„ łatwego ”,„ wykonalnego ”,„ wydajnego ”lub„ szybkiego ”.
Kilka przykładów wielomianowych algorytmów czasowych:
- algorytm sortowania przez wybór n liczby całkowite wykonuje operacje {\ Displaystyle An ^ {2}} dla pewnych stałych A . W ten sposób działa w czasie {\ Displaystyle O (n ^ {2})} i jest algorytmem wielomianowym.
- Wszystkie podstawowe operacje arytmetyczne (dodawanie, odejmowanie, mnożenie, dzielenie i porównywanie) można wykonać w czasie wielomianowym.
- Maksymalne dopasowania na wykresach można znaleźć w czasie wielomianowym.
Mogę zasugerować kilka tradycyjnych kursów informatycznych, takich jak algorytmy wykorzystujące tekst, taki jak Wprowadzenie do algorytmów ( aka CLRS), nawet prosty kurs dotyczący struktur danych, taki jak opisany w Flons ACM papier Podstawowy kurs CS, który łączy teorię i praktykę , który wykorzystuje klasyczny tekst Wulfa, Shawa, Hilfingera i Flona Podstawowe struktury informatyki .
Odpowiedź
Jeśli podzielimy wielomian p (x) przez jakiś wielomian d (x), to znajdziemy taki iloraz q (x), że p (x) = d (x) q (x) + r (x) gdzie r (x) jest naszą resztą.
Załóżmy, że r (x) miał stopień ≥︎ n, wtedy moglibyśmy zmodyfikować więcej z tego, biorąc pod uwagę, że d (x) jest stopniem n, aż do naszego nowego r (x) ^ {*} miał stopień dokładnie mniejszy niż d (x)
Powiedzmy, że mamy p (x) = x ^ 4 + 1 id (x) = x ^ 2:
x ^ 4 + 1 = x ^ 2q (x) + r (x)
wyraźnie q (x) = x ^ 2
x ^ 4 + 1 = x ^ 2 \ cdot {x ^ 2} + r (x) ⇒︎ r (x) = 1
Teraz mógłbym śmiało powiedzieć, że q (x) = x i g et:
x ^ 4 + 1 = {x \ cdot {x}} ^ 2+ (x ^ 4-x ^ 3 + 1)
r (x) = x ^ 4-x ^ 3 + 1?
ale to wcale nie jest to, czego chcemy!
Jest to analogiczne do dzielenia / reszty w liczbach całkowitych:
p = dq + r
7 = 2 \ cdot {3} +1 jest poprawne
7 = 1 \ cdot {3} +4 nie jest pożądane, ponieważ nie podzieliliśmy w pełni przez nasz dzielnik i zostawiliśmy większe r niż powinniśmy.
Ta sama koncepcja dotyczy wielomianów, ale stopień dyktuje, kiedy skończysz:
\ text {deg} r ( x) text {deg} d (x)
lub nie zredukowałeś w pełni reszty do elementu najniższego stopnia w klasie równoważności modulo d (x), lub mówiąc mniej matematycznie, możesz w rzeczywistości znajdź całą klasę wielomianów równoważną, gdy zmodyfikujesz dany wielomian, ale chcesz, aby resztę stanowił najmniejszy, którego stopień jest ściśnięty między 0 a n-1 (włączając te punkty końcowe).
10 = 7 = 4 = 1 ~ \ text {mod} 3, ale tylko jeden jest prawidłową pozostałą wielkością w przypadku dzielenia liczb całkowitych przez długi!
x ^ 4 + 1 = x ^ 2 + 1 = 1 ~ \ text {mod } x ^ 2, ale tylko jeden jest prawidłowy przypadek reszty dla długiego dzielenia wielomianu!
Więc
\ text {deg} r (x) text {deg} d (x)