Tilbake
1.3

1.3 DRILL — Asymptotisk forenkling og notasjon

Systematisk drill i sjanger A: definér symbolene, klassifisér funksjoner og forenkl sammensatte uttrykk til det strammeste svaret — de garanterte poengene.

80 min
14 oppgaver
DRILLAsymptotisk forenklingnotasjon
Din fremgang i kapitlet
0 / 14 oppgaver
Kapitlets plass i kurset

Forkunnskaper

Dette kapitlet er ren trening på stoffet fra de to foregående kapitlene og
introduserer ingenting nytt. Du bør ha vært gjennom:

- Kapittel 1.1, Asymptotisk notasjon — de fem symbolene. Der står de formelle
definisjonene av OO, Ω\Omega, Θ\Theta, oo og ω\omega med konstantene cc
og n0n_0, og den standard vekstordningen
1<lgn<n<nlgn<n2<n3<2n<n!1 < \lg n < n < n\lg n < n^2 < n^3 < 2^n < n!.
- Kapittel 1.2, Forenkling av asymptotiske uttrykk. Der står de tre
forenklingsreglene: i en sum dominerer det raskest voksende leddet, en
Ω\Omega- eller ω\omega-term uten øvre grense fjerner enhver OO-grense for
hele summen, og svaret skal alltid være det strammeste enkeltuttrykket.

Ordet asymptotisk betyr «for store nn». Vi bryr oss ikke om hvordan
funksjonen oppfører seg for n=5n = 5, bare om hvordan den vokser når nn blir
vilkårlig stor. Alle konstanter og alle lavere ordens ledd faller derfor bort.

Trenger du et mykere første møte med vekstklasser og OO-notasjon før du drilles
på dem, er dette et godt sted å begynne:

- Algoritmedefinisjon, pseudokode og kompleksitet (Big-O)
— NTNUs eget introduksjonsemne i programmering, der OO-notasjonen forklares
på kode som faktisk kjører.

Notasjonen i denne boka følger CLRS (Cormen, Leiserson, Rivest og Stein,
Introduction to Algorithms), som er pensumankeret i faget. Det er derfor det
står lgn\lg n og ikke logn\log n i uttrykkene: lgn\lg n betyr log2n\log_2 n.

Notasjons- og pseudokodeliste

Slik ser sjanger A ut på arket (~10 min)

Oppgaven er alltid av samme type. Du får et uttrykk som er satt sammen av flere
ledd, hvert ledd merket med ett av de fem symbolene, og du blir bedt om å skrive
det som ett uttrykk — det strammeste som er sant.

Det som gjør oppgaven forutsigbar, er at du aldri skal bevise noe. Du skal ikke
finne cc og n0n_0, ikke tegne grafer og ikke skrive en utledning. Du skal
gjenkjenne hvilket ledd som vokser raskest, og hvilke av leddene som har en
øvre grense og hvilke som ikke har det.

Det som gjør oppgaven farlig, er at det finnes mange sanne svar, og bare ett
av dem gir full uttelling. At 3n2+5n3n^2 + 5n er O(n10)O(n^{10}) er helt sant, men det er
et dårlig svar: det strammeste er Θ(n2)\Theta(n^2). Løsningsforslagene er tydelige
på at det er det strammeste uttrykket som etterspørres.

📜Løsningsoppskriften for sjanger A

Kjør denne ovenfra og ned, hver gang — også når svaret virker opplagt.

1. Identifisér hvert ledd og dets vekstklasse. Skriv leddene under hverandre
og sett vekstklassen på hvert enkelt: er dette n2n^2, n2lgnn^2\lg n eller n3n^3?
2. For summer: behold det raskest voksende leddet. Alt som vokser
langsommere, forsvinner. Sjekk deretter om en ω\omega- eller Ω\Omega-term
fjerner den øvre grensen for hele summen.
3. For grenser hver for seg: oppgi strammeste Ω\Omega og strammeste OO
separat.
Ber oppgaven om både nedre og øvre grense, skal du gi to uttrykk —
og de er ofte ikke like.
4. For brøk: bytt teller og nevner med sin ekstremverdi, og forkort. Et
Θ\Theta-ledd har både en største og en minste verdi; et OO-ledd har bare en
største; et Ω\Omega-ledd har bare en minste.
5. Skriv kun det strammeste enkeltuttrykket. Ett uttrykk, ingen utledning,
ingen forklaring — med mindre oppgaven uttrykkelig ber om en.

