Bästa svaret
Google är din vän: från Tidskomplexitet – Wikipedia
Polynomtid
En algoritm sägs vara av polynomtid om dess körtid är övre gräns av ett polynomuttryck i storleken på ingången för algoritmen, dvs T ( n ) = {\ displaystyle O (n ^ {k})} för någon positiv konstant k .
Problem för vilka det finns en deterministisk polynom-tidsalgoritm tillhör komplexitetsklassen P , vilket är centralt inom beräkningskomplexitetsteori . Cobhams avhandling säger att polynomtid är en synonym för ”dragbar”, ”genomförbar”, ”effektiv” eller ”snabb”.
Några exempel på polynomiska tidsalgoritmer:
- urvalsortering sorteringsalgoritm på n heltal utför {\ displaystyle An ^ {2}} operationer för en konstant A . Således körs den i tid {\ displaystyle O (n ^ {2})} och är en algoritm för polynomtid.
- Alla grundläggande aritmetiska operationer (addition, subtraktion, multiplikation, division och jämförelse) kan göras på polynomtid.
- Maximala matchningar i grafer finns i polynomtid.
Jag kanske föreslår att du tar några traditionella kurser inom datavetenskap som algoritmer med en text som Introduktion till algoritmer ( aka CLRS) även en enkel datastrukturkurs som beskrivs i Flons ACM papper En grundläggande CS-kurs som förenar teori och övning som använder Wulf, Shaw, Hilfinger och Flons klassiska text Datavetenskapens grundläggande strukturer .
Svar
Om vi delar ett polynom p (x) med något polynom d (x) så hittar vi någon kvot q (x) så att p (x) = d (x) q (x) + r (x) där r (x) är vår återstod.
Antag att r (x) hade grad ≥︎ n, då kunde vi ha modifierat mer av det med tanke på att d (x) är grad n tills vår nya r (x) ^ {*} hade grad strikt mindre än d (x)
Säg att vi har p (x) = x ^ 4 + 1 och d (x) = x ^ 2:
x ^ 4 + 1 = x ^ 2q (x) + r (x)
tydligt q (x) = x ^ 2
x ^ 4 + 1 = x ^ 2 \ cdot {x ^ 2} + r (x) ⇒︎ r (x) = 1
Nu kan jag fortsätta och försöka säga att q (x) = x och g et:
x ^ 4 + 1 = {x \ cdot {x}} ^ 2+ (x ^ 4-x ^ 3 + 1)
r (x) = x ^ 4-x ^ 3 + 1?
men det är inte vad vi vill alls!
Detta är analogt med division / resten i heltal:
p = dq + r
7 = 2 \ cdot {3} +1 är korrekt
7 = 1 \ cdot {3} +4 är inte önskvärt eftersom vi inte helt delade genom vår delare och lämnade en större r än vi borde ha.
Samma koncept gäller polynom men grad dikterar när du är klar:
\ text {deg} r ( x) text {deg} d (x)
eller så minskade du inte resten till det lägsta graden i ekvivalensklass modulo d (x), eller i mindre matta termer kan du hitta faktiskt en hel klass av polynomekvivalenter när du modifierar med en viss polynom, men du vill ha den minsta med en grad klämd mellan 0 och n-1 (inklusive dessa slutpunkter) som en återstod.
10 = 7 = 4 = 1 ~ \ text {mod} 3 men bara en är ett giltigt återstående fall för heltal lång uppdelning!
x ^ 4 + 1 = x ^ 2 + 1 = 1 ~ \ text {mod } x ^ 2 men bara en är ett giltigt återstående fall för långvarig polynomuppdelning!
Så
\ text {deg} r (x) text {deg} d (x)