Hashing og hashtabeller
|
|
- Per Nygaard
- 8 år siden
- Visninger:
Transkript
1 Datastrukturer & Algoritmer, Datalogi C Forelæsning 16/ Hashing og hashtabeller Teknik til at repræsentere mængder Konstant tid for finde og indsætte men ingen sortering af elementerne Specielt udviklet til Meget stort udfaldsrum... hvor faktiske mængder er relativt små i forhold til udfaldsrum Standardeksempel nr. 1: Udfaldsrum = mængden af alle mulige navne på variable, klasser... Faktisk mængde = mængden af alle navne i et bestemt Javaprogram (1)
2 Dagens program Indledningsøvelse: repræsentation af mængder over små udfaldsrum Princippet i Hashing: Om hashingfunktioner Kollisioner, dvs. to forskellige objekter hasher til samme tal Løsning på problemet 0: Hægtede lister Løsning på problemet 1: Lineær afprøvning Løsning på problemet 2: Kvadratisk afprøvning Kort om implementation i Javas API o Med en lille afstikker om at heltal i Java er skøre Hashing??? Ordbogsopslag: hash v.t. (VP 1, 10 with up) chop or cut up (meat) into small pieces. n. 1. [U] (dish of) cooked meat,~ed and re-cooked. 2. (fig.) make a ~ of sth., do it very badly, make a mess of it. settle sb. s ~, deal with him in such a way that he gives no more trouble. (2)
3 Teknik til repræsentation af mængder over Meget stort udfaldsrum... hvor faktiske mængder er relativt små i forhold til udfaldsrum Ideen: at afbilde stort adresserum over i et lille: X h h(x) et tal mellem 0 og max (3)
4 Indledende øvelse: Repræsentation af mængder over små udfaldsrum Pascal (Wirth, ca. 1974) type fisk = (torsk, sild, rødspætte, kuller, kulmule, fjæsing, gråsej, pighvar, slethvar, laks, ørred, tobis); var nogle_fisk, flere_fisk, endnu_flere_fisk : set of fisk; nogle_fisk := [torsk..kuller, tobis, slethvar]; flere_fisk := [torsk, rødspætte..fjæsing, laks, slethvar]; endnu_flere_fisk := nogle_fisk + flere_fisk; // foreningsmgd nogle_fisk U flere_fisk Compileren tildeler hvert symbol et nummer torsk -> 0 sild -> 1... tobis -> 11 En mængde er en bitvektor, f.eks. nogle_fisk = flere_fisk = endnu_flere_fisk = eller U implementeret ved bitvis logisk eller (4)
5 OBS: Java understøtter bitvise operationer, så princippet kan eftergøres men man må selv lege compiler! Forslag: static final int torsk = 1; static final int sild = 2; static final int rødspætte = 4; static final int kuller = 8; int nogle_fisk = torsk+sild+rødspætte+kuller+tobis+slethvar; endnu_flere_fisk = nogle_fisk flere_fisk; //bitvis eller (5)
6 Princippet i Hashing: Komprimere adresserum vha hashfunktion X h h(x) et tal mellem 0 og max Og bruge princippet fra bitvektoren: 1 jeg er med; 0 jeg er ikke med. (6)
7 Problem: Kollision, når to elementer hasher til samme værdi x, y: x y /\ h(x)=h(y) Hvad betyder bit(7)=1?? (7)
8 En mulig løsning på problemet, hægtet liste af objekter: Objekt X Objekt Y X Y /\ h(x) = h(y) Nu ikke bitvektor men array 0..max af hægtede lister af objekter (dvs. repræsentation af objekter i den store mængde (udfaldsrummet). Ikke populær da det giver ekstra arbejde med at forfølge referencer hver gang, selv når tabellen er stort set tom! (8)
9 Den sædvanlige løsninger på problemet Hvis pladsen er optaget så find en anden plads i tabellen (efter fast algoritme): Objekt X Objekt Y Af finde Y i tabellen: Hvis tabel( h(y) ) tom, så er Y ikke med; Hvis tabel( h(y) ) refererer til objekt Y så OK; Hvis tabel( h(y) ) refererer til objekt X ( Y) så prøv andet steds...; (9)
10 Kunsten at finde en anden plads i tabellen Den oplagte metode: Linear probing Prøv næste ubrugte celle: Antag h(x) = h(y) = 117 h(z) = 118 h(æ) = : X 117: X 117: X 117: X 118: 118: Y 118: Y 118: Y 119: 119: 119: Z 119: Z 120: 120: 120: 120: Æ Fordele: Virker altid indtil tabellen er helt fuld Ulemper: Der dannes klumper. Dvs. for mange indsætte og finde kolliderer flere gange! (Kræver et matematisk argument, som vi springer over; intuitivt: Når en klump er opstået har den tendens til at vokse!) (10)
11 Den mest udbredte strategi: Quadratic probing hvis plads h(y) er ledig placér Y der; ellers {i = 1; hvis plads (h(y) + i 2 )% tabelstørrelse ledig, så placér Y der; ellers {i++; goto } ; } Hvad får vi ud af det? En matematiker kan bevise: Klumpningsgraden mindre Hvis tabelstørrelse er et primtal, så besøges halvdelen af alle celler i værste fald Dvs. fyldningsgrad på 50% eller derover er ikke godt! Tag det som et kuriøst faktum; ikke eksamenspensum at redegøre for det!! NB: Bogen gør et nummer ud af at optimere beregningen så multiplikation og modulo operation undgås 0 2 = = = = + 3 = = + 5 = = + 7 = currentpos += 2 * ++collisionnum -1; if (currentpos>= array.length) currentpos = array.length; OBS-OBS-OBS: En god compiler oversætter 2 * til højreskift En god compiler oversætter -1 til én maskininstruktion DEC <register> (11)
12 Om hashfunktionen Faktum vi må leve med: Kollisioner kan ikke undgås Krav til god hashfunktion skal sprede sig så godt som muligt over hele intervallet o ramme alle celler o og ca. lige meget o og det for en typisk mængde af objekter. skal kunne beregnes effektivt Eksempel på dårlig hashfunktion.... (12)
13 Eksempel på dårlig hashfunktion med tablesize = to-talspotens int hash(string key, int tablesize) { int hashval = 0; for (int i = 0; i < key.length(); i++) hashval = (hashval * key.charat(i)) % tablesize; return hashval} Eksempler: hash( Hsdjazd noperun fgkdfgo krpot, krpot, poylgkrs okerpil mkdfg!, 2048) = 1825 hash( Der var en gang en mand, 2048) = 1636 hash( Han boede i en spand, 2048) = 1636 Læs i bogen i afsnit 20.2 om at primtal er gode, men der er meget-meget-meget mere i historien om, hvad der gør en hashfunktion god! For at forstå det, skal vi lige have en foredrag om heltal i Java som er uden kontrol for overflow!!! (13)
14 Hvad er overflow? Eksempel: Regning med tal op til 4 cifre ======== ======== ======== ???? En elektronisk dims kunne måske give ======== Svarer til OVERFLOW kontrol EEEE En dum mekanisk dims med fire hjul med hver 4 cifre vil sandsynligvis vise ======== Uden OVERFLOW kontrol (14)
15 Eksempel med 4-bits aritmetik hvor bit længst til venstre er fortegn f.eks ) 2) ======== ======== Med overflowkontrol: Eksempel 2 giver anledning til fejlmeddelelse Uden overflowkontrol: Eksempel 2 regner forkert: = 6!!!! (ralle) Java s heltal opfører sig ca. på den måde.... (15)
16 Java s heltal opfører sig ca. på den måde: public final class OverFlowTest { public static void main( String [ ] args ) { int n = 0;int i; n = ; // maximal int System.out.println("n " + n); n = n+17; System.out.println("n " + n); for(i=0; i< ; i=i ) {n=n+1;} System.out.println("SLUT); } } n n ^C Programmet gik i løkke pga. overflow og manglende overflowcheck (16)
17 Eksempel på hashfunktion, som benytter ikke-overflow-check: public static int hashbetter(string key, int tablesize) { int hashval = 0; for (int i = 0; i < key.length(); i++) hashval = hashval * 37 + key.charat(i); hashval %= tablesize; if(hashval < 0) hashval += tablesize; return hashval;} Eksempler ved tablesize = 2039: a: 97 Der var en gang en mand: 1142 b: 98 Han boede i en spand: 885 c: 99 Vandmand: 1748 aa: 1647 Krikand: 1231 ab: 1648 Hsdjazd noperun fgkdfgo krpot, krpot, poylgkrs okerpil mkdfg!: 30 ac: 1649 ba: 1684 (17)
18 Om hashing i Java API Standardklasser for HashSet ~ svarende til de hashede mængder vi har set som sædvanligt defineret for Class Object og det pjank med»type casting«hele tiden og så igen :( HashMap ~ afbildning repræsenteret som hashede mængder, hvor vi for en objekt X, i tabellen finder ref. til objekt [X, Værdi] Bemærk at den generelle klasse Object har metode hashcode() som returnerer bare-et-eller-andet-heltal. For at kunne bruge HashMap og HashSet på sine egne objekter må man altså huske at skrive en hashcode() metode. (18)
19 Eksempel på indbygget hashcode() for tekststrenge: public final class HaCo { public static void printhash(string s) {System.out.println(s + ": " + s.hashcode());} public static void main( String [ ] args ) { printhash("a"); printhash("b");.... printhash("hsdjazd noperun fgkdfgo krpot, krpot, poylgkrs okerpil mkdfg!"); }} a: 97 b: 98 c: 99 aa: 3104 ab: 3105 ac: 3106 ba: 3135 Der var en gang en mand: Han boede i en spand: Hsdjazd noperun fgkdfgo krpot, krpot, poylgkrs okerpil mkdfg!: (19)
20 Både positive og negative tal returneres Dvs. implementation af hashtabel skal teste >= 0 og tage modulo (%) tabelstørrelse Implementation af Java.util s HashSet og HashMap: Baseret på quadratic probing med primtal som tabellængde Re-hashing, hvis tabel bliver halvt fuld, så fordobles tabellen (rundet op til næste primtal) Sletning foretages ved at indsætte en boolean i hver celle active = true ~ som vi forventer active = false ~ pågældende felt har været indsat, men slettet igen (og skal ignoreres) Nødvendig pga. probing da ægte sletning for bøvlet! Ellers ingen overraskelser, kig på koden i afsnit Hashtabellen sander til over tid; typisk løsning: Genopbyg tabellen i løbet af natten (20)
21 ~ Tak for Deres opmærksomhed ~ (21)
Hashing og hashtabeller
Datastrukturer & Algoritmer, Datalogi C Forelæsning 12/11-2002 Hashing og hashtabeller Teknik til at repræsentere mængder Konstant tid for finde og indsætte men ingen sortering af elementerne Specielt
Læs mere19 Hashtabeller. Noter. PS1 -- Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse.
19 Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse. Sammenligning af hashtabeller og søgetræer. 281 Hashing-problemet (1). Vi ønsker at afbilde n objekter på en tabel
Læs mereAbstrakte datatyper C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2
Læs mereHashing. Ordbøger Hægtet hashing Hashfunktioner Lineær probering. Philip Bille
Hashing Ordbøger Hægtet hashing Hashfunktioner Lineær probering Philip Bille Hashing Ordbøger Hægtet hashing Hashfunktioner Lineær probering Ordbøger Ordbøger. Vedligehold en dynamisk mængde S af elementer.
Læs mereDM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11
DM01 DM01 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 18/3-2003 Side 1 af 11 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DILEMMA:...4 2.1.1 METODER:...4
Læs mereHashing. Ordbøger Hægtet hashing Hashfunktioner Lineær probering. Philip Bille
Hashing Ordbøger Hægtet hashing Hashfunktioner Lineær probering Philip Bille Hashing Ordbøger Hægtet hashing Hashfunktioner Lineær probering Ordbøger Ordbøger. Vedligehold en dynamisk mængde S af elementer.
Læs mereHashing. Hashing. Ordbøger. Ordbøger. Ordbøger Hægtet hashing Hashfunktioner Lineær probering. Ordbøger Hægtet hashing Hashfunktioner Lineær probering
Philip Bille Ordbøger. Vedligehold en dynamisk mængde S af elementer. Hvert element har en nøgle key[x] fra et univers af nøgler U og satellitdata data[x]. Ordbogsoperationer. SEARCH(k): afgør om element
Læs mereMålet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.
Merging og hashing Mål Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer (2. semester). Mål
Læs mereHashing. Hashing. Ordbøger. Ordbøger. Ordbøger Hægtet hashing Hashfunktioner Lineær probering. Ordbøger Hægtet hashing Hashfunktioner Lineær probering
Philip Bille. Vedligehold en dynamisk mængde S af elementer. Hvert element har en nøgle x.key fra et univers af nøgler U og satellitdata x.data. Ordbogsoperationer. SEARCH(k): afgør om element med nøgle
Læs mereEksempel: Skat i år 2000
Kursus 02199: Programmering afsnit 2.1-2.7 Anne Haxthausen IMM, DTU 1. Værdier og typer (bl.a. char, boolean, int, double) (afsnit 2.4) 2. Variable og konstanter (afsnit 2.3) 3. Sætninger (bl.a. assignments)
Læs mereDATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004
Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen torsdag den 3. juni 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes
Læs mereAAU, Programmering i Java Intern skriftlig prøve 18. maj 2007
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til fjj@noea.dk. Besvarelsen skal
Læs mereGrundlæggende Algoritmer og Datastrukturer. Hashing [CLRS, kapitel ]
Grundlæggende Algoritmer og Datastrukturer Hashing [CLRS, kapitel 11.1-11.4] hash (Engelsk-Dansk) 1. (sb) (ret med kød og kartofler) biksemad (fx a meat and potato hash); (fig.) kludder; noget værre rod;
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 7 n 1/ log n. (log n) 4
Eksamen august 00 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave (%) n er O(n )? n(log n) er O(n )? n n + (log n) er O(n )? n er O(n )? n er Ω( n )? Opgave (%) Opskriv følgende funktioner
Læs mereINSTITUT FOR DATALOGI, AARHUS UNIVERSITET EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning)
INSTITUT FOR DATALOGI, AARHUS UNIVERSITET EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Fredag den 10. august 2012, kl. 9.00-11.00 Eksamenslokale: Finlandsgade
Læs mereMålet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt.
Merging og hashing Mål Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 3/2. n logn (3/2) n. 2 3logn (3/2) n
Side af 0 sider Opgave (4%) Ja Nej n er O(n / )? n +n er O(n )? (logn) er O( logn )? n er O()? /n er O(logn)? Opgave (4%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: logn
Læs mereDATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi
DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Onsdag den 31. marts 2010, kl.
Læs mereDatastrukturer (recap) Datastruktur = data + operationer herpå
Dictionaries Datastrukturer (recap) Datastruktur = data + operationer herpå Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data (ofte underforstået, også
Læs mereMerging og Hashing (del I)
Merging og Hashing (del I) Tilgang til data To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer. API for sekventiel tilgang
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4
DM502 Forelæsning 4 Flere kontrolstrukturer for-løkke switch-case Metoder Indhold Arrays og sortering af arrays String-funktioner for-løkke Ofte har man brug for at udføre det samme kode, for en sekvens
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 23n log n. 4 n (log n) log n
Eksamen. kvarter 00 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave (%) Ja Nej n er O(n )? n er O(n )? n er O(n + 0 n)? n + n er O(n )? n log n er Ω(n )? Opgave (%) Opskriv følgende funktioner
Læs mereCivilingeniøreksamen 49104 12. januar 2001. Skriftelig prøve den 12. januar 2001 Kursusnummer 49104
Skriftelig prøve den 12. januar 2001 Kursusnummer 49104 Kursusnavn: Programmering. Tilladte hjælpemidler: Alle skriftlige hjælpemidler Opgavesættet består af fire opgaver, der har følgende vægtning: Opgave
Læs mereDatastrukturer (recap)
Dictionaries Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data. Operationer: Datastrukturens egenskaber udgøres af de tilbudte operationer (API for adgang
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen (bemærk at log n betegner totals logaritmen): n 2 (log n) 2 2.
Eksamen august Algoritmer og Datastrukturer (-ordning) Side af sider Opgave (%) n + n er O(n )? n / er O(n / )? n er O(n log n)? n er O((log n) )? n er Ω(n )? Ja Nej Opgave (%) Opskriv følgende funktioner
Læs mereDATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi
DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 1 (tretten) Eksamensdag: Tirsdag den 8. april 2008,
Læs mereDanmarks Tekniske Universitet
side af 3 sider anmarks Tekniske Universitet Skriftlig prøve, den 29. maj 203. ursusnavn: lgoritmer og datastrukturer ursus nr. 02326. jælpemidler: Skriftlige hjælpemidler. et er ikke tilladt at medbringe
Læs mereGerth Stølting Brodal. Hashing [CLRS, kapitel ]
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Hashing [CLRS, kapitel 11.1-11.4] hash (Engelsk-Dansk) 1. (sb) (ret med kød og kartofler) biksemad (fx a meat and potato hash); (fig.) kludder; noget
Læs mereTilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer.
Merging og Hashing Tilgang til data To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer. API for sekventiel tilgang (API =
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2
DM502 Forelæsning 2 Repetition Kompilere og køre Java program javac HelloWorld.java java HeloWorld.java Debugge Java program javac -g HelloWorld.java jswat Det basale Java program public class HelloWorld
Læs mereTabeller (I) Tabeller
Tabeller (I) Klassediagrammer (III) Tabeller og qualified associations Michael R. Hansen mrh@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark En tabel fra en mængde A til
Læs mereDatastrukturer (recap)
Dictionaries Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data. Operationer: Datastrukturens egenskaber udgøres af de tilbudte operationer (API for adgang
Læs mereb) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.
Exercise 1: Opgave 9.1 på CodeJudge. a) Lav klasserne Cirkel, Rektangel og Kvadrat, som implementerer vedhæftede interface From.java (se CodeJudge). Lav Rektangel før du laver Kvadrat. Kan du bruge nedarvning
Læs mereTilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (key, nøgle) for dataelementer.
Merging og Hashing Tilgang til data To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (key, nøgle) for dataelementer. API for sekventiel tilgang (API = Application
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 7 n 1/2 2 n /n 3 2logn n 2 /logn
Eksamen august 0 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave (%) n er Ω(n)? n er O( n )? n er O(8logn)? + er O(n)? n er O(n / )? Opgave (%) Opskriv følgende funktioner efter stigende
Læs mereStakke, køer og lidt om hægtede lister - kapitel 16 og 17
Datastrukturer & Algoritmer, Datalogi C Forelæsning 2/11-2004 Henning Christiansen Stakke, køer og lidt om hægtede lister - kapitel 16 og 17 Fundamentale datastrukturer man får brug for igen og igen Et
Læs mereDatalogi OB, Efterår 2002 OH er, forelæsning 3/9-2002 - forstå datastrukturer og algoritmer (teoretisk forståelse og intuition)
Datalogi OB, Efterår 2002 OH er, forelæsning 3/9-2002 Datastrukturer og algoritmer Henning Christiansen henning@ruc.dk http://www.ruc.dk/~henning Formål: at kunne - forstå datastrukturer og algoritmer
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 27. februar, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereSøgemaskineprojekt. Analyse og implementering af en søgemaskine og en crawler til denne. Vejleder: Theis Rauhe (theis@it-c.dk)
Søgemaskineprojekt Analyse og implementering af en søgemaskine og en crawler til denne Morten Franck (skyfer@it-c.dk) Vejleder: Theis Rauhe (theis@it-c.dk) Peter G. Hansen (gath@it-c.dk) Påbegyndt den
Læs mereTabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations
Tabelbegrebet Klassediagrammer (III) Tabeller og qualified associations originally by Michael R. Hansen modified/extended by Anne E. Haxthausen Informatics and Mathematical Modelling Technical University
Læs mereAlgebra INTRO. I kapitlet arbejdes med følgende centrale matematiske begreber:
INTRO Kapitlet sætter fokus på algebra, som er den del af matematikkens sprog, hvor vi anvender variable. Algebra indgår i flere af bogens kapitler, men hensigten med dette kapitel er, at eleverne udvikler
Læs mereDatalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning
Datalogi OB, Efterår 2002 OH er, forelæsning 10/9-2002 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Eftermiddagens opgave:
Læs mereDATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi
DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Torsdag den 26. marts 2009, kl.
Læs mereDATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi
DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Fredag den 13. august 2010, kl.
Læs mereSkriftlig Eksamen DM507 Algoritmer og Datastrukturer
Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 6. juni 2016, kl. 15:00 19:00 Besvarelsen skal afleveres elektronisk. Se
Læs mereINSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi
INSTITUT FOR DATALOGI, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Fredag den 16. august 2013,
Læs mereSekvenser af længde mellem 1 og 4 ord repræsenteres ved en klasse Segment, som uden grundlæggende ser således ud:
Besvarelse af opgave til formuleret til øvelserne 10. september 2002 Datastrukturer og algoritmer Henning Christiansen 22/9-2002 Følgende er ikke en eksakt besvarelse af opgaven, idet den benytter hashtabeller
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter side 1 af 11 sider Skriftlig eksamen i Datalogi Modul 1 Sommer 2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 10% Opgave 2 10%
Læs mereMm8: Hash tables, Hashing and binary search trees - November 7, 2008
Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm8: Hash tables, Hashing and binary search trees - November 7, 2008 1 Algorithms and Architectures II 1. Introduction
Læs mereKursus navn: Indledende programmering Kursus nr. 02101
Danmarks Tekniske Universitet Side 1 af 8 sider Skriftlig prøve, den 15. december 2007 Kursus navn: Indledende programmering Kursus nr. 02101 Tilladte hjælpemidler: Alle skriftlige hjælpemidler Vægtning
Læs mereJacob Christiansen, Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense
7 DM -. Obligatoriske Opgave Løsning af ligningssystem vha. fipunktmetoden Jacob Christiansen, 8 moffe@imada.sdu.dk Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense. Opgaven Der skal implementeres
Læs mereJava Programmering. En bog for begyndere. Skrevet af Henrik Kressner
Java Programmering En bog for begyndere Skrevet af Henrik Kressner Indholdsfortegnelse Introduktion...3 1 Introduktion til Java...4 1.1 Javakoden...4 1.2 Det første program...6 1.2 Skriv til skærmen...6
Læs mereLøsning af møntproblemet
Løsning af møntproblemet Keld Helsgaun RUC, oktober 1999 Antag at tilstandene i problemet (stillingerne) er repræsenteret ved objekter af klassen State. Vi kan da finde en kortest mulig løsning af problemet
Læs mereProgrammering i C. Lektion 4. 5. december 2008
Programmering i C Lektion 4 5. december 2008 Funktioner Eksempel Fra sidst 1 Funktioner 2 Eksempel Funktioner Eksempel Eksempel: 1 / f u n k t i o n s p r o t o t y p e r / i n t i n d l a e s ( void )
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 5. 5n 2 5 logn. 2 logn
Eksamen august 0 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave (%) n +n er O(n )? Ja Nej n er O(n )? n+n er O(n. )? n+n er O(8n)? n logn er O(n )? Opgave (%) Opskriv følgende funktioner
Læs mereINSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi
INSTITUT FOR DATALOGI, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Torsdag den 21. marts 2013,
Læs mereBRP 6.9.2006 Kursusintroduktion og Java-oversigt
BRP 6.9.2006 Kursusintroduktion og Java-oversigt 1. Kursusintroduktion 2. Java-oversigt (A): Opgave P4.4 3. Java-oversigt (B): Ny omvendings -opgave 4. Introduktion til næste kursusgang Kursusintroduktion:
Læs mereRekursion og dynamisk programmering
Rekursion og dynamisk programmering Datastrukturer & Algoritmer, Dat C Forelæsning 12/10-2004 Henning Christiansen Rekursion: at en procedure kalder sig selv eller et antal metoder kalder hinanden gensidigt.
Læs mereDM72 Diskret matematik med anvendelser
DM72 Diskret matematik med anvendelser En hurtig gennemgang af de vigtigste resultater. (Dvs. ikke alle resultater). Logik Åbne udsagn 2 + 3 = 5 Prædikater og kvantorer P (x) := x er et primtal x N : n
Læs mereDATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi
DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 1 (tolv) Eksamensdag: Fredag den 7. august 009, kl.
Læs mereBits, bit operationer, integers og floating point
Denne guide er oprindeligt udgivet på Eksperten.dk Bits, bit operationer, integers og floating point Denne artikel beskriver hvordan data gemmes som bits og hvordan man kan manipulere med bits. Den forudsætter
Læs mereTalrækker. Aktivitet Emne Klassetrin Side
VisiRegn ideer 3 Talrækker Inge B. Larsen ibl@dpu.dk INFA juli 2001 Indhold: Aktivitet Emne Klassetrin Side Vejledning til Talrækker 2-4 Elevaktiviteter til Talrækker 3.1 Talrækker (1) M-Æ 5-9 3.2 Hanoi-spillet
Læs mereDM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/
DM502 Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ 1 DM502 Bog, ugesedler og noter De første øvelser Let for nogen, svært for andre Kom til øvelserne! Lav opgaverne!
Læs mereDanmarks Tekniske Universitet
side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning
Læs mereVideregående Programmering Obligatorisk opgave - 3. semester, efterår 2004
Overvågningssystem Beskrivelse Bagagesorteringssystemet består af et antal skranker (check-in) til modtagelse og registrering af bagage, et automatiseret sorteringsanlæg samt et antal terminaler (gates),
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 5n 4. logn. n 4n 5 n/logn. n n/logn 5n
Algoritmer og Datastrukturer (-ordning) Side af sider Opgave (%) n er O(n 7 )? (logn) er O( n)? n(logn) er O(n)? n er O( n )? n er Ω(n )? Opgave (%) Opskriv følgende funktioner efter stigende orden med
Læs mereSkriftlig Eksamen Algoritmer og Datastrukturer (DM507)
Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Onsdag den 0. juni 009, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)
Læs mereStakke, køer og lidt om hægtede lister
Datastrukturer & Algoritmer, Datalogi C Forelæsning 4/11-2003 Henning Christiansen Stakke, køer og lidt om hægtede lister - kapitel 16 og 17 Hvorfor? Fundamentale datastrukturer man får brug for igen og
Læs merePrioritetskøer ved»heap«, simulering
Datastrukturer & Algoritmer, Datalogi C Forelæsning 25/11-2003 Prioritetskøer ved»heap«, simulering Yet another teknik til at repræsentere mængder Hvor hashtabellen fremviste: Konstant tid for finde og
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 2 n (log n) 2. 3 n /n 2 n + (log n) 4
Eksamen. kvarter 00 Side 1 af sider Opgave 1 ( %) Ja Nej n log n er O(n / )? n 1/ er O(log n)? n + n er O(n )? n( n + log n) er O(n / )? n er Ω(n )? Opgave ( %) Opskriv følgende funktioner efter stigende
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 6
DM502 Forelæsning 6 Klasser og objekter Introduktion Math-klassen Indhold Klasser vs. objekter Først et tænkt eksempel: Vi vil lave en bil i Java 1. spørgsmål: Hvad karakteriserer en bil? Model År Farve...
Læs mereOpgave 1 (10%) I det følgende angiver log n 2-tals-logaritmen af n. Ja Nej. n+3n er O(2n)? n 6 er O(n 5 )? nlogn er O(n 2 /logn)? 4n 3 er O(3n 4 )?
Eksamen juni Algoritmer og Datastrukturer (-ordning) Side af sider Opgave (%) I det følgende angiver log n -tals-logaritmen af n. n+n er O(n)? n 6 er O(n )? nlogn er O(n /logn)? n er O(n )? n er O(n )?
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2013 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 5. marts, 2013 Dette projekt udleveres i to dele. Hver del har sin deadline, således
Læs mereDATALOGI 0GB. Skriftlig eksamen tirsdag den 6. januar 2004
Københavns Universitet bacheloruddannelsen i datalogi side 1 af 6 DATALOGI 0GB Skriftlig eksamen tirsdag den 6. januar 2004 Dette opgavesæt består af 6 nummererede sider. Eksamensdeltagerne bør straks
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 2 2 n 1/n (logn) n. n 2
Side af sider Opgave (%) Ja Nej n er O(n n)? n er O(n+n )? ( n ) er O( n )? logn er O(n / )? n +n er O(n)? Opgave (%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn)
Læs mereDATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi
DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Torsdag den 11. august 2011,
Læs mereEt udtryk på formena n kaldes en potens med grundtal a og eksponent n. Vi vil kun betragte potenser hvor grundtallet er positivt, altså a>0.
Konkrete funktioner Potenser Som udgangspunkt er brugen af potenser blot en forkortelse for at gange et tal med sig selv et antal gange. Hvis a Rskriver vi a 2 for a a a 3 for a a a a 4 for a a a a (1).
Læs mereAlgoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Analyseværktøjer [CLRS, 1-3.1] Eksempler på en beregningsprocess Puslespil ved ombytninger Maximum delsum Hvad er udførselstiden for en algoritme? Maskinkode
Læs mereBRP Tal. Om computer-repræsentation og -manipulation. Logaritmer
BRP 13.9.2006 Tal. Om computer-repræsentation og -manipulation. Logaritmer 1. Opgaverne til i dag dækker det meste af stoffet 2. Resten af stoffet logaritmer binære træer 3. Øvelse ny programmeringsopgave
Læs mereDanmarks Tekniske Universitet
Eksamen 02105, F14 side 1 af 14 Danmarks Tekniske Universitet Skriftlig prøve, den 22. maj 2014. Kursusnavn: Algoritmer og datastrukturer 1 Kursusnummer: 02105 Hjælpemidler: Skriftlige hjælpemidler. Det
Læs mereJavaScript. nedarvning.
JavaScript er et sprog, der kan give en hjemmeside mere funktionalitet og gøre den interaktiv, så den reagerer på læsernes handlinger. CGI (Common Gateway Interface) har hidtil været de protokoller, man
Læs mereDATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi
DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Tirsdag den 20. marts 2012, kl.
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 4 n n 3n n 2 /logn 5 n n (logn) 3n n 2 /logn 4 n n 5 n
Side af 0 sider Opgave (%) Ja Nej n er O(0n logn)? n er O(n )? n +n er O(n )? n logn er O(n )? n logn er O(n)? Opgave (%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n
Læs mereDanmarks Tekniske Universitet
side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning
Læs meredcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet)
dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet) Efterår 2009 1 Talrepræsentation På maskinkodeniveau (Instruction Set Architecture Level) repræsenteres ordrer og operander ved bitfølger
Læs mereDanmarks Tekniske Universitet
side af 2 sider anmarks Tekniske Universitet Skriftlig prøve, den 23. maj 20. Kursusnavn: lgoritmer og datastrukturer Kursus nr. 02326. Varighed: 4 timer Tilladte hjælpemidler: lle skriftlige hjælpemidler.
Læs mereKursusarbejde 3 Grundlæggende Programmering
Kursusarbejde 3 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 21. november 2003 Indhold 1. Kode 2 1.1. forestillinger.h............................................. 2 1.2. forestillinger.cc.............................................
Læs mereSkriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet
Side af 1 sider Skriftlig Eksamen Algoritmer og Datastrukturer 1 Datalogisk Institut Aarhus Universitet Dette eksamenssæt består af en kombination af små skriftlige opgaver og multiplechoice-opgaver. Opgaverne
Læs mereKlasser og nedarvning
Datalogi C, Efterår 2004 OH er, forelæsning 21/9-2004 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Opgaven til senere: Generalisere
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n+logn logn (logn) 7 (3/2) n
Side af sider Opgave (%) Ja Nej n er O( n )? n er O(log n)? n er O(n )? n + er O(0n)? nlogn er O(n / )? Opgave (%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: nlogn logn
Læs mereUgeseddel 4 1. marts - 8. marts
Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,
Læs mereForelæsning 17, tirsdag 2. november 1999 Søgning efter en given værdi i en tabel. Programmering 1999
sammenligninger, hvor Programmering 1999 Forelæsning 17, tirsdag 2 november 1999 Søgning efter en given værdi i en tabel Lineær søgning og binær søgning Effektivitet: maskinuafhængig vurdering af køretid
Læs mereDesign by Contract. Design and Programming by Contract. Oversigt. Prædikater
Design by Contract Design and Programming by Contract Anne Haxthausen ah@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design by Contract er en teknik til at specificere
Læs mereKom i gang-opgaver til differentialregning
Kom i gang-opgaver til differentialregning 00 Karsten Juul Det er kortsigtet at løse en opgave ved blot at udskifte tallene i en besvarelse af en tilsvarende opgave Dette skyldes at man så normalt ikke
Læs mereSkriftlig Eksamen Algoritmer og Datastrukturer (dads)
Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Mandag den 27. maj 2002, kl. 9.00 13.00 Opgave 1 (25%) Denne opgave handler om multiplikation af positive heltal.
Læs mereTalteori. Teori og problemløsning. Indhold. Talteori - Teori og problemløsning, marts 2014, Kirsten Rosenkilde.
Indhold 1 Delelighed, primtal og primfaktoropløsning Omskrivning vha. kvadratsætninger 4 3 Antal divisorer 6 4 Største fælles divisor og Euklids algoritme 7 5 Restklasser 9 6 Restklasseregning og kvadratiske
Læs mereGrundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering
Skriftlig eksamen i Grundlæggende Programmering ITU, 20. januar 2000 Alle hjælpemidler tilladt, dog ikke datamat. Eksamen er skriftlig, fire timer, og bedømmes efter 13-skalaen. Opgavesættet består af
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n n (log n) 2. n 2 + log n 3 n. n n (log n)
Eksamen august 00 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave ( %) n er O(n log n)? n n er O(n )? Ja Nej n er O(n log n)? n + n log n er O(n n)? n + n er O(n )? Opgave ( %) Opskriv følgende
Læs mere