Punkt 4 fortjener en presisering, for det er der de fleste bommer. Et symbol
inne i et regnestykke står for en vilkårlig funksjon i den klassen. Når du
spør «hvor stor kan brøken bli?», velger du den største lovlige telleren og den
minste lovlige nevneren. Når du spør «hvor liten kan den bli?», velger du
motsatt. Har en av dem ingen slik ekstremverdi, finnes ikke den grensen.

✏️Eksempel 1: Et fullt eksamenscase, steg for steg
Et sett gir deg tre deloppgaver om det samme uttrykket:

S(n)=Θ(n6)Ω(n2)+Θ(n3lgn)+o(n4)S(n) = \frac{\Theta(n^6)}{\Omega(n^2)} + \Theta(n^3\lg n) + o(n^4)

a) Gi den strammeste øvre grensen for S(n)S(n).

b) Gi den strammeste nedre grensen for S(n)S(n).

c) Kan S(n)S(n) skrives som ett Θ\Theta-uttrykk? Begrunn med én setning.

Steg 1 — identifisér leddene og grensetypen deres.

LeddØvre grense?Nedre grense?
Θ(n6)Ω(n2)\displaystyle \frac{\Theta(n^6)}{\Omega(n^2)}ja (regnes ut i steg 2)nei
Θ(n3lgn)\Theta(n^3\lg n)jaja
o(n4)o(n^4)ja, og den er ikke oppnåddnei

Margnotat: Selve oppsettet er verdt uttelling. Skriver du opp leddene med
hver sin grensetype før du regner, gjør du sjelden feil på hvilken
ekstremverdi som skal brukes hvor. Det tar femten sekunder.

Steg 2 — regn ut brøkleddet for seg. Telleren er Θ(n6)\Theta(n^6), altså klemt

mellom c1n6c_1 n^6 og c2n6c_2 n^6. Nevneren er Ω(n2)\Omega(n^2), altså minst cn2c\,n^2,
men uten noen øvre grense — den kan like gjerne være n10n^{10}.
Størst mulig verdi av brøken får du med størst mulig teller og minst mulig

nevner:
c2n6cn2=c2cn4\frac{c_2 n^6}{c\,n^2} = \frac{c_2}{c}\,n^4
Brøkleddet er altså O(n4)O(n^4). Minst mulig verdi finnes derimot ikke: nevneren

kan vokse uten grense, og da går brøken mot null. Brøkleddet har ingen nedre
grense
.

Margnotat: Her faller delpoenget for de fleste. Hopper du over å bytte inn

ekstremverdiene og skriver Θ(n4)\Theta(n^4) rett fra 62=46 - 2 = 4, har du behandlet
en Ω\Omega-nevner som om den var en Θ\Theta-nevner. Svaret ser riktig ut og
er galt.

Steg 3 — a) den strammeste øvre grensen. Alle tre leddene har en øvre
grense: brøkleddet er O(n4)O(n^4), midtleddet er O(n3lgn)O(n^3\lg n), og o(n4)o(n^4) er i
særdeleshet O(n4)O(n^4). Det raskest voksende av disse er n4n^4.
S(n)=O(n4)S(n) = O(n^4)

Margnotat: Legg merke til at o(n4)o(n^4) ikke løfter svaret over n4n^4.
Symbolet oo betyr strengt langsommere enn n4n^4; det er en øvre grense, ikke
en nedre.

Steg 4 — b) den strammeste nedre grensen. Bare midtleddet har en nedre

grense: Θ(n3lgn)\Theta(n^3\lg n) er minst c1n3lgnc_1 n^3\lg n. De to andre leddene er
ikke-negative og kan bare gjøre summen større.
S(n)=Ω(n3lgn)S(n) = \Omega(n^3\lg n)

Margnotat: Fristelsen er å skrive Ω(n4)\Omega(n^4) fordi n4n^4 dukket opp i
a). Men ingen av leddene garanterer n4n^4 nedenfra — brøkleddet kan være
forsvinnende lite.

