Hovedsiden

Innholdsfortegnelse

Kodeeksempler

Løsning på utvalgte oppgaver

Trykkfeilliste

(Nettsiden er under utvikling, mer kommer etter hvert)


 

 
  Løsningsforslag til utvalgte oppgaver

10.1-1

Se FunksjonsMax.c eller FunksjonsMax.java

10.2-2

Se Ryggsekk.c eller Ryggsekk.java. Algoritmen har kompleksitet O(2n). Fordelen er at den ikke er avhengig av at vektene er heltall.

10.2-4

Se MatriseMult.c eller MatriseMult.java.
Løsningen baserer seg på følgende:
La Tij være antall multiplikasjoner vi trenger for å multiplisere matrisene Mi, Mi+1,..., Mj.
Vi starter med at Tii=0 for alle i, og finner deretter Ti,i+1, Ti,i+2 osv. Den endelige løsningen er T0,n-1 når vi har n matriser.
For å finne Tij beregner vi antall multiplikasjoner som må til hvis vi først multipliserer Mi,...Mk, deretter Mk+1,...Mj, og til slutt multipliserer sammen de to resultatmatrisene. Så velger vi den k mellom i og j som gir det minste antall multiplikasjoner. Vi får dermed:
Tij=min(Tik + Tk+1,j + di*dk+1*dj+1)
der di er antall rader i matrise Mi og dj+1 er antall kolonner i Mj.
Vi trenger å lagre alle Tij'ene for j>i. Dette gjøres i øvre høyre del av en todimensjonal tabell. Vi trenger også å lagre de tilsvarende k-verdiene, dette lagrer vi i den nedre venstre delen av den samme tabellen.

10.3-3

Se Huffmantest.c eller Huffmantest.java

10-1

Se RyggsekkKont.c eller RyggsekkKont.java

10-2

Se Tur.c eller Tur.java