nejlepší odpověď
Google je váš přítel: od Časová složitost – Wikipedia
Polynomiální čas
Říká se, že algoritmus má polynomiální čas , pokud je jeho doba běhu horní hranice polynomiálním výrazem ve velikosti vstupu pro algoritmus, tj. T ( n ) = {\ displaystyle O (n ^ {k})} pro nějakou kladnou konstantu k .
Problémy , pro které existuje deterministický polynomiální časový algoritmus, patří do třídy složitosti P , který je ústředním bodem v oblasti teorie výpočetní složitosti . Cobhamova práce uvádí, že polynomiální čas je synonymem pro „schopný“, „proveditelný“, „efektivní“ nebo „rychlý“.
Některé příklady polynomiálních časových algoritmů:
- výběrové řazení třídicí algoritmus na n celá čísla provádí {\ displaystyle An ^ {2}} operace pro nějakou konstantu A . Běží tedy v čase {\ displaystyle O (n ^ {2})} a je algoritmus polynomiálního času.
- Všechny základní aritmetické operace (sčítání, odčítání, násobení, dělení a srovnání) lze provádět v polynomiálním čase.
- Maximální shodu v grafech najdete v polynomiálním čase.
Mohl bych navrhnout absolvování několika tradičních kurzů výpočetní techniky, jako jsou algoritmy, s využitím textu, jako je Úvod do algoritmů ( aka CLRS) i jednoduchý kurz datových struktur, jako je ten, který je popsán ve Flonově ACM článku Základní kurz CS, který sjednocuje teorii a praxi , který využívá klasický text Wulf, Shaw, Hilfinger a Flon Základní struktury výpočetní techniky .
Odpověď
Pokud vydělíme polynomial p (x) nějakým polynomem d (x), pak najdeme nějaký kvocient q (x) takový, že p (x) = d (x) q (x) + r (x), kde r (x) je náš zbytek.
Předpokládejme, že r (x) měl stupeň ≥︎ n, pak bychom z něj mohli moddovat více, protože d (x) je stupeň n, dokud náš nový r (x) ^ {*} měl stupeň přísně menší než d (x)
Řekněme, že máme p (x) = x ^ 4 + 1 a d (x) = x ^ 2:
x ^ 4 + 1 = x ^ 2q (x) + r (x)
jasně q (x) = x ^ 2
x ^ 4 + 1 = x ^ 2 \ cdot {x ^ 2} + r (x) ⇒︎ r (x) = 1
Nyní bych mohl pokračovat a zkusit říci, že q (x) = x a g et:
x ^ 4 + 1 = {x \ cdot {x}} ^ 2+ (x ^ 4-x ^ 3 + 1)
r (x) = x ^ 4-x ^ 3 + 1?
ale to už vůbec není to, co chceme!
Toto je analogické dělení / zbytku v celých číslech:
p = dq + r
7 = 2 \ cdot {3} +1 je správné
7 = 1 \ cdot {3} +4 není žádoucí, protože jsme se plně nerozdělili prostřednictvím našeho dělitele a nechal větší r, než bychom měli mít.
Stejný koncept platí pro polynomy, ale stupeň diktuje, až budete hotovi:
\ text {deg} r ( x) text {deg} d (x)
nebo jste zbytek zcela nesnížili na prvek nejnižšího stupně ve třídě ekvivalence modulo d (x), nebo v méně matematickém vyjádření můžete ve skutečnosti najdete celou třídu ekvivalentů polynomů, když odejdete daným polynomem, ale jako zbytek chcete ten nejmenší se stupněm mezi 0 a n-1 (včetně těchto koncových bodů).
10 = 7 = 4 = 1 ~ \ text {mod} 3, ale pouze jeden je platný zbývající případ pro celočíselné dlouhé dělení!
x ^ 4 + 1 = x ^ 2 + 1 = 1 ~ \ text {mod } x ^ 2, ale pouze jeden platný zbytek případu pro polynomiální dlouhé dělení!
Takže
\ text {deg} r (x) text {deg} d (x)