Steg 5 — c) kan det skrives som ett Θ\Theta-uttrykk?

Nei. Den øvre grensen er n4n^4 og den nedre er n3lgnn^3\lg n, og de to møtes ikke:
n3lgn=o(n4)n^3\lg n = o(n^4). Brøkleddet kan legge seg hvor som helst i mellomrommet
avhengig av hvilken nevner som velges, og da finnes det ingen felles Θ\Theta.

Margnotat: «Nei, fordi øvre og nedre grense ikke møtes» er hele svaret på

c). En utledning på seks linjer gir ikke mer.


Kortsvaret du faktisk leverer:
a) O(n4)O(n^4) b) Ω(n3lgn)\Omega(n^3\lg n) c) Nei — grensene møtes ikke,

siden n3lgn=o(n4)n^3\lg n = o(n^4).

Symbolene skal kunne skrives ned kaldt (~12 min)

— naturlig pausepunkt —

Definisjonsspørsmålet er den ene oppgaven i faget der du ikke kan resonnere deg
fram til svaret. Enten kan du formen med cc og n0n_0, eller så kan du den ikke.
Fordi eksamen er uten hjelpemidler, må de fem definisjonene sitte som utenatlære.

De tre første har samme skjelett — «det finnes konstanter … slik at … for alle
nn0n \ge n_0» — og skiller seg bare i hvilken vei ulikheten peker. De to siste
bytter ut «det finnes en cc» med «for alle cc», og det er hele forskjellen.

📝Oppgave 1
Eksamensnivå, sjanger D
a) Definér f(n)=O(g(n))f(n) = O(g(n)) presist, med de konstantene som inngår.

b) Definér f(n)=Ω(g(n))f(n) = \Omega(g(n)) presist.

c) Hvilket ord i disse to definisjonene er det som gjør at du bare trenger å
finne én konstant cc som virker?

📝Oppgave 2
Eksamensnivå, sjanger D
a) Definér f(n)=o(g(n))f(n) = o(g(n)) presist.

b) Definér f(n)=ω(g(n))f(n) = \omega(g(n)) presist.

c) Forklar med én setning hva som skiller oo fra OO, og gi ett konkret
funksjonspar der f(n)=O(g(n))f(n) = O(g(n)) er sant, men f(n)=o(g(n))f(n) = o(g(n)) er galt.

📝Oppgave 3
Eksamensnivå, sjanger D
a) Definér f(n)=Θ(g(n))f(n) = \Theta(g(n)) presist.

b) Forklar med én setning forskjellen mellom Θ(g(n))\Theta(g(n)) og O(g(n))O(g(n)).

c) En besvarelse skriver: «Θ\Theta betyr at ff og gg vokser like fort, og
OO betyr at ff vokser saktere enn gg.» Hva er galt i den siste halvdelen?

Å klassifisere en funksjon (~12 min)

Den andre faste varianten gir deg en konkret funksjon og en konkret g(n)g(n), og
spør hvilke av de fem symbolene som stemmer. Framgangsmåten er alltid den samme:
se på forholdet f(n)/g(n)f(n)/g(n) når nn vokser.

- Forholdet stabiliserer seg på et positivt tall: f=Θ(g)f = \Theta(g), og dermed
både O(g)O(g) og Ω(g)\Omega(g).
- Forholdet går mot null: f=o(g)f = o(g), og dermed O(g)O(g), men ikke Ω(g)\Omega(g).
- Forholdet vokser uten grense: f=ω(g)f = \omega(g), og dermed Ω(g)\Omega(g), men
ikke O(g)O(g).

Merk deg de to «og dermed»-ene. De gir gratis delpoeng: har du først avgjort at
noe er o(g)o(g), kan du uten videre svare ja på om det er O(g)O(g).

✏️Eksempel 2: Fire spørsmål om samme funksjon

La f(n)=4n2lgnf(n) = 4n^2\lg n. Avgjør for hver av påstandene om den er sann eller
usann, og oppgi til slutt den strammeste enkeltpåstanden du kan gjøre om ff.

a) f(n)=O(n3)f(n) = O(n^3) b) f(n)=Θ(n2)f(n) = \Theta(n^2) c) f(n)=ω(n2)f(n) = \omega(n^2)
d) f(n)=o(n3)f(n) = o(n^3)

Regn ut forholdene, ett om gangen.

a) Sann. 4n2lgnn3=4lgnn\dfrac{4n^2\lg n}{n^3} = \dfrac{4\lg n}{n}, som går mot null. Går
forholdet mot null, er f=o(n3)f = o(n^3), og alt som er oo er også OO.

b) Usann. 4n2lgnn2=4lgn\dfrac{4n^2\lg n}{n^2} = 4\lg n, som vokser uten grense.
Forholdet stabiliserer seg ikke, så ff er ikke Θ(n2)\Theta(n^2). Den er Ω(n2)\Omega(n^2),
men ikke O(n2)O(n^2).

c) Sann. Samme regnestykke som i b): forholdet 4lgn4\lg n vokser uten grense,
og det er nettopp definisjonen av ω\omega.

d) Sann — det er den samme observasjonen som i a), sagt strengere.

Strammeste enkeltpåstand: f(n)=Θ(n2lgn)f(n) = \Theta(n^2\lg n). Konstanten 4 forsvinner,
og både øvre og nedre grense er n2lgnn^2\lg n.

Legg merke til at både O(n3)O(n^3) og Ω(n2)\Omega(n^2) er sanne påstander om ff, men
begge kaster bort informasjon. Blir du bedt om den strammeste, er det bare
Θ(n2lgn)\Theta(n^2\lg n) som gir full uttelling.

📝Oppgave 4
Eksamensnivå, sjanger A

La f(n)=2n3+7n2f(n) = 2n^3 + 7n^2.

a) Er f(n)=Θ(n3)f(n) = \Theta(n^3)?

b) Er f(n)=O(n4)f(n) = O(n^4)? Er den o(n4)o(n^4)?

c) Er f(n)=ω(n2)f(n) = \omega(n^2)?

d) Oppgi den strammeste enkeltpåstanden om f(n)f(n).

📝Oppgave 5
Eksamensnivå, sjanger A

Avgjør hver påstand, og begrunn hver med
forholdet f(n)/g(n)f(n)/g(n).

a) nlg2n=O(n2)n\lg^2 n = O(n^2)?

b) nlg2n=Θ(nlgn)n\lg^2 n = \Theta(n\lg n)?

c) lg(n3)=Θ(lgn)\lg(n^3) = \Theta(\lg n)?

d) n=ω(lgn)\sqrt{n} = \omega(\lg n)?

Summer: ett ledd overlever (~12 min)

— naturlig pausepunkt —

I en sum av asymptotiske ledd er det bare det raskest voksende leddet som
betyr noe. De andre er så små at de kan puttes inn i konstanten. Men før du
skriver ned svaret, må du stille ett spørsmål til: har hele summen en øvre
grense?

Svaret er nei så snart minst ett ledd er merket Ω\Omega eller ω\omega. Et slikt
ledd står for en funksjon som er bundet nedenfra og fri oppover, og en sum som
inneholder en fri funksjon kan ikke bindes ovenfra. Da er svaret et
Ω\Omega- eller ω\omega-uttrykk, ikke et Θ\Theta-uttrykk.

Og motsatt: er alle leddene OO, Θ\Theta eller oo, har summen en øvre grense.
Har den i tillegg minst ett Θ\Theta-ledd som er det raskest voksende, er svaret
et Θ\Theta-uttrykk.

📝Oppgave 6
Eksamensnivå, sjanger A
Forenkl til ett strammeste uttrykk:

Θ(n2lgn)+O(n2)+Θ(nlg2n)\Theta(n^2\lg n) + O(n^2) + \Theta(n\lg^2 n)

📝Oppgave 7
Eksamensnivå, sjanger A
Forenkl til ett strammeste uttrykk:

Θ(n3)+Ω(n2)+O(nlgn)\Theta(n^3) + \Omega(n^2) + O(n\lg n)

📝Oppgave 8
Eksamensnivå, sjanger A
Forenkl til ett strammeste uttrykk, og forklar
med én setning hvorfor du ikke kan skrive ω\omega i svaret:

O(n4)+ω(n2)+Θ(n3)O(n^4) + \omega(n^2) + \Theta(n^3)

Grenser hver for seg (~10 min)

Noen oppgaver ber ikke om ett uttrykk, men om to: den strammeste nedre og
den strammeste øvre grensen, hver for seg. Det er en gavepakke, for den varianten
er lettere enn den vanlige — du slipper å avgjøre om grensene møtes.

Framgangsmåten er å gå gjennom leddene to ganger. Første runde: hvilke ledd har
en nedre grense, og hvilken av dem er størst? Andre runde: hvilke ledd har en
øvre grense, og hvilken av dem er størst? Har ett av leddene ingen øvre grense,
er svaret på andre runde at det ikke finnes noen.

At de to svarene ofte er forskjellige, er selve poenget med spørsmålsformen.

✏️Eksempel 3: To grenser som ikke møtes
Oppgi den strammeste nedre og den strammeste øvre grensen, hver for seg, for

nlgn+Θ(n2)+O(n2lgn)n\lg n + \Theta(n^2) + O(n^2\lg n)

Nedre grense. Hvilke ledd garanterer noe nedenfra? Det første leddet er en
konkret funksjon, nlgnn\lg n, som alltid er der. Det andre er Θ(n2)\Theta(n^2), som er
minst c1n2c_1 n^2. Det tredje, O(n2lgn)O(n^2\lg n), garanterer ingenting nedenfra — det
kan være så lite som null. Største garanti nedenfra er dermed n2n^2:

Ω(n2)\Omega(n^2)

Øvre grense. Alle tre leddene har en øvre grense: nlgnn\lg n er seg selv,
Θ(n2)\Theta(n^2) er høyst c2n2c_2 n^2, og O(n2lgn)O(n^2\lg n) er høyst c3n2lgnc_3 n^2\lg n. Det
raskest voksende av disse er n2lgnn^2\lg n:

O(n2lgn)O(n^2\lg n)

Kortsvaret: Ω(n2)\Omega(n^2) og O(n2lgn)O(n^2\lg n).

Grensene møtes ikke, og det skal de heller ikke — O(n2lgn)O(n^2\lg n)-leddet kan legge
seg hvor som helst mellom null og n2lgnn^2\lg n. Å presse svaret inn i ett
Θ\Theta-uttrykk ville vært galt.

📝Oppgave 9
Eksamensnivå, sjanger A
Oppgi strammeste nedre og strammeste øvre grense,
hver for seg, for

Θ(nlgn)+O(n2)+Θ(n)\Theta(n\lg n) + O(n^2) + \Theta(n)

og si med én setning om uttrykket kan skrives som ett Θ\Theta-uttrykk.

📝Oppgave 10
Eksamensnivå, sjanger A
Oppgi strammeste nedre og strammeste øvre grense,
hver for seg, for

O(n4)Θ(n)+Θ(n2)\frac{O(n^4)}{\Theta(n)} + \Theta(n^2)

Blandede operatorer (~10 min)

Den varianten som oftest ser verre ut enn den er, er den som blander alle fem
symbolene i samme sum. Oppskriften er likevel uendret, og den kan sammenfattes i
to spørsmål:

1. Er det noe her som ikke har øvre grense? Alle Ω\Omega- og ω\omega-ledd
svarer ja. Da blir svaret et Ω\Omega- eller ω\omega-uttrykk.
2. Hvilket ledd gir den sterkeste garantien nedenfra? Det bestemmer hvilken
funksjon som står inne i parentesen.

Er svaret på spørsmål 1 nei, faller du tilbake på den vanlige summeregelen: det
raskest voksende leddet vinner, og symbolet blir Θ\Theta hvis det leddet er et
Θ\Theta-ledd, ellers OO.

📝Oppgave 11
Eksamensnivå, sjanger A
Forenkl til ett strammeste uttrykk:

O(n2)+Θ(nlgn)+ω(nlgn)+o(n)O(n^2) + \Theta(n\lg n) + \omega(n\lg n) + o(n)

📝Oppgave 12
Eksamensnivå, sjanger A

Forenkl hvert produkt til ett strammeste uttrykk:

a) Θ(nlgn)O(n)\Theta(n\lg n)\cdot O(n)

b) ω(n)Θ(n2)\omega(n)\cdot\Theta(n^2)

c) O(n2)o(n)O(n^2)\cdot o(n)

Brøkuttrykk — teller og nevner hver for seg (~14 min)

— naturlig pausepunkt —

Brøkvarianten er den som gir flest tapte poeng, og grunnen er at den ser ut som
vanlig potensregning. Fristelsen er å trekke eksponentene fra hverandre og gå
videre. Det virker bare når både teller og nevner er Θ\Theta-ledd.

Den trygge rutinen har tre linjer:

1. Spør: hvor stor kan brøken bli? Sett inn den største lovlige telleren og den
minste lovlige nevneren, og forkort. Får du et uttrykk, er det OO-grensen.
Har telleren ingen største verdi, eller nevneren ingen minste, finnes ingen
OO-grense.
2. Spør: hvor liten kan brøken bli? Sett inn den minste lovlige telleren og den
største lovlige nevneren, og forkort. Får du et uttrykk, er det
Ω\Omega-grensen. Ellers finnes den ikke.
3. Møtes svarene fra 1 og 2, skriv Θ\Theta. Ellers oppgir du det ene som finnes.

Tabellen du trenger for linje 1 og 2 er kort: Θ(g)\Theta(g) har både største og
minste verdi (begge er gg opp til en konstant), O(g)O(g) har bare største, og
Ω(g)\Omega(g) har bare minste.

✏️Eksempel 4: Brøk og sum i samme uttrykk
Forenkl til ett strammeste uttrykk:

Θ(n5lgn)Θ(n2)+O(n3)+Θ(n2lg2n)\frac{\Theta(n^5\lg n)}{\Theta(n^2)} + O(n^3) + \Theta(n^2\lg^2 n)

Brøkleddet. Både teller og nevner er Θ\Theta-ledd, og det er det eneste
tilfellet der du trygt kan forkorte direkte. Største brøk:
c2n5lgnc3n2=c2c3n3lgn\dfrac{c_2 n^5\lg n}{c_3 n^2} = \dfrac{c_2}{c_3}n^3\lg n. Minste brøk:
c1n5lgnc4n2=c1c4n3lgn\dfrac{c_1 n^5\lg n}{c_4 n^2} = \dfrac{c_1}{c_4}n^3\lg n. Samme uttrykk begge
veier, altså Θ(n3lgn)\Theta(n^3\lg n).

Sammenlign de tre leddene. Vi har nå Θ(n3lgn)+O(n3)+Θ(n2lg2n)\Theta(n^3\lg n) + O(n^3) + \Theta(n^2\lg^2 n). Sorter vekstklassene:

- n3lgnn^3\lg n
- n3n^3, som er o(n3lgn)o(n^3\lg n)
- n2lg2nn^2\lg^2 n, som er o(n3)o(n^3) og dermed enda mindre

Det raskest voksende leddet er n3lgnn^3\lg n, og det er merket Θ\Theta. Ingen ledd
mangler øvre grense.

Svar: Θ(n3lgn)\Theta(n^3\lg n).

Merk hvorfor svaret ikke kan skrives Θ(n3)\Theta(n^3): logaritmefaktoren er en ekte
vekstforskjell, ikke en konstant. n3lgnn^3\lg n delt på n3n^3 er lgn\lg n, som vokser
uten grense — altså er n3lgn=ω(n3)n^3\lg n = \omega(n^3).

📝Oppgave 13
Eksamensnivå, sjanger A

Forenkl hver brøk til ett strammeste uttrykk:

a) Θ(n5)Ω(n2)\dfrac{\Theta(n^5)}{\Omega(n^2)}

b) Ω(n4lgn)O(n2)\dfrac{\Omega(n^4\lg n)}{O(n^2)}

c) Θ(n6)Θ(n3)\dfrac{\Theta(n^6)}{\Theta(n^3)}

📝Oppgave 14
Eksamensnivå, sjanger A…

Et sett gir deg tre deloppgaver.

a) La f(n)=n2/lgnf(n) = n^2/\lg n. Er f(n)=Θ(n2)f(n) = \Theta(n^2)? Er f(n)=O(n2)f(n) = O(n^2)? Er
f(n)=ω(n)f(n) = \omega(n)? Svar for hver.

b) Forenkl til ett strammeste uttrykk:
Θ(n7)Θ(n3)+O(n4)+Θ(n3lg2n)\dfrac{\Theta(n^7)}{\Theta(n^3)} + O(n^4) + \Theta(n^3\lg^2 n)

c) Forklar med én setning hvorfor svaret i b) ikke kunne vært skrevet
Θ(n3lg2n)\Theta(n^3\lg^2 n).

Begrepsbank

Begrepsbanken er flashcard- og repetisjonsstoff — den gjentar det du nettopp har
lest. Hopp trygt over ved førstegangslesing; tidsanslaget for kapitlet gjelder
kjernestoffet.

Symbolet OO — øvre grense

Sier at funksjonen vokser høyst som gg, opp til en konstant faktor. Det er
det romsligste av de fem symbolene, og det er sant også når ff vokser mye
langsommere enn gg.

Formelt: f(n)=O(g(n))f(n) = O(g(n)) dersom det finnes positive konstanter cc og n0n_0 slik
at 0f(n)cg(n)0 \le f(n) \le c\,g(n) for alle nn0n \ge n_0.

Kravet er eksistens av én konstant cc. Den vanligste feilen er å lese OO
som «vokser saktere enn» — det stemmer ikke, 3n2=O(n2)3n^2 = O(n^2) er sant.

Symbolet Ω\Omega — nedre grense

Sier at funksjonen vokser minst som gg, opp til en konstant faktor. Et
Ω\Omega-ledd i et regnestykke har ingen øvre grense — det er dette som gjør at
en sum med et Ω\Omega-ledd ikke kan bindes ovenfra.

Formelt: f(n)=Ω(g(n))f(n) = \Omega(g(n)) dersom det finnes positive konstanter cc og n0n_0
slik at 0cg(n)f(n)0 \le c\,g(n) \le f(n) for alle nn0n \ge n_0.

Samme skjelett som OO, motsatt ulikhetsretning. Definisjonen krever n0n_0 — en
nedre grense som bare gjelder for små nn, er ingen nedre grense.

Symbolet Θ\Theta — tett grense

Sier at funksjonen vokser nøyaktig som gg, opp til konstante faktorer. Det
er det svaret eksamen som regel er ute etter, fordi det er det strammeste.

Formelt: f(n)=Θ(g(n))f(n) = \Theta(g(n)) dersom det finnes positive konstanter c1c_1, c2c_2
og n0n_0 slik at 0c1g(n)f(n)c2g(n)0 \le c_1 g(n) \le f(n) \le c_2 g(n) for alle nn0n \ge n_0.
Ekvivalent: f(n)=O(g(n))f(n) = O(g(n)) og f(n)=Ω(g(n))f(n) = \Omega(g(n)) samtidig.

Kravet er to konstanter, ikke én. Et polynom er alltid Θ\Theta av sitt eget
høyeste ledd.

Symbolet oo — strengt mindre

Sier at funksjonen blir forsvinnende liten i forhold til gg: forholdet
f(n)/g(n)f(n)/g(n) går mot null. Alt som er o(g)o(g) er også O(g)O(g), men ikke omvendt.

Formelt: f(n)=o(g(n))f(n) = o(g(n)) dersom det for alle konstanter c>0c > 0 finnes et
n0n_0 slik at 0f(n)<cg(n)0 \le f(n) < c\,g(n) for alle nn0n \ge n_0.

Kravet «for alle cc» er hele forskjellen fra OO, og det er den detaljen som
oftest mangler i et definisjonssvar.

Symbolet ω\omega — strengt større

Sier at funksjonen vokser uten grense i forhold til gg: forholdet
f(n)/g(n)f(n)/g(n) vokser mot uendelig. Alt som er ω(g)\omega(g) er også Ω(g)\Omega(g), men
ikke omvendt.

Formelt: f(n)=ω(g(n))f(n) = \omega(g(n)) dersom det for alle konstanter c>0c > 0 finnes
et n0n_0 slik at 0cg(n)<f(n)0 \le c\,g(n) < f(n) for alle nn0n \ge n_0.

I en sum fjerner et ω\omega-ledd den øvre grensen, men det løfter bare den nedre
grensen til gg selv — ikke til noe over gg.

Strammeste grense

Den mest informative av flere sanne påstander om samme funksjon. Er både
O(n3)O(n^3), Ω(n2)\Omega(n^2) og Θ(n2)\Theta(n^2) sant, er Θ(n2)\Theta(n^2) det strammeste,
fordi det binder funksjonen fra begge sider på samme nivå.

Rutinen som finner den: har du en OO-grense, spør om den samme funksjonen også
er Ω\Omega av det samme uttrykket. Er den det, skriv Θ\Theta.

Oppgaveteksten spør nesten alltid etter denne. Et sant, men løsere svar er
felle #4 og gir sjelden full uttelling.

Dominerende ledd i en sum

Det leddet som vokser raskest, og det eneste som overlever forenklingen. Alle
langsommere ledd kan puttes inn i konstanten og forsvinner.

Rekkefølgen du trenger er 1<lgn<n<nlgn<n2<n3<2n<n!1 < \lg n < n < n\lg n < n^2 < n^3 < 2^n < n!, og
den utvides på det opplagte viset: n2n^2 kommer før n2lgnn^2\lg n, som kommer før
n3n^3.

Kravet for at svaret kan bli et Θ\Theta-uttrykk, er at det dominerende leddet
selv er et Θ\Theta-ledd og at ingen av de andre mangler øvre grense.

Når et ledd fjerner den øvre grensen

Så snart en sum inneholder et Ω\Omega- eller ω\omega-ledd, kan den ikke
bindes ovenfra, og svaret må skrives med Ω\Omega eller ω\omega.

Grunnen er at et slikt ledd står for en vilkårlig funksjon som bare er bundet
nedenfra. Den kan være hvor stor som helst, og en sum som inneholder en
ubegrenset funksjon er selv ubegrenset.

Kontrollspørsmålet er alltid det samme, og det skal stilles før du velger
symbol: er noen av leddene merket Ω\Omega eller ω\omega?

Brøkregelen: ekstremverdi i teller og nevner

Regelen for å forenkle en brøk av asymptotiske ledd: bytt teller og nevner med
hver sin ekstremverdi før du forkorter, aldri etterpå.

Øvre grense får du med største teller og minste nevner; nedre grense med minste
teller og største nevner. Θ(g)\Theta(g) har begge ekstremverdier, O(g)O(g) bare den
største, Ω(g)\Omega(g) bare den minste.

Kravet for at du trygt kan trekke eksponentene fra hverandre direkte, er at
både teller og nevner er Θ\Theta-ledd. I alle andre tilfeller mangler minst
én av grensene.

Forholdstesten

Den praktiske måten å klassifisere en konkret funksjon på: se hva f(n)/g(n)f(n)/g(n)
gjør når nn vokser.

Stabiliserer forholdet seg på et positivt tall, er f=Θ(g)f = \Theta(g). Går det mot
null, er f=o(g)f = o(g) og dermed O(g)O(g). Vokser det uten grense, er f=ω(g)f = \omega(g)
og dermed Ω(g)\Omega(g).

Kravet er at du husker de to «og dermed»-ene — de gir gratis delpoeng når en
oppgave spør om flere symboler for samme funksjonspar.

Sjanger A — asymptotisk forenkling

Oppgavetypen dette kapitlet drilles på: du får et sammensatt uttrykk og skal
skrive det som ett strammeste uttrykk.

Den er med i 100 % (17 av de 17 settene i grunnlaget), ofte med 2–3 oppgaver i
samme sett. Svarformen er én linje — ett uttrykk, ingen utledning.

Kravet som avgjør uttellingen, er at svaret er det strammeste, ikke bare et sant
svar.

Sjanger D — definisjonsspørsmålet

Oppgavetypen der du blir bedt om å skrive ned den presise definisjonen av ett
av de fem symbolene, eller å forklare forskjellen mellom to av dem.

Svarformen er én presis setning med hovedpoenget først: kvantoren, de to
konstantene og ulikheten. Fordi eksamen er uten hjelpemidler, må formen kunnes
utenat.

Kravet som skiller riktig fra galt, er kvantoren: «det finnes en cc» for OO og
Ω\Omega, «for alle cc» for oo og ω\omega.

Repetisjonsoppgaver

Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.

Skolesaga er en uavhengig læringsressurs og er ikke tilknyttet eller godkjent av Norges teknisk-naturvitenskapelige universitet. Dette er ikke offisielt studiemateriell. Les mer.