Løsningsforslag for Obligatorisk Oppgave 1. Algoritmer og Datastrukturer ITF20006
|
|
- Anna Fredriksen
- 7 år siden
- Visninger:
Transkript
1 Løsningsforslag for Obligatorisk Oppgave 1 Algoritmer og Datastrukturer ITF20006 Lars Vidar Magnusson Frist Den første obligatoriske oppgaven tar for seg de fem første forelesningene, som i hovedsak har dreiet seg om hvordan man analyserer en algoritme Løsningsforslaget inneholder ikke analyse av faktisk kjøretid i den første og tredje oppgaven Dette ble gjort fordi poenget med disse var primært å la studentene få erfare forskjellen mellom faktisk kjøretid og asymptotisk kjøretid på egen hånd Praktisk Informasjon Det er med disse oppgavene dere skal få den nødvendige erfaringen dere trenger, så det kreves at alle innleveringer skal være individuelt arbeid Det er selvsagt til lov å hjelpe hverandre, men den endelige besvarelsen skal være et resultat av eget arbeid Besvarelser som viser tegn plagiering vil bli underkjente Dere kan selv velge hvilket språk dere vil implementere algoritmene i, men hvis dere skulle trenge hjelp kan det være greit å holde seg til enten Java, C# eller C (eller SML for spesielt interesserte) Både kode og tekst skal samles i en enkel rapport som så sendes til meg på larsvmagnusson@hiofno Rapporten skal være i pdf-format og skal være strukturert i henhold til oppgavene Dere står fritt i om koden legges direkte inn i besvarelsesteksten som figurer eller om dere legger den til som appendix og bruker refaranser Oppgave 1 Analyser kjøretiden til de følgende algoritmene gitt i pseudokode Det skal gjøres både en detaljert analyse, en asymptotisk analyse og en analyse av faktisk kjøretid For den detaljerte analysen kan dere anta at hver linje er tar én tidsenhet For den faktiske kjøretiden må pseudokoden implementeres og testes med forskjellige inputstørrelser I denne oppgaven er det viktigste at de klarer å komme frem til korrekt asymptotisk notasjon (det er greit om de blander O, Omega og Theta, så lenge alle er store) Detaljene i den detaljerte analysen er mindre viktig, men de bør ha fått med seg de grove trekkene 1
2 Oppgave1A(n) 1 sum = 0 2 for i = 1 to n 3 sum = sum + i 4 return sum Detaljert analyse: T (n) = 1 + (n + 1) + n + 1 = 2n + 3 Asymptotisk analyse: T (n) = 2n + 3 = Θ(n) Oppgave1B(n) 1 sum = 0 2 for i = 1 to n 3 for j = 1 to n 4 sum = sum + i 5 sum = sum + j 6 return sum Detaljert analyse: Asymptotisk analyse: T (n) = 1 + (n + 1) + n(n + 1) + n 2 + n = 3n 2 + 2n + 3 T (n) = 3n 2 + 2n + 3 = Θ(n 2 ) Oppgave1C(n) 1 sum = 0 2 for i = 1 to n 3 sum = sum + i 4 for j = 1 to n 5 sum = sum + k 6 return sum Detaljert analyse: T (n) = 1 + (n + 1) + n + (n + 1) + n + 1 = 4n + 4 2
3 Asymptotisk analyse: T (n) = 4n + 4 = Θ(n) Oppgave1D(n) 1 sum = 0 2 for i = 1 to n 3 for j = 1 to n 4 for k = 1 to n 5 sum = sum + k 6 return sum Detaljert analyse: T (n) = 1 + (n + 1) + n(n + 1) + n 2 (n + 1) + n Asymptotisk analyse: = 2n 3 + 2n 2 + 2n + 3 T (n) = 2n 3 + 2n 2 + 2n + 3 = Θ(n 3 ) Oppgave1E(n) 1 sum = 0 2 for i = 1 to n 3 for j = 1 to n 4 for k = 1 to n 5 sum = sum + i 6 sum = sum + j 7 sum = sum + k 8 return sum Detaljert analyse: T (n) = 1 + (n + 1) + n(n + 1) + n 2 (n + 1) + n 3 + n 3 + n = 4n 3 + 2n 2 + 2n + 3 Asymptotisk analyse: T (n) = 4n 3 + 2n 2 + 2n + 3 = Θ(n 3 ) Oppgave1F(n) 1 sum = 0 2 i = 1 3 while i n 4 sum = sum + i 5 i = 2i 6 return sum 3
4 Detaljert analyse: T (n) = ( log 2 n + 2) + ( log 2 n + 1) + ( log 2 n + 1) + 1 = 3 log 2 n + 7 Asymptotisk analyse: T (n) = 3 log 2 n + 7 = Θ(log n) Oppgave1G(n) 1 sum = 0 2 i = 1 3 while i n 4 for j = 1 to n 5 sum = sum + j 6 i = 2i 7 return sum Detaljert analyse: T (n) = ( log 2 n + 2) + ( log 2 n + 1)(n + 1) + ( log 2 n + 1)n + ( log 2 n + 1) + 1 = 2n log 2 n + 2n + 3 log 2 n + 7 Asymptotisk analyse: T (n) = 2n log 2 n + 2n + 3 log 2 n + 7 = Θ(n log n) Oppgave 2 I denne oppgaven bør de i hovedsak ha alt likt fasiten, men de matematiske transformasjonene som blir brukt i substitusjonsmetoden kan selvsagt variere A Finn en gjetning for en asymptotisk øvre grense for recurrence ligningen under ved hjelp av rekursjonstrær Verifiser den asymptotiske grensen først med substitusjonsmetoden (matematisk induksjon) og så masterteoremet { Θ(1) if n = 1 T (n) = 3T (n/2) + Θ(n) if n > 1 Finner gjetning ved hjelp av et rekursjonstre Vi begynner med å sette inn cn for Θ(n) som intern kostnad i hver node i treet og ekspanderer til vi ser et mønster 4
5 cn c( n 2 ) c( n 2 ) c( n 2 ) T (1) T (1) T (1) T (1) T (1) T (1) T (1) T (1) T (1) T (1) T (1) T (1) Høyden h på treet blir: n 2 h = 1 2 h = n h = log 2 n Da har vi 3 h = 3 log 2 n = n log 2 3 antall barn med kostnad Θ(1) hver, som gir en total kostnad for barna på Θ(n log 2 3 ) Vi har kan nå sette sammen en ligning for kostnaden til recurrence-ligningen ved å summere kostnadene på alle nivåene i treet T (n) = cn cn cn + + Θ(nlog 2 3 ) = i=0 h = Θ(n log 2 3 ) i cn + Θ(n log 2 3 ) Vår gjetning blir dermed O(n log 2 3 ) siden det bare blir spurt om en øvre grense Dette gjør også beviset enklere Beviset er gitt under med substitusjonsmetoden ie matematisk induksjon Vi gjetter på O(n log 2 3 ) Dette krever at T (n) cn log 2 3 Vi setter cn log 2 3 for T og kn for Θ(n) (vi setter inn konstanten k for å ikke blande med konstanten c) i recurrence ligningen og får T (n) = 3c( n 2 )log kn = 3c( nlog log 2 3 ) + kn = cn log kn Dette fører ikke frem til den ønskede formen på T (n) cn log 2 3 cn log kn > cn log 2 3 så lenge k > 0 siden 5
6 Vi reduserer derfor gjetningen vår med en lavereordens ledd for å prøve å få matematikken til å gå opp Siden vi endte opp med et n-ledd til overs, er det naturlig å begynne med en gjetning som trekker fra et n-ledd ie O(n log 2 3 n) ( (n ) ) log2 3 n T (n) = 3c + kn 2 2 = cn log 2 3 3cn 2 + kn cn log 2 3 cn, så lenge c 2k Begrensingen c 2k kommer fra å løse ulikheten 3cn kn cn 2 3c 2 k c 3c 2 c k c 2 k c 2k For å fullføre beviset må vi se på grensetilfellet også Vi vet fra definisjonen av ligningen at T (1) = Θ(1) = O(1) = m, hvis vi setter konstanten i Θ(1) i basisleddet til en konstant m > 0 Siden dette ikke oppfyller kravet T (n) c(n log 2 3 n) så må vi se på større verdier av n T (2) = 3T (1) + kn = 3m + k Vi må så prøve bevise at dette oppfyller kravet T (n) c(n log 2 3 n) 3m + k c(2 log 2 3 2) = c(3 2) = c c(2 log 2 3 2), så lenge c 3m + k Vi har da bevist at T (n) = O(n log 2 3 ) lenge n 2 og c 3m + k med substitusjonsmetoden Vi kan verifisere dette beviset med masterteoremet Vi må da sammenligne n log b a med Θ(n) n log b a = n log 2 3 Vi ser enkelt n log 2 3 er polynomisk større enn Θ(n), så da får vi T (n) = Θ(n log 2 3 ) = O(n log 2 3 ) 6
7 B Hvilke metoder for å løse recurrence-ligninger er brukbare på ligningen under Begrunn svaret Bruk en av de applikable metodene for å komme frem til en øvre grense { Θ(1) if n = 1 T (n) = T (n 1) + Θ(n) if n > 1 Vi kan ikke bruke masterteoremet for å løse recurrence-ligningen siden den ikke er på formen T (n) = at (n/b) + f(n) Vi står da igjen med rekursjonstrær og substitusjonsmetoden Det er enkelt å se at siden n minkes med 1 på hvert nivå, så vil vi få rekursjonstreet få en høyde på n Jobben internt i hver node er Θ(n) = cn Selvom n minker for hvert nivå, er kostnaden avhengig av størrelsen n Vi kan derfor ganske enkelt multiplisere høyden med kostnaden og ende opp med en gjetning på n n = n 2 = O(n 2 ) Vi verifiserer så denne gjetningen med substitusjonsmetoden Vi vil bevise at T (n) = O(n 2 ) Dette krever at T (n) = cn 2 Vi bytter ut T (n) med cn 2 og Θ(n) med kn (for den interne kostnaden) T (n) = c(n 1) 2 + kn = cn 2 2cn + c + kn = cn 2 c(2n 1) + kn cn 2, så lenge n 1 og c 1 Begrensingen kommer fra å løse ulikheten c(2n 1) + kn 0 c(2n 1) kn c kn 2n 1 For grensetilfellet så prøver vi T (1) = 1 og c 1 2 = c Vi kan derfor si at n 0 = 1 og c = 1 og at vi har bevist at T (n) = O(n 2 ) Oppgave 3 I denne oppgaven skal dere implementere og analysere algoritmen Square- Matrix-Multiply-Recursive som vi gikk gjennom i forelesningen Her kreves det ideelt sett at de har kommet frem til en implementasjon som ligner (har de samme operasjonene i samme rekkefølge) på pseudokodeutgaven gitt under Det er i grunn nokså enkelt å konvertere pseudokoden til faktisk kode, men studentene har hatt en rekke problemer i forhold til hvordan man partisjonerer med indekser 7
8 Analysen bør være mest mulig lik med analysen gjort i fasiten (jeg har sagt at de kan utelate basistilfellet av det matematiske beviset) Square-Matrix-Multiply-Recursive(A, B) 1 n = Arows 2 let C be a new n n matrix 3 if n == 1 4 c 11 = a 11 b 11 5 else partition A, B, and C 6 C 11 = Square-Matrix-Multiply-Recursive(A 11, B 11 ) +Square-Matrix-Multiply-Recursive(A 12, B 21 ) 7 C 12 = Square-Matrix-Multiply-Recursive(A 11, B 12 ) +Square-Matrix-Multiply-Recursive(A 12, B 22 ) 8 C 21 = Square-Matrix-Multiply-Recursive(A 21, B 11 ) +Square-Matrix-Multiply-Recursive(A 22, B 21 ) 9 C 22 = Square-Matrix-Multiply-Recursive(A 21, B 12 ) +Square-Matrix-Multiply-Recursive(A 22, B 22 ) 10 return C Siden matrisene A og B er n n matriser kan de representeres med vanlige arrays på størrelse n 2 Koeffisienten c ij in matrise (0-indeksert) aksesseres da i arrayet a med a[in + j] Dere skal implementere to utgaver, en som kopierer delmatrisene inn i nye arrays, og en som bruker to indeks-variable for å angi hvilken del av matrisen det jobbes med Den første utgaven som kopierer inn i nye matriser er implementert i funksjonene under P a r t i s j o n e r e r en matrise m med ø s t r r e l s e n x n t i l f i r e nye d e l m a t r i s e r med ø s t r r e l s e n/2 x n /2 Det a l l o k e r e s n y t t minne f o r hver d e l m a t r i s e og i n n h o l d e t f r a f o r e l d e r matrisen k o p i e r e s inn public s t a t i c f l o a t [ ] [ ] p a r t i t i o n ( f l o a t [ ] m, int n ) { int partn = n / 2 ; // Den nye ø s t r r e l s e n f l o a t [ ] [ ] p a r t s = { // De nye d e l m a t r i s e n e new f l o a t [ partn partn ], new f l o a t [ partn partn ], new f l o a t [ partn partn ], new f l o a t [ partn partn ] ; Kopierer inn i n n h o l d e t f r a m inn i ø t i l h r e n d e d e l m a t r i s e for ( int p = 0 ; p < p a r t s l e n g t h ; p++) { int pi = p / 2 ; // 0 f o r ø f r s t e d e l r a d i m, 1 f o r andre int pj = p % 2 ; // 0 f o r ø f r s t e d e l k o l o n n e i m, 1 f o r andre for ( int i = 0 ; i < partn ; i ++) for ( int j = 0 ; j < partn ; j++) p a r t s [ p ] [ i partn + j ] = m[ ( pi partn + i ) n + ( pj partn + j ) ] ; 8
9 return p a r t s ; Adderer i n n h o l d e t i a og b og l e g g e r r e s u l t a t e t i c public s t a t i c f l o a t [ ] f l o a t [ ] a, f l o a t [ ] b, f l o a t [ ] c ) { for ( int i = 0 ; i < a l e n g t h ; i ++) c [ i ] = a [ i ] + b [ i ] ; return c ; S e t t e r sammen f i r e d e l m a t r i s e r t i l en matrise Den k o p i e r e r i n n h o l d e t f r a d e l m a t r i s e n e i pars inn i matrisen m public s t a t i c f l o a t [ ] u n P a r t i t i o n ( f l o a t [ ] [ ] parts, f l o a t [ ] m, int n ) { int partn = n / 2 ; Kopierer inn i n n h o l d e t f r a d e l m a t r i s e n e inn åp k o r r e k t p l a s s i m for ( int p = 0 ; p < p a r t s l e n g t h ; p++) { int pi = p / 2 ; // 0 f o r ø f r s t e d e l r a d i m, 1 f o r andre int pj = p % 2 ; // 0 f o r ø f r s t e d e l k o l o n n e i m, 1 f o r andre for ( int i = 0 ; i < partn ; i ++) for ( int j = 0 ; j < partn ; j++) m[ ( pi partn + i ) n + ( pj partn + j ) ] = p a r t s [ p ] [ i partn + j ] ; return m; Rekursiv m u l t i p l i k a s j o n s m e t o d e implementert d i r e k t e f r a pseudokoden g i t t i f o r e l e s n i n g og f a g b o k a Den e n e s t e f o r s k j e l l e n er at j e g har l a g t t i l ø s t r r e l s e n n som e t argument og k a l l e t t i l u n P a r t i t i o n f o r å s e t t c sammen public s t a t i c f l o a t [ ] m u l t i p l y ( f l o a t [ ] a, f l o a t [ ] b, int n ) { f l o a t [ ] c = new f l o a t [ n n ] ; i f ( n == 1) c [ 0 ] = a [ 0 ] b [ 0 ] ; else { int partn = n / 2 ; 9
10 f l o a t [ ] [ ] aparts = p a r t i t i o n ( a, n ) ; f l o a t [ ] [ ] bparts = p a r t i t i o n ( b, n ) ; f l o a t [ ] [ ] cparts = p a r t i t i o n ( c, n ) ; m u l t i p l y ( aparts [ 0 ], bparts [ 0 ], partn ), m u l t i p l y ( aparts [ 1 ], bparts [ 2 ], partn ), cparts [ 0 ] ) ; m u l t i p l y ( aparts [ 0 ], bparts [ 1 ], partn ), m u l t i p l y ( aparts [ 1 ], bparts [ 3 ], partn ), cparts [ 1 ] ) ; m u l t i p l y ( aparts [ 2 ], bparts [ 0 ], partn ), m u l t i p l y ( aparts [ 3 ], bparts [ 2 ], partn ), cparts [ 2 ] ) ; m u l t i p l y ( aparts [ 2 ], bparts [ 1 ], partn ), m u l t i p l y ( aparts [ 3 ], bparts [ 3 ], partn ), cparts [ 3 ] ) ; u n P a r t i t i o n ( cparts, c, n ) ; return c ; Den andre versjonen av algoritmen som bruker indekser for å angi en delmatrise er gitt i listingene under Denne har vært vanskelig for studentene å få til, så her har det kommet frem en rekke interessante variasjoner Denne k l a s s e n b r u k e s t i l å r e p r e s e n t e r e enten en matrise e l l e r en d e l m a t r i s e En nxn matrise a : i =0, j =0, n=n, mn=n, m=new f l o a t [ n n ] En t o p r i g h t d e l m a t r i s e av matrisen a : i =0, j =(a n /2), n=(a n /2), mn=a mn, m=a m private s t a t i c class SubMatrix { public int i, j, n, mn; // Startrad, // S t a r t k o l o n n e, // ø D e l m a t r i s e S t r r e l s e // ø M a t r i s e S t r r e l s e public f l o a t [ ] m; // Matrisen l a g r e t som en array public SubMatrix ( int i, int j, int n, f l o a t [ ] m, int mn) { this i = i ; this j = j ; this n = n ; this m = m; this mn = mn; 10
11 Tar en ( d e l ) matrise og d e l e r den opp i f i r e d e l e r Delene b l i r r e t u r n e r t i e t array i ø f l g e n d e ø r e k k e f l g e : t o p l e f t, t o p r i g h t, b o t t o m l e f t, b o t t o m r i g h t public s t a t i c SubMatrix [ ] p a r t i t i o n ( SubMatrix m) { int partn = m n / 2 ; SubMatrix [ ] p a r t s = { new SubMatrix (m i, m j, partn, mm, mmn), new SubMatrix (m i, partn + m j, partn, mm, mmn), new SubMatrix ( partn + m i, m j, partn, mm, mmn), new SubMatrix ( partn + m i, partn + m j, partn, mm, mmn) ; return p a r t s ; Adderer i n n h o l d e t i d e l m a t r i s e n e a og b og l e g g e r r e s u l t a t e t åp r i k t i g p l a s s i d e l m a t r i s e n c public s t a t i c SubMatrix SubMatrix a, SubMatrix b, SubMatrix c ) { for ( int i = 0 ; i < a n ; i ++) for ( int j = 0 ; j < a n ; j++) c m[ ( c i + i ) c mn + c j + j ] = a m[ ( a i + i ) a mn + a j + j ] + b m[ ( b i + i ) b mn + b j + j ] ; return c ; Rekursiv metode f o r m a t r i s e m u l t i p l i k a s j o n, implementert d i r e k t e e t t e r pseudokoden i boka Legg merke t i l at SubMatrix k l a s s e n b rukes åbde t i l å r e p r e s e n t e r e m a t r i s e r og d e l m a t r i s e r public s t a t i c SubMatrix m u l t i p l y ( SubMatrix a, SubMatrix b ) { SubMatrix c = new SubMatrix ( 0, 0, a n, new f l o a t [ a n a n ], a n ) ; i f ( c n == 1) c m[ c i c mn + c j ] = a m[ a i a mn + a j ] b m[ b i b mn + b j ] ; else { SubMatrix [ ] aparts = p a r t i t i o n ( a ) ; SubMatrix [ ] bparts = p a r t i t i o n ( b ) ; SubMatrix [ ] cparts = p a r t i t i o n ( c ) ; m u l t i p l y ( aparts [ 0 ], bparts [ 0 ] ), m u l t i p l y ( aparts [ 1 ], bparts [ 2 ] ), cparts [ 0 ] ) ; m u l t i p l y ( aparts [ 0 ], bparts [ 1 ] ), m u l t i p l y ( aparts [ 1 ], bparts [ 3 ] ), cparts [ 1 ] ) ; 11
12 m u l t i p l y ( aparts [ 2 ], bparts [ 0 ] ), m u l t i p l y ( aparts [ 3 ], bparts [ 2 ] ), cparts [ 2 ] ) ; m u l t i p l y ( aparts [ 2 ], bparts [ 1 ] ), m u l t i p l y ( aparts [ 3 ], bparts [ 3 ] ), cparts [ 3 ] ) ; return c ; Flere studenter har kommet fram til en alternativ algoritme som også fungerer ved å bruke indekser for å angi delmatriser Denne versjonen er lik den som bruker indekser over bortsett fra at den ikke bruker en metode for å addere Den akkumulerer i stedet i basistilfellet Veldig elegant i grunn, siden man da slipper å allokere en ny c i hvert rekursive kall Rekursiv metode f o r m a t r i s e m u l t i p l i k a s j o n som s k i l l e r seg f r a pseudokoden g i t t i boka F o r s k j e l l e n l i g g e r i hvordan adderingen b l i r ø u t f r t B a s i s t i l f e l l e t ( hvor n=1) t a r åhnd om adderingen i s t e d e t f o r at v i ø u t f r e r adderingen i en egen metoden Dette har f o r t r i n n e t at man s l i p p e r å a l l o k e r e en ny matrise f o r c åp h v e r t åniv, men d e t er v i k t i g å merke seg at denne a l g o r i t m e n i k k e l e n g e r den samme som b l i r b e s k r e v e t av pseudokoden ( selvom de ø l s e r d e t samme problemet ) public s t a t i c SubMatrix m u l t i p l y ( SubMatrix a, SubMatrix b, SubMatrix c ) { i f ( c n == 1) c m[ c i c mn + c j ] += a m[ a i a mn + a j ] b m[ b i b mn + b j ] ; else { SubMatrix [ ] aparts = p a r t i t i o n ( a ) ; SubMatrix [ ] bparts = p a r t i t i o n ( b ) ; SubMatrix [ ] cparts = p a r t i t i o n ( c ) ; m u l t i p l y ( aparts [ 0 ], bparts [ 0 ], cparts [ 0 ] ) ; m u l t i p l y ( aparts [ 1 ], bparts [ 2 ], cparts [ 0 ] ) ; m u l t i p l y ( aparts [ 0 ], bparts [ 1 ], cparts [ 1 ] ) ; m u l t i p l y ( aparts [ 1 ], bparts [ 3 ], cparts [ 1 ] ) ; m u l t i p l y ( aparts [ 2 ], bparts [ 0 ], cparts [ 2 ] ) ; m u l t i p l y ( aparts [ 3 ], bparts [ 2 ], cparts [ 2 ] ) ; m u l t i p l y ( aparts [ 2 ], bparts [ 1 ], cparts [ 3 ] ) ; m u l t i p l y ( aparts [ 3 ], bparts [ 3 ], cparts [ 3 ] ) ; return c ; Dere skal ressonere dere frem til en recurrence-ligning for begge utgavene, og forklare hvorfor samme ligning kan brukes til å beskrive begge to Dere skal så gjøre en analyse ved hjelp av rekursjonstrær slik at dere kommer frem til en gjetning for en funksjon som beskriver kjøretiden til algoritmen Denne skal 12
13 dere så verifisere både med substitusjonsmetoden (matematisk induksjon) og masterteoremet Vi holder oss først til de to tenkte versjonene av algoritmen (ikke den som noen studenter har kommet frem til selv) Her må de ha fått med seg at kopieringssteget i den første versjonen ikke endrer recurrenceligningen siden den er av samme orden (Θ(n 2 )) som adderingen Vi får bare 2Θ(n 2 ) som kan transformeres til Θ(n 2 ) Vi ender derfor opp med følgende recurrenceligning for de to første versjonene { Θ(1) if n = 1 T (n) = 8T (n/2) + Θ(n 2 ) if n > 1 Den alternative algoritmen av indeksversjonen hvor adderingen er flyttet til basistilfellet endrer derimot recurrenceligningen Så her faller faller kravet om samme recurrenceligning for både kopierings- og indeks-utgaven gjennom Her får vi følgende recurrenceligning for indeksversjonen { Θ(1) if n = 1 T (n) = 8T (n/2) + Θ(1) if n > 1 Et tenkt rekursjonstre for begge disse recurrenceligningene vil ha 8 forgreininger fra hver node Vi får derfor 8 h antall barn på det nederste nivået (n = 1) Høyden h på rekursjonstreet er kan finnes ved å løse ligningen n/2 h = 1 n 2 h = 1 2 h = n h = log 2 n Vi får derfor 8 log 2 n = n log 2 8 = n 3 antall bladnoder med Θ(1) kjøretid ie Θ(n 3 ) kjøretid for alle barna Kostnaden internt i hver node avhenger av leddet Θ(n 2 ) i recurrenceligningen På rotnivået får vi en kostnad på cn 2, på første nivå får vi (8/2)cn 2, på andre nivå får (8/2) 2 cn 2 osv Dette gir oss en sum log 2 n 1 i=0 cn 2 Dette leddet har lavere kostnad (lavere orden) enn Θ(n 3 ) som er kostnaden for kjøringen av alle basistilfellene Vi har derfor kommet frem til at kjøretiden til algoritmen må være Θ(n 3 ) Dette gjelder også for den alternative algoritmen som noen studenter har kommet frem til, siden den eneste forskjellen fra resonnementet over er at summen for kostnadene internt i nodene bare blir log 2 n 1 i=0 cn Vi beviser at denne gjetningen er korrekt ved å bruke substitusjonsmetoden Vi må derfor bevise at T (n) cn 3 for en konstant c > 0 Vi setter inn gjetningen i recurrenceligningen og transformerer for å bevise det rekursive tilfellet 13
14 T (n) = 8c(n/2) 3 + kn 2 = cn 3 + kn 2 Dette vil ikke lede frem til ønsket form (T (n) cn 3 ) siden kn 2 leddet lager problemer Vi modifiserer derfor gjetningen ved å trekke fra et lavere ordens ledd Den nye gjetningen er T (n) = O(n 3 n 2 ) og vi må bevise at T (n) c(n 3 n 2 ) T (n) = 8c ( (n/2) 3 (n/2) 2) + kn 2 = cn 3 2cn 2 + kn 2 cn 3 cn 2, så lenge c k Da gjenstår bare basistilfellet T (1) = Θ(1) = 1 c( ) = 0 ie T (1) > c( ) som ikke oppfyller kravet Vi prøver derfor med n = 2 T (2) = 8T (1) + k2 2 = 8m + 4k Vi får c( ) = 4c for vår gjetning Vi vet da at T (n) cn 3 så lenge c 2m + k hvor k og m er konstantleddene for henholdsvis den interne- og basis-kostnaden Vi har da bevist at kjøretiden til algoritmen er Θ(n 3 ) med substitusjonsmetoden Vi skal også verifisere dette beviset med masterteoremet Vi må da sammenligne n log b a med Θ(n 2 ) n log b a = n log 2 8 = n 3 Siden n 3 er polynomisk større enn Θ(n 2 ) så har vi verifisert kjøretiden for algoritmen Θ(n 3 ) med masterteoremet Selv om kopieringsutgaven har en høyere kostnad enn indeksutgaven har begge utgaver samme asymptotisk notasjon Det skiller bare en konstant mellom de to utgavene når vi analyserer kjøretiden Er dette også tilfellet i praksis? Test de to utgavene av algoritmen med forskjellige inputstørrelser og bedøm om det bare skiller en konstant mellom de eller ikke Diskuter resultatet og legg vekt på å forklare hvorfor det eventuelt ikke stemmer at det bare skiller en konstant 14
Løsningsforslag for Obligatorisk Oppgave 2. Algoritmer og Datastrukturer ITF20006
Løsningsforslag for Obligatorisk Oppgave 2 Algoritmer og Datastrukturer ITF20006 Lars Vidar Magnusson Frist 28.02.14 Den andre obligatoriske oppgaven tar for seg forelesning 5, 6, og 7 som dreier seg om
DetaljerLøsningsforslag for Obligatorisk Oppgave 3. Algoritmer og Datastrukturer ITF20006
Løsningsforslag for Obligatorisk Oppgave 3 Algoritmer og Datastrukturer ITF20006 Lars Vidar Magnusson Frist 28.03.14 Den tredje obligatoriske oppgaven tar for seg forelesning 9 til 13, som dreier seg om
DetaljerDivide-and-Conquer. Lars Vidar Magnusson 13.1.2015
Divide-and-Conquer Lars Vidar Magnusson 13.1.2015 Kapittel 4 Maximum sub-array problemet Matrix multiplikasjon Analyse av divide-and-conquer algoritmer ved hjelp av substitusjonsmetoden Divide-and-Conquer
DetaljerDivide-and-Conquer II
Divide-and-Conquer II Lars Vidar Magnusson 1712014 Kapittel 4 Analyse av divide-and-conquer algoritmer ved hjelp av rekursjonstrær Analyse av divide-and-conquer algoritmer ved hjelp av masterteoremet Løse
DetaljerKompleksitetsanalyse
:: Forside Kompleksitetsanalyse Åsmund Eldhuset asmunde *at* stud.ntnu.no folk.ntnu.no/asmunde/algdat/ Først: studietips OpenCourseWare fra MIT Forelesninger tatt opp på video Algoritmekurset foreleses
DetaljerForelesning 9 mandag den 15. september
Forelesning 9 mandag den 15. september 2.6 Største felles divisor Definisjon 2.6.1. La l og n være heltall. Et naturlig tall d er den største felles divisoren til l og n dersom følgende er sanne. (1) Vi
DetaljerMAT1030 Forelesning 30
MAT1030 Forelesning 30 Kompleksitetsteori Roger Antonsen - 19. mai 2009 (Sist oppdatert: 2009-05-19 15:04) Forelesning 30: Kompleksitetsteori Oppsummering I dag er siste forelesning med nytt stoff! I morgen
DetaljerNITH PG4200 Algoritmer og datastrukturer Løsningsforslag Eksamen 4.juni 2013
NITH PG4200 Algoritmer og datastrukturer Løsningsforslag Eksamen 4.juni 20 ette løsningsforslaget er til tider mer detaljert enn det man vil forvente av en eksamensbesvarelse. et er altså ikke et eksempel
DetaljerRepetisjon: høydepunkter fra første del av MA1301-tallteori.
Repetisjon: høydepunkter fra første del av MA1301-tallteori. Matematisk induksjon Binomialteoremet Divisjonsalgoritmen Euklids algoritme Lineære diofantiske ligninger Aritmetikkens fundamentalteorem Euklid:
DetaljerKompleksitetsanalyse Helge Hafting 25.1.2005 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder
Helge Hafting 25.1.2005 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder Innhold 1 1 1.1 Hva er en algoritme?............................... 1 1.2
DetaljerNyGIV Regning som grunnleggende ferdighet
NyGIV Regning som grunnleggende ferdighet Yrkesfaglærere Hefte med utdelt materiell Tone Elisabeth Bakken 3.april 2014 På denne og neste fire sider er det kopier fra Tangentens oppgavehefte: MATEMATISKE
DetaljerNinety-nine bottles. Femte forelesning. I dagens forelesning: Mest matematiske verktøy. Først: Asymptotisk notasjon. Så: Rekurrensligninger.
I dagens forelesning: Mest matematiske verktøy. Først: Asymptotisk notasjon. Så: Rekurrensligninger. Hva slags kjøretid har denne sangen? Hvordan kan du formulere det som en rekurrensligning? Ninety-nine
DetaljerSpenntrær, oppsummert: Kruskal: Traverserer ikke. Plukker kanter i hytt og vær Prim: Legger alltid til den noden som er nærmest treet
Spenntrær, oppsummert: Kruskal: Traverserer ikke. Plukker kanter i hytt og vær Prim: Legger alltid til den noden som er nærmest treet 1 A B D C Prim: Kruskal: AB, BD, DC DC, AB, BD 2 0 + 1 + + n 1; antall
DetaljerHøgskoleni østfold EKSAMEN. 4 dobbeltsidige ark med notater Lars Magnusson
Høgskoleni østfold EKSAMEN Emnekode: ITF 20006 Emne: Algoritmer og Datastrukturer Dato: 22.05.2015 Eksamenstid: kl 09.00 til kl 13.00 Hjelpemidler: Faglærer: 4 dobbeltsidige ark med notater Lars Magnusson
DetaljerVekst av planteplankton - Skeletonema Costatum
Vekst av planteplankton - Skeletonema Costatum Nivå: 9. klasse Formål: Arbeid med store tall. Bruke matematikk til å beskrive naturfenomen. Program: Regneark Referanse til plan: Tall og algebra Arbeide
DetaljerForelesning 28: Kompleksitetsteori
MAT1030 Diskret Matematikk Forelesning 28: Kompleksitetsteori Roger Antonsen Institutt for informatikk, Universitetet i Oslo Forelesning 28: Kompleksitetsteori 12. mai 2009 (Sist oppdatert: 2009-05-13
DetaljerLøsningsforslag til obligatorisk oppgave i MAT 1100, H-04
Løsningsforslag til obligatorisk oppgave i MAT 00, H-04 Oppgave : a) Vi har zw ( + i )( + i) + i + i + i i og + i + i ( ) + i( + ) z w + i + i ( + i )( i) ( + i)( i) i + i i i ( i ) ( + ) + i( + ) + +
DetaljerAlgoritmer og datastrukturer Kapittel 1 - Delkapittel 1.8
Delkapittel 1.8 Algoritmeanalyse Side 1 av 12 Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.8 1.8 Algoritmeanalyse 1.8.1 En algoritmes arbeidsmengde I Delkapittel 1.1 ble det definert og diskutert
DetaljerMAT1030 Diskret matematikk. Kompleksitetsteori. Forelesning 29: Kompleksitetsteori. Dag Normann KAPITTEL 13: Kompleksitetsteori. 7.
MAT1030 Diskret matematikk Forelesning 29: Dag Normann KAPITTEL 13: Matematisk Institutt, Universitetet i Oslo 7. mai 2008 MAT1030 Diskret matematikk 7. mai 2008 2 Meldinger: Det blir hovedsaklig tavleregning
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 12. desember 2003 Tid for eksamen: 09.00 12.00 Oppgavesettet er på 5 sider. Vedlegg: INF3140/4140 Modeller for parallellitet
DetaljerHeapsort. Lars Vidar Magnusson Kapittel 6 Heaps Heapsort Prioritetskøer
Heapsort Lars Vidar Magnusson 24.1.2014 Kapittel 6 Heaps Heapsort Prioritetskøer Sorterings Problemet Sorterings problemet er et av de mest fundementalske problemene innen informatikken. Vi sorterer typisk
DetaljerQuicksort. Lars Vidar Magnusson Kapittel 7 Quicksort Randomisert Quicksort Analyse av Quicksort
Quicksort Lars Vidar Magnusson 29.1.2014 Kapittel 7 Quicksort Randomisert Quicksort Analyse av Quicksort Om Quicksort Quicksort er en svært populær sorteringsalgoritme. Algoritmen har i verstefall en kjøretid
DetaljerTMA4140 Diskret matematikk Høst 2011 Løsningsforslag Øving 7
Norges teknisknaturvitenskapelige universitet Institutt for matematiske fag Side 1 av?? TMA4140 Diskret matematikk Høst 011 Løsningsforslag Øving 7 7-1-10 a) Beløpet etter n 1 år ganges med 1.09 for å
DetaljerFasit og løsningsforslag til Julekalenderen for mellomtrinnet
Fasit og løsningsforslag til Julekalenderen for mellomtrinnet 01.12: Svaret er 11 For å få 11 på to terninger kreves en 5er og en 6er. Siden 6 ikke finnes på terningen kan vi altså ikke få 11. 02.12: Dagens
DetaljerAlgoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2
Delkapittel 9.2 Rød-svarte og 2-3-4 trær Side 1 av 16 Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2 9.2 Rød-svarte og 2-3-4 trær 9.2.1 B-tre av orden 4 eller 2-3-4 tre Et rød-svart tre og et
DetaljerHva er en algoritme? Har allerede sett på mange algoritmer til nå i IT1101. Forholdet mellom en algoritme og et program. Algoritme program prosess
IT1101 Informatikk basisfag, dobbeltime 2/10 Hva er en algoritme? Fremgangsmåte for noe Hittil: Datarepresentasjon Datamanipulasjon Datamaskinarkutektur hvordan maskinen jobber Operativsystem Program som
DetaljerKjøretidsanalyse. Hogne Jørgensen
Kjøretidsanalyse Hogne Jørgensen Program Presentasjon/tips til Øving 5 Kompleksitetsanalyse Kahoot Rekurrensligninger Kahoot 2 Øving 5 Veibygging i Ogligogo Finne dyreste kant i minimalt spenntre Prim
DetaljerForelesning 22 MA0003, Mandag 5/11-2012 Invertible matriser Lay: 2.2
Forelesning 22 M0003, Mandag 5/-202 Invertible matriser Lay: 2.2 Invertible matriser og ligningssystemet x b Ligninger på formen ax b, a 0 kan løses ved å dividere med a på begge sider av ligninger, noe
DetaljerALGORITMER OG DATASTRUKTURER
Eksamen i ALGORITMER OG DATASTRUKTURER Høgskolen i Østfold Avdeling for Informatikk og Automatisering Onsdag 11.desember, 1996 Kl. 9.00-15.00 Tillatte hjelpemidler: Alle trykte og skrevne. Kalkulator.
DetaljerMer om likninger og ulikheter
Mer om likninger og ulikheter Studentene skal kunne utføre polynomdivisjon anvende nullpunktsetningen og polynomdivisjon til faktorisering av polynomer benytte polynomdivisjon til å løse likninger av høyere
DetaljerAlgoritmer - definisjon
Algoritmeanalyse Algoritmer - definisjon En algoritme er en beskrivelse av hvordan man løser et veldefinert problem med en presist formulert sekvens av et endelig antall enkle, utvetydige og tidsbegrensede
DetaljerLO118D Forelesning 2 (DM)
LO118D Forelesning 2 (DM) Kjøretidsanalyse, matematisk induksjon, rekursjon 22.08.2007 1 Kjøretidsanalyse 2 Matematisk induksjon 3 Rekursjon Kjøretidsanalyse Eksempel Finne antall kombinasjoner med minst
DetaljerDiagnosekart for oblig 2, INF3/4130 h07
Diagnosekart for oblig 2, INF3/4130 h07 Dag Sverre Seljebotn 1. november 2007 Dette er et dokument jeg har skrivd for å gjøre det enklere å gi tilbakemelding på obligene, siden så mange ting går igjen
DetaljerEt eksempel: Åtterspillet
Trær Et eksempel: Åtterspillet To spillere som «trekker» annenhver gang I hvert trekk velges et av tallene 1, 2, 3, men ikke tallet som motspiller valgte i forrige trekk Valgte tall summeres fortløpende
DetaljerAlgoritmer og Datastrukturer
Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Torsdag 3. november 2, kl. 9. - 14. Hjelpemidler: Alle trykte og skrevne hjelpemidler. Kalkulator.
DetaljerMesteparten av kodingen av Donkey Kong skal du gjøre selv. Underveis vil du lære hvordan du lager et enkelt plattform-spill i Scratch.
Donkey Kong Ekspert Scratch Introduksjon Donkey Kong var det første virkelig plattform-spillet da det ble gitt ut i 1981. I tillegg til Donkey Kong var det også her vi første gang ble kjent med Super Mario
DetaljerUttrykket 2 kaller vi en potens. Eksponenten 3 forteller hvor mange ganger vi skal multiplisere grunntallet 2 med seg selv. Dermed er ) ( 2) 2 2 4
9.9 Potenslikninger Uttrykket kaller vi en potens. Eksponenten forteller hvor mange ganger vi skal multiplisere grunntallet med seg selv. Dermed er 8 Når vi skriver 5, betyr det at vi skal multiplisere
DetaljerLøsningsforslag EKSAMEN
1 Løsningsforslag EKSAMEN Emnekode: ITF20006 000 Dato: 18. mai 2012 Emne: Algoritmer og datastrukturer Eksamenstid: 09:00 til 13:00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Faglærer: Gunnar Misund
DetaljerTallet 0,04 kaller vi prosentfaktoren til 4 %. Prosentfaktoren til 7 % er 0,07, og prosentfaktoren til 12,5 % er 0,125.
Prosentregning Når vi skal regne ut 4 % av 10 000 kr, kan vi regne slik: 10 000 kr 4 = 400 kr 100 Men det er det samme som å regne slik: 10 000 kr 0,04 = 400 kr Tallet 0,04 kaller vi prosentfaktoren til
DetaljerEKSAMEN. Dato: 18. mai 2017 Eksamenstid: 09:00 13:00
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 18. mai 2017 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Kalkulator Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet
DetaljerVurdering. Hva, hvordan, hvorfor
Vurdering Hva, hvordan, hvorfor Program for dagene Vurdering, testing og kvalitetssikring av matematikkundervisning og matematikklæring Med utgangspunkt i læreplanen, læreboka, Arbeidsmåter sammen med
DetaljerAlgoritmeanalyse. (og litt om datastrukturer)
Algoritmeanalyse (og litt om datastrukturer) Datastrukturer definisjon En datastruktur er den måten en samling data er organisert på. Datastrukturen kan være ordnet (sortert på en eller annen måte) eller
DetaljerOrdliste. Obligatorisk oppgave 1 - Inf 1020
Ordliste. Obligatorisk oppgave 1 - Inf 1020 I denne oppgaven skal vi tenke oss at vi vil holde et register over alle norske ord (med alle bøyninger), og at vi skal lage operasjoner som kan brukes til f.
DetaljerKorteste Vei II. Lars Vidar Magnusson 11.4.2014. Kapittel 24 Bellman-Ford algoritmen Dijkstra algoritmen
Korteste Vei II Lars Vidar Magnusson 11.4.2014 Kapittel 24 Bellman-Ford algoritmen Dijkstra algoritmen Bellman-Ford Algoritmen Bellman-Ford er en single-source korteste vei algoritme. Den tillater negative
DetaljerProsent. Det går likare no! Svein H. Torkildsen, NSMO
Prosent Det går likare no! Svein H. Torkildsen, NSMO Enkelt opplegg Gjennomført med ei gruppe svakt presterende elever etter en test som var satt sammen av alle prosentoppgavene i Alle Teller uansett nivå.
DetaljerLøsnings forslag i java In115, Våren 1998
Løsnings forslag i java In115, Våren 1998 Oppgave 1 // Inne i en eller annen klasse private char S[]; private int pardybde; private int n; public void lagalle(int i) if (i==n) bruks(); else /* Sjekker
DetaljerMat og livsstil 2. Aktuelle kompetansemål. Beskrivelse av opplegget. Utstyr ARTIKKEL SIST ENDRET: 01.08.2016. Årstrinn: 8-10.
Mat og livsstil 2 I dette undervisningsopplegget bruker en regning som grunnleggende ferdighet i faget mat og helse. Regning blir brukt for å synliggjøre energiinnholdet i en middagsrett laget på to ulike
DetaljerFasit - Oppgaveseminar 1
Fasit - Oppgaveseminar Oppgave Betrakt konsumfunksjonen = z + (Y-T) - 2 r 0 < 0 Her er Y bruttonasjonalproduktet, privat konsum, T nettoskattebeløpet (dvs skatter og avgifter fra private til det
DetaljerSKOLEEKSAMEN I. SOS4010 Kvalitativ metode. 19. oktober 2015 4 timer
SKOLEEKSAMEN I SOS4010 Kvalitativ metode 19. oktober 2015 4 timer Ingen hjelpemidler, annet enn ordbøker som er kontrollert av SV-infosenter, er tillatt under eksamen. Sensur for eksamen faller 12. november
DetaljerGrunnleggende Grafalgoritmer
Grunnleggende Grafalgoritmer Lars Vidar Magnusson 19.3.2014 Kapittel 22 Representere en graf Bredde-først søk Grafer i Informatikken Problem med grafer går ofte igjen i informatikkens verden, så det å
DetaljerTyngdekraft og luftmotstand
Tyngdekraft og luftmotstand Dette undervisningsopplegget synliggjør bruken av regning som grunnleggende ferdighet i naturfag. Her blir regning brukt for å studere masse, tyngdekraft og luftmotstand. Opplegget
DetaljerKapittel 4: Logikk (predikatlogikk)
MAT1030 Diskret Matematikk Forelesning 7: Logikk, predikatlogikk Roger Antonsen Institutt for informatikk, Universitetet i Oslo Kapittel 4: Logikk (predikatlogikk) 10. februar 2009 (Sist oppdatert: 2009-02-11
DetaljerLars Vidar Magnusson
B-Trær Lars Vidar Magnusson 5.3.2014 Kapittel 18 B-trær Standard operasjoner Sletting B-Trær B-trær er balanserte trær som er designet for å fungere bra på sekundære lagringsmedium e.g. harddisk. Ligner
DetaljerINF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel )
INF2220: Forelesning 1 Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel 4.1-4.3 + 4.6) PRAKTISK INFORMASJON 2 Praktisk informasjon Kursansvarlige Ragnhild Kobro Runde (ragnhilk@ifi.uio.no)
DetaljerOppgave 1. Sekvenser (20%)
Det matematisk-naturvitenskapelige fakultet UNIVERSITETET I BERGEN Eksamen i emnet I 20 - Algoritmer, datastrukturer og programmering Mandag 2.Mai 200, kl. 09-5. Ingen hjelpemidler tillatt. Oppgavesettet
Detaljer13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER
.9.22 LITT OM OPPLEGGET INF EKSTRATILBUD Stoff fra uke - 2. September 22 Siri Moe Jensen Målgruppe: De som mangler forståelse for konseptene gjennomgått så langt. Trening får du ved å jobbe med oppgaver,
DetaljerNASJONALE PRØVER 2015. En presentasjon av resultatene til 5.trinn ved Jåtten skole, skoleåret 2015-16
NASJONALE PRØVER 2015 En presentasjon av resultatene til 5.trinn ved Jåtten skole, skoleåret 2015-16 Gjennomføring av nasjonale prøver 2015 Nasjonale prøver for 5.trinn ble gjennomført i oktober 2015.
DetaljerUendelige rekker. Konvergens og konvergenskriterier
Uendelige rekker. Konvergens og konvergenskriterier : Et absolutt nødvendig, men ikke tilstrekkelig vilkår for konvergens er at: lim 0 Konvergens vha. delsummer :,.,,,. I motsatt fall divergerer rekka.
DetaljerPRIMTALL FRA A TIL Å
PRIMTALL FRA A TIL Å VEILEDER FOR FORELDRE MED BARN I 5. 7. KLASSE EMNER Side 1 Innledning til primtall P - 2 2 Grunnleggende om primtall P - 2 3 Hvordan finne et primtall P - 5 Innledning til primtall
DetaljerRekursiv programmering
Rekursiv programmering Babushka-dukker En russisk Babushkadukke er en sekvens av like dukker inne i hverandre, som kan åpnes Hver gang en dukke åpnes er det en mindre utgave av dukken inni, inntil man
DetaljerAlgoritmer og datastrukturer Kapittel 9 - Delkapittel 9.1
Delkapittel 9.1 Generelt om balanserte trær Side 1 av 13 Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.1 9.1 Generelt om balanserte trær 9.1.1 Hva er et balansert tre? Begrepene balansert og
DetaljerFysikkolympiaden 1. runde 26. oktober 6. november 2015
Norsk Fysikklærerforening i samarbeid med Skolelaboratoriet Universitetet i Oslo Fysikkolympiaden. runde 6. oktober 6. november 05 Hjelpemidler: Tabell og formelsamlinger i fysikk og matematikk Lommeregner
DetaljerEKSAMEN Løsningsforslag. med forbehold om bugs :-)
1 EKSAMEN Løsningsforslag med forbehold om bugs :-) Emnekode: ITF20006 000 Dato: 20. mai 2011 Emne: Algoritmer og datastrukturer Eksamenstid: 09:00 til 13:00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater
DetaljerEKSAMEN med løsningsforslag
EKSAMEN med løsningsforslag Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: Eksamenstid: 20. mai 2009 kl 09.00 til kl 13.00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Kalkulator Faglærer:
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF 2220 Algoritmer og datastrukturer Eksamensdag: 8. desember 2016 Tid for eksamen: 09:00 13:00 (4 timer) Oppgavesettet er på:
DetaljerAlgoritmer og Datastrukturer
Eksamen i Algoritmer og Datastrukturer IAI 20102 Høgskolen i Østfold Avdeling for informatikk og automatisering Lødag 5. juni 2004, kl. 09.00-13.00 Hjelpemidler: Alle trykte og skrevne hjelpemidler. Kalkulator.
DetaljerEmnekode: LV121A Dato: 03.03.2005. Alle skrevne og trykte hjelpemidler
II ~ høgskolen i oslo Emne: Programmering i C++ Gruppe(r): EksamensoppgavenAntall sider (inkl. består av: forsiden):5 Emnekode: LV121A Dato: 03.03.2005 Antall oppgaver:3 Faglig veileder: Simen Hagen Eksamenstid:
DetaljerINF1010 notat: Binærsøking og quicksort
INF1010 notat: Binærsøking og quicksort Ragnhild Kobro Runde Februar 2004 I dette notatet skal vi ta for oss ytterligere to eksempler der rekursjon har en naturlig anvendelse, nemlig binærsøking og quicksort.
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF2810, Funksjonell Programmering Eksamensdag: Fredag 10. juni 2016 Tid for eksamen: 14.30 Oppgavesettet er på 5 sider (ekskl.
DetaljerOppgave 1 a. INF1020 Algoritmer og datastrukturer. Oppgave 1 b
Oppgave 1 1 a INF1020 Algoritmer og datastrukturer Forelesning 14: Gjennomgang av eksamen vår 2001 oppgave 1,2,4 Arild Waaler Institutt for informatikk, Universitetet i Oslo Oppgave 1 a Programmer en ikke-rekursiv
DetaljerAlgoritmer og Datastrukturer
Eksamen i Algoritmer og Datastrukturer IAI 20102 Høgskolen i Østfold Avdeling for informatikk og automatisering Lødag 5. juni 2004, kl. 09.00-13.00 LØSNINGSFORSLAG 1 Del 1 60% Oppgave 1.1-10% Forklar kort
DetaljerEKSAMEN. Emne: Algoritmer og datastrukturer
1 EKSAMEN Emnekode: ITF20006 000 Dato: 18. mai 2012 Emne: Algoritmer og datastrukturer Eksamenstid: 09:00 til 13:00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Faglærer: Gunnar Misund Oppgavesettet
DetaljerKorteste Vei I. Lars Vidar Magnusson 9.4.2014. Kapittel 24 Hvordan finne korteste vei Egenskaper ved korteste vei
Korteste Vei I Lars Vidar Magnusson 9.4.2014 Kapittel 24 Hvordan finne korteste vei Egenskaper ved korteste vei Korteste Vei Problemet I denne forelesningen skal vi se på hvordan vi kan finne korteste
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : INF1000 Grunnkurs i objektorientert programmering Eksamensdag : Fredag 2. desember 2005 Tid for eksamen : 14.30 17.30
DetaljerAlgoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2
Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2 11.2 Korteste vei i en graf 11.2.1 Dijkstras metode En graf er et system med noder og kanter mellom noder. Grafen kalles rettet Notasjon Verdien
DetaljerAlgoritmer og datastrukturer Kapittel 1 - Delkapittel 1.3
Delkapittel 1.3 Ordnede tabeller Side 1 av 70 Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.3 1.3 Ordnede tabeller 1.3.1 Permutasjoner En samling verdier kan settes opp i en rekkefølge. Hver
DetaljerSensorveiledning Oppgave 1
Sensorveiledning Oppgave 1 Figuren er riktig, og kandidaten skisserer en måte å jobbe med dette på som kan fungere for en elev. Figuren eller forklaringen er riktig. Unøyaktigheter ved håndtegning godtas.
DetaljerRekursjon. Binærsøk. Hanois tårn.
Rekursjon Binærsøk. Hanois tårn. Hvorfor sortering (og søking) er viktig i programmering «orden» i dataene vi blir fort lei av å lete poleksempel internett «alt» er søking og sortering alternativer til
DetaljerForberedelse til. Røyke slutt. Røyketelefonen
Forberedelse til Røyke slutt Røyketelefonen 800 400 85 Slik kan du forberede røykeslutt For å lykkes med å slutte å røyke bør du være godt forberedt. Å slutte å røyke er en prestasjon. Det krever samme
DetaljerHefte med problemløsingsoppgaver. Ukas nøtt 2008/2009. Tallev Omtveit Nordre Modum ungdomsskole
Hefte med problemløsingsoppgaver Ukas nøtt 2008/2009 Tallev Omtveit Nordre Modum ungdomsskole 1 Ukas nøtt uke 35 Sett hvert av tallene fra 1-9 i trekanten under, slik at summen langs hver av de tre linjene
DetaljerMAT 1120: Obligatorisk oppgave 2, H-09
MAT 1120: Obligatorisk oppgave 2, H-09 Innlevering: Senest fredag 30 oktober, 2009, kl1430, på Ekspedisjonskontoret til Matematisk institutt (7 etasje NHA) Du kan skrive for hånd eller med datamaskin,
DetaljerObligatorisk oppgave i MAT 1100, H-03 Løsningsforslag
Oppgave : Obligatorisk oppgave i MAT, H- Løsningsforslag a) Vi skal regne ut dx. Substituerer vi u = x, får vi du = x dx. De xex nye grensene er gitt ved u() = = og u() = = 9. Dermed får vi: 9 [ ] 9 xe
DetaljerEKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 9. mai 2016 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet består
DetaljerEKSAMEN. Algoritmer og datastrukturer
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: Eksamenstid: 20. mai 2009 kl 09.00 til kl 13.00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Kalkulator Faglærer: Gunnar Misund
DetaljerLØSNINGSFORSLAG SIF5015 DISKRET MATEMATIKK Onsdag 18. desember 2002
Norges teknisk naturvitenskapelige universitet Institutt for matematiske fag Side av 7 LØSNINGSFORSLAG SIF55 DISKRET MATEMATIKK Onsdag 8. desember 22 Oppgave a) Vi vil ha 77x (mod 3), så vi trenger en
DetaljerEvaluering av kollokviegrupper i matematikk og programmering høsten 2014 28 jenter har svart på evalueringen
Evaluering av kollokviegrupper i matematikk og programmering høsten 2014 28 jenter har svart på evalueringen 1. Hvorfor meldte du deg på dette tilbudet? Tenkte det ville være lurt med litt ekstra hjelp
DetaljerKapittel 1. Potensregning
Kapittel. Potensregning I potensregning skriver vi tall som potenser og forenkler uttrykk som inneholder potenser. Dette kapitlet handler blant annet om: Betydningen av potenser som har negativ eksponent
DetaljerHøyder på elliptiske kurver og faktorisering. Kristian Gjøsteen, NTNU Oppdatert 1. november 2002
Høyder på elliptiske kurver og faktorisering Kristian Gjøsteen, NTNU Oppdatert 1. november 2002 2 Lenstras faktoriseringsalgoritme Faktoriseringsproblemet: n = p α 1 1 pα K K skal faktoriseres. Lenstras
DetaljerLøsningsforslag Øving 5 TMA4140 Diskret matematikk Høsten 2010
Løsningsforslag Øving 5 TMA4140 Diskret matematikk Høsten 2010 1. a) Ingen andre tall enn en deler en, og en deler fire, så (1, 4) = 1 b) 1 c) 7 er et primtall og 7 er ikke en faktor i 41, så største felles
DetaljerLabyrint Introduksjon Scratch Lærerveiledning. Steg 1: Hvordan styre figurer med piltastene
Labyrint Introduksjon Scratch Lærerveiledning Introduksjon I dette spillet vil vi kontrollere en liten utforsker mens hun leter etter skatten gjemt inne i labyrinten. Dessverre er skatten beskyttet av
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF2220 Algoritmer og datastrukturer Eksamensdag: 16. desember 2013 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 8 sider.
DetaljerNORGES INFORMASJONSTEKNOLOGISKE HØGSKOLE PG4200 Algoritmer og datastrukturer
Oppgavesettet består av 7 (syv) sider. NORGES INFORMASJONSTEKNOLOGISKE HØGSKOLE PG4200 Algoritmer og datastrukturer Tillatte hjelpemidler: Ingen Side av 7 Varighet: 3 timer Dato:.august 203 Fagansvarlig:
DetaljerSkjermbilder og veiledning knyttet til «Årlig innrapportering for vannforsyningssystem» basert på oppdaterte skjermbilder pr mars 2016.
Skjermbilder og veiledning knyttet til «Årlig innrapportering for vannforsyningssystem» basert på oppdaterte skjermbilder pr mars 2016. Denne veiledningen er et supplement til den generelle veiledningen:
DetaljerHypotesetesting. Notat til STK1110. Ørnulf Borgan Matematisk institutt Universitetet i Oslo. September 2007
Hypotesetesting Notat til STK1110 Ørnulf Borgan Matematisk institutt Universitetet i Oslo September 2007 Teorien for hypotesetesting er beskrevet i kapittel 9 læreboka til Rice. I STK1110 tar vi bare for
DetaljerMAT1030 Forelesning 28
MAT1030 Forelesning 28 Kompleksitetsteori Dag Normann - 5. mai 2010 (Sist oppdatert: 2010-05-05 12:44) Forelesning 28: Kompleksitetsteori Introduksjon Da er vi klare (?) for siste kapittel, om kompleksitetsteori!
DetaljerBrukermanual for reservasjon av grupperom i WebReservations
Brukermanual for reservasjon av grupperom i WebReservations Versjon 1.0 1.0 Generelle retningslinjer for reservasjon av grupperom ved HiL s. 1 2.0 Innlogging s. 2 3.0 Enkel romreservasjon s. 2 4.0 Multippel
DetaljerOblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59
Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59 Formål Formålet med denne oppgaven er å gi trening i hele pensum og i å lage et større program. Løsningen du lager skal være
DetaljerMal for vurderingsbidrag
Mal for vurderingsbidrag Fag: Norsk Tema: Film Trinn: 10. trinn Tidsramme: 3-4 uker. ----------------------------------------------------------------------------- Undervisningsplanlegging Konkretisering
Detaljer