811312A Tietorakenteet ja algoritmit, , Harjoitus 7, ratkaisu

Koko: px
Aloita esitys sivulta:

Download "811312A Tietorakenteet ja algoritmit, 2014-2015, Harjoitus 7, ratkaisu"

Transkriptio

1 832A Tietorakenteet ja algoritmit, , Harjoitus 7, ratkaisu Hajota ja hallitse-menetelmä: Tehtävä 7.. Muodosta hajota ja hallitse-menetelmää käyttäen algoritmi TULOSTA_PUU_LASKEVA, joka tulostaa binäärisen etsintäpuun kaikki avainkentät vähenevässä järjestyksessä. Algoritmi saa parametrinaan osoittimen puun juureen. Algoritmin pitäisi olla kompleksisuudeltaan lineaarinen puun solmujen lukumäärän n suhteen ( ( n) ). Osoita myös, että näin on! Ratkaisu. Olkoon puun juuren osoitin T. Määritellään algoritmi seuraavasti TULOSTA_PUU_LASKEVA(T). if T!=NIL 2. TULOSTA_PUU_LASKEVA(T.right) 3. tulosta (T.key) 4. TULOSTA_LASKEVA(T.left) 5. return Tässä siis hajotetaan puu vasempaan ja oikeaan alipuuhun, jotka käsitellään samalla algoritmilla erikseen. Jos puussa ei ole solmuja, tehdään vain yksi vertailu. Jos puussa on yksi solmu, on selvää että algoritmi vie vakioajan, jota merkitään kirjaimella a. Olkoon T(n) aika, jonka algoritmi vie, kun puussa on n solmua. Oletetaan, että puussa on N solmua (N >) ja että on olemassa sellainen vakio c, että T( n) c n aina, kun 0 < n < N. Lisäksi voidaan luonnollisesti olettaa, että c a. Jos puun vasemmassa alipuussa on k solmua, niin oikeassa alipuussa on N--k solmua. Siten Jos Jos k 0, T( N) a T( N ) a c ( N ) ( a c) c N c N k, T( N) a T( k) T( N k ) a c k c ( N k ) ( a c) c N c N Siis T( n) c n kaikilla luvun n arvoilla. Tietenkin jokainen solmu käsitellään, minkä vuoksi T n) n T( n) ( n. joten ) Tehtävä 7.2. Hae lukujoukon {7,2,3,8,,9,5,23,8,33,6,35,9,2,42} mediaani luennoissa esitetyllä hajota ja hallitse-tyyppisellä algoritmilla. Voit olettaa yksinkertaisuuden vuoksi, että ositusalgoritmi valitsee satunnaisesti sarana-alkioksi aina käsiteltävän välin ensimmäisen alkion. (, Ratkaisu. Luennoissa esitetty algoritmi ETSI hakee taulukon järjestyksessä k:nnen luvun ja se on seuraava: ETSI(A,p,q,k). x = OSITA(A,p,q) 2. if x == k 3. return A[x] 4. else if x > k 5. return ETSI(A,p,x-,k) 6. else 7. return ETSI(A,x+,q,k) OSITA(A,p,r). valitse x = A[m] satunnaisesti osasta A[p,..,r] 2. vaihda A[m] ja A[r] 3. i = p- 4. for j = p to r- 5. if A[j] == x 6. vaihda A[j] ja A[r] 7. if A[j] <= x 8. i = i+ 9. vaihda A[i] ja A[j] 0. vaihda A[i+] ja A[r]. return i+

2 Alla on esimerkkiajo algoritmista annetulle taulukolle. Lukuja on 5, joten etsitään järjestyksessä kahdeksatta. Taulukon indeksit alkavat nollasta, joten haetaan alkiota, joka tulee paikalle 7. Aluksi ositetaan koko taulukko satunnaisesti valitun alkion suhteen. Tämän oikea paikka taulukossa on 5, joten haetaan oikealta puolelta. Sitten sarana-alkioksi sattuu 8, joka puolestaan tulee paikalle 9. Näin ollen haetaan indeksien 6 ja 8 väliltä. Tältä väliltä sattuu vielä saranaksi alkio 2, minkä jälkeen löydetään kahdeksas alkio, joka on 5. Tulostuksesta nähdään käsiteltävä taulukon osa, sarana-alkio ja taulukon osa osituksen jälkeen. CALLING PARTITION(0,4) ARRAY BEFORE: PIVOT: ARRAY AFTER: RETURNING 5 CALLING PARTITION(6,4) ARRAY BEFORE: PIVOT: 8 ARRAY AFTER: RETURNING 9 CALLING PARTITION(6,8) ARRAY BEFORE: PIVOT: 2 ARRAY AFTER: RETURNING 6 CALLING PARTITION(7,8) ARRAY BEFORE: 6 5 PIVOT: 5 ARRAY AFTER: 5 6 RETURNING 7 THE 8. ELEMENT IS 5 Dynaaminen taulukointi: Tehtävä 7.3. Shakkilaudan vasemmassa yläkulmassa on nappula, joka voi siirtyä sijaintiruudustaan ainoastaan oikealle tai alas seuraavaan ruutuun. Kuinka monella tavalla nappula voi siirtyä 4*4-laudalla oikeaan alakulmaan? Ratkaise ongelma käyttämällä dynaamista taulukointia. Esimerkki: 2*2-laudalla on kaksi erilaista reittiä: ja 3*3-laudalla reittejä on 6 erilaista (kokeile!). Huomaa, että tiettyyn ruutuun johtavien reittien lukumäärä riippuu sen naapuriruutuihin johtavien reittien lukumäärästä. Osaatko yleistää ratkaisuasi n*n-laudalle? Ratkaisu. Merkitään laudan ruutuja koordinaattipareilla (i,j), missä i on sarakenumero ja j vaakarivin numero. Molemmat luvut voivat saada arvoja..4. Ongelmamme osaongelmiksi tulevat luonnollisesti reittien määrän laskemiset laudan eri ruutuihin. Merkitään reittien lukumäärää ruutuun (i,j) luvulla A(i,j). Huomataan, että nämä arvot voidaan tallettaa kaksiulotteiseen taulukkoon A[..4,..4]. Tutkitaan seuraavaksi, miten reittien lukumäärä voidaan laskea. Laudan yläreunan ja vasemman reunan ruutuihin voi päästä ainoastaan yhdellä tavalla, koska nappula liikkuu ainoastaan alas ja oikealle. Näin ollen A(i,) = A(,j) = kaikilla arvoilla i ja j.

3 Laudan ruutuun (i,j) voi päästä vain ruuduista (i-,j) ja (i,j-). Jos reittejä ruutuun (i-,j) on A(i-,j) kappaletta ja ruutuun (i,j-) niitä on A(i,j-) kappaletta, reittejä ruutuun (i,j) on A(i-,j)+ A(i,j-) kappaletta. Siis A(i,j) = A(i-,j)+ A(i,j-). Koska A(i,) = A(,j) =, niin kaikki arvot voidaan laskea ja täyttää taulukkoon. Näin löydettiin sopiva rekursio ratkaisulle. Ratkaisussa kannattaa käyttää dynaamista taulukointia eli varata taulukko ja laskea arvot siihen alhaalta lähtien: Alkutilanne: Lasketaan taulukoimalla A(2,2) = A(,2)+A(2,) = + = 2 A(3,2) = A(2,2)+A(3,) =2+=3 jne, jolloin lopulta saadaan taulukko Siis reittejä on 20 erilaista.

4 Algoritmi yleistyy helposti n*n laudalle. Tässä tapauksessa täytetään vain n*n-taulukko. Algoritmi on seuraava: Syöte: Luku n>= Tulostus: Palauttaa tehtävässä kuvatun nappulan reittien lukumäärän n*nlaudalla vasemmasta yläkulmasta oikeaan alakulmaan. REITIT(n). varaa n*n-taulukko A[..n,..n] // Täytetään reunat ykkösillä 2. for i= to n do 3. A[i,] = 4. A[,i] = // Täytetään taulukko alhaalta ylös 5. for i= 2 to n do 6. for j=2 to n do 7. A[i,j] = A[i-,j]+A[i,j-] 8. return A[n,n] // Reittien lukumäärä taulukon viimeisessä paikassa Koska algoritmissa täytetään jokainen taulukon alkio täsmälleen kerran vakioaikaisella operaatiolla, 2 algoritmin kompleksisuusluokka on ( n ). Tehtävä 7.4. Olkoon A positiivisia kokonaislukuja sisältävä n*n-taulukko, jonka jokainen vaakarivi ja pystyrivi on kasvavassa järjestyksessä (ts. A, i A 2, i... A n, i ja A i, A i,2... A i, n i,..., n aina, kun ). Suunnittele algoritmi etsimään luku x taulukosta, kun syötteenä annetaan taulukko A ja etsittävä luku. Algoritmi palauttaa luvun esiintymispaikan taulukossa tai arvon NIL, ellei luku esiinny. Algoritmin tulee olla luvun n suhteen lineaariaikainen (luokkaa ( n) ). Ratkaisu. Yksi mahdollisuus olisi toteuttaa algoritmi käyttämällä hajota ja halllitse -tekniikkaa. Voitaisiin esimerkiksi valita taulukon keskimmäinen alkio (A[n/2,n/2]) ja päätellä sen ja luvun x suuruusjärjestyksestä, missä osassa taulukkoa x esiintyy. Sen jälkeen voitaisiin rekursiivisesti hakea lukua x taulukon osista. Näin ei saada kuitenkaan rajattua kerralla pois kuin neljäsosa taulukosta. Esimerkiksi, jos x < A[n/2,n/2], x ei voi esiintyä paikassa A[i,j], missä i>n/2 ja j>n/2. Rekursiivisesta algoritmista tulee melko tehoton. Kannattaakin lähteä liikkeelle taulukon vasemmasta alakulmasta (A[,n]) ja verrata lukuun x. Nyt saadaan, ellei x löydy tästä paikasta, suljettua pois joko ensimmäinen pystyrivi (jos x>a[,n]) tai alin vaakarivi (jos x<a[,n]). Ensimmäisessä tapauksessa voidaan siis seuraavaksi tutkia paikka A[2,n] ja toisessa tapauksessa A[,n-]. Näin etenemällä löydetään x tai viimeistään 2n askeleen kuluttua päädytään taulukon reunalle ja voidaan todeta, että x ei esiinny taulukossa. Siis algoritmi on lineaariaikainen luvun n suhteen. Alla on algoritmi tarkemmin:

5 Syöte: Kokonaislukutaulukko A[..n,..n], n>= ja haettava luku x. Taulukossa A on A[,i] <= A[2,i]... <= A[n,i] ja A[i,] <= A[i,2]... <= A[i,n] aina, kun i=,...,n Tulostus: Palauttaa luvun x paikan taulukossa A tai arvon NIL, ellei x esiinny siinä. ETSI_LUKU(A,x). cur_x = 2. cur_y = n 3. while cur_x <= n && cur_y >= 4. if x == A[cur_x,cur_y] 5. return [cur_x,cur_y] // Luku löytyi 6. else if x > A[cur_x,cur_y] 7. cur_x = cur_x+ 8. else 9. cur_y = cur_y- 0. return NIL // Luku ei ollut taulukossa Ahneet algoritmit: Tehtävä 7.5 Tietokoneen kovalevyn tallennuskapasiteetti on D megatavua ja sille halutaan tallentaa tiedostot P, P 2,, P n. Tiedoston P i koko on s i megatavua. Huomataan, että kaikki tiedostot eivät mahdu levylle, koska s + s s n > D. Tarkastele seuraavien ahneiden algoritmien oikeellisuutta: a) Halutaan tallentaa mahdollisimman monta tiedostoa. Valitaan strategiaksi tallentaa tiedostoja pienimmästä suurimpaan kokojärjestyksessä, kunnes levylle ei mahdu enää tiedostoja. b) Halutaan käyttää mahdollisimman suuri osa levyn tallennustilasta. Tällä kerralla tallennetaan tiedostoja suurimmasta pienimpään, kunnes mikään tiedosto ei enää mahdu levylle. Jos algoritmi on mielestäsi oikea, osoita se. Jos algoritmi ei ole oikea, keksi vastaesimerkki. Ratkaisu. a) Oletetaan, että tiedostot ovat kokojärjestyksessä s s 2 s n Tällöin on etsittävä mahdollisimman monen luvun joukko niin, että lukujen summa on korkeintaan D. Ahneella menetelmällä saatu ratkaisu on täten (s, s 2,, s k) jollakin arvolla k ja s + s s k+ > D. Olkoon nyt (s i, s i2,, s im) ratkaisu, jossa luvut ovat kokojärjestyksessä ja jossa on enemmän lukuja kuin ahneella menetelmällä saadussa ratkaisussa. Tällöin s im on kooltaan vähintään yhtä suuri kuin s k. Lisäksi jokin ahneen menetelmän luvuista s j puuttuu uudesta ratkaisusta, muutenhan ahne menetelmä voisi laajentaa ratkaisua. Uudessa ratkaisussa voidaan siten korvata s im luvulla s j. Etenemällä näin huomataan, että uuden ratkaisun lukuja voidaan korvata ahneen menetelmän luvuilla kunnes kaikki luvut (s, s 2,, s k) esiintyvät siinä. Mutta näiden lisäksi ei muita lukuja voi esiintyä. Siten kohdan a algoritmi on korrekti. b) Tällä kertaa annettu ahne ratkaisu on virheellinen. Olkoot tiedostojen koot megatavuissa 2,D-2 ja D-. Annetulla algoritmilla valittaisiin ensin suurin tiedosto, minkä jälkeen muita tiedostoja ei enää mahdu. Tallennustilaa jää megatavu käyttämättä. Sen sijaan valitsemalla kaksi pienempää tiedostoa saadaan levytila täyteen. Tehtävä 7.6 Määritä optimaalinen Huffmanin koodi seuraavalle aakkosten a, b, c, d, e, f frekvenssijonolle: a:34, b:2, c:22, d:8, e:9, f:5 (yhteensä = 00 merkkiä). Kuinka monta bittiä säästyy verrattuna siihen, että jokainen aakkonen esitetään kolmella bitillä? Ratkaisu. Muodostetaan ensin juuresta koostuvat puut ja lajitellaan ne. Tämän jälkeen yhdistetään aina kaksi juuriarvoltaan pienintä puuta uudeksi puuksi, jonka juuriarvo on yhdistettyjen puiden juuriarvojen summa. Lopulta päädytään yhteen puuhun, joka esittää valmista koodia:

6 VAIHE I VAIHE II VAIHE III b:2 d:8 c:22 a:34 b:2 4 d:8 c:22 a:34 d:8 c:22 26 a:34 b:2 4 VAIHE IV 26 a:34 40 b:2 4 d:8 c:22 VAIHE V 40 d:8 c: a:34 b:2 4 VAIHE VI: Valmis koodi d:8 c: a:34 b:2 4 Siis saatiin koodi: Merkki a b c d e f Koodi Lasketaan, paljonko tilaa säästyy verrattuna kolmen bitin pakkaukseen: Merkki a b c d e f Prosenttiosuus Jos tiedostossa olisi 00 merkkiä, kuluisi 34*2+2*3+2*22+2*8+4*9+4*5 = = 240 bittiä. Kolmella bitillä koodaaminen veisi 300 bittiä. Näin ollen Huffmanin koodi vie tilaa 80% kolmen bitin koodauksen tallennustilasta. Säästö on 20%.

811312A Tietorakenteet ja algoritmit, 2015-2016. VI Algoritmien suunnitteluparadigmoja

811312A Tietorakenteet ja algoritmit, 2015-2016. VI Algoritmien suunnitteluparadigmoja 811312A Tietorakenteet ja algoritmit, 2015-2016 VI Algoritmien suunnitteluparadigmoja Sisältö 1. Hajota ja hallitse-menetelmä 2. Dynaaminen taulukointi 3. Ahneet algoritmit 4. Peruuttavat algoritmit 811312A

Lisätiedot

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: Tietorakenteet, laskuharjoitus 10, ratkaisuja 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: SamaLuku(T ) 2 for i = 1 to T.length 1 3 if T [i] == T [i + 1] 4 return True 5 return

Lisätiedot

Tietorakenteet ja algoritmit - syksy 2015 1

Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 2 Tietorakenteet ja algoritmit Johdanto Ari Korhonen Tietorakenteet ja algoritmit - syksy 2015 1. JOHDANTO 1.1 Määritelmiä

Lisätiedot

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari 1 1. JOHDANTO 1.1 Määritelmiä 1.2 Tietorakenteen ja algoritmin valinta 1.3 Algoritmit ja tiedon määrä 1.4 Tietorakenteet ja toiminnot 1.5 Esimerkki:

Lisätiedot

Algoritmit 1. Luento 13 Ti 23.2.2016. Timo Männikkö

Algoritmit 1. Luento 13 Ti 23.2.2016. Timo Männikkö Algoritmit 1 Luento 13 Ti 23.2.2016 Timo Männikkö Luento 13 Suunnittelumenetelmät Taulukointi Kapsäkkiongelma Ahne menetelmä Verkon lyhimmät polut Dijkstran menetelmä Verkon lyhin virittävä puu Kruskalin

Lisätiedot

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti Luku 6 Dynaaminen ohjelmointi Dynaamisessa ohjelmoinnissa on ideana jakaa ongelman ratkaisu pienempiin osaongelmiin, jotka voidaan ratkaista toisistaan riippumattomasti. Jokaisen osaongelman ratkaisu tallennetaan

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

3. Hakupuut. B-puu on hakupuun laji, joka sopii mm. tietokantasovelluksiin, joissa rakenne on talletettu kiintolevylle eikä keskusmuistiin.

3. Hakupuut. B-puu on hakupuun laji, joka sopii mm. tietokantasovelluksiin, joissa rakenne on talletettu kiintolevylle eikä keskusmuistiin. 3. Hakupuut Hakupuu on listaa tehokkaampi dynaamisen joukon toteutus. Erityisesti suurilla tietomäärillä hakupuu kannattaa tasapainottaa, jolloin päivitysoperaatioista tulee hankalampia toteuttaa mutta

Lisätiedot

811312A Tietorakenteet ja algoritmit 2015-2016. V Verkkojen algoritmeja Osa 2 : Kruskalin ja Dijkstran algoritmit

811312A Tietorakenteet ja algoritmit 2015-2016. V Verkkojen algoritmeja Osa 2 : Kruskalin ja Dijkstran algoritmit 811312A Tietorakenteet ja algoritmit 2015-2016 V Verkkojen algoritmeja Osa 2 : Kruskalin ja Dijkstran algoritmit Sisältö 1. Johdanto 2. Leveyshaku 3. Syvyyshaku 4. Kruskalin algoritmi 5. Dijkstran algoritmi

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat

Lisätiedot

Koe ma 1.3 klo 16-19 salissa A111, koeaika kuten tavallista 2h 30min

Koe ma 1.3 klo 16-19 salissa A111, koeaika kuten tavallista 2h 30min Koe Koe ma 1.3 klo 16-19 salissa A111, koeaika kuten tavallista 2h 30min Kokeessa saa olla mukana A4:n kokoinen kaksipuolinen käsiten tehty, itse kirjoitettu lunttilappu 1 Tärkeää ja vähemmäntärkeää Ensimmäisen

Lisätiedot

1.1 Tavallinen binäärihakupuu

1.1 Tavallinen binäärihakupuu TIE-20100 Tietorakenteet ja algoritmit 1 1 Puurakenteet http://imgur.com/l77fy5x Tässä luvussa käsitellään erilaisia yleisiä puurakenteita. ensin käsitellään tavallinen binäärihakupuu sitten tutustutaan

Lisätiedot

Lisää segmenttipuusta

Lisää segmenttipuusta Luku 24 Lisää segmenttipuusta Segmenttipuu on monipuolinen tietorakenne, joka mahdollistaa monenlaisten kyselyiden toteuttamisen tehokkaasti. Tähän mennessä olemme käyttäneet kuitenkin segmenttipuuta melko

Lisätiedot

10. Painotetut graafit

10. Painotetut graafit 10. Painotetut graafit Esiintyy monesti sovelluksia, joita on kätevä esittää graafeina. Tällaisia ovat esim. tietoverkko tai maantieverkko. Näihin liittyy erinäisiä tekijöitä. Tietoverkkoja käytettäessä

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 7.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 7.2.2011 1 / 39 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto 811312A Tietorakenteet ja algoritmit 2015-2016 I Johdanto Sisältö 1. Algoritmeista ja tietorakenteista 2. Algoritmien analyysistä 811312A TRA, Johdanto 2 I.1. Algoritmeista ja tietorakenteista I.1.1. Algoritmien

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 16.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 16.2.2010 1 / 41 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

8. Lajittelu, joukot ja valinta

8. Lajittelu, joukot ja valinta 8. Lajittelu, joukot ja valinta Yksi tietojenkäsittelyn klassisista tehtävistä on lajittelu (järjestäminen) (sorting) jo mekaanisten tietojenkäsittelylaitteiden ajalta. Lajiteltua tietoa tarvitaan lukemattomissa

Lisätiedot

Algoritmit 1. Luento 10 Ke 11.2.2015. Timo Männikkö

Algoritmit 1. Luento 10 Ke 11.2.2015. Timo Männikkö Algoritmit 1 Luento 10 Ke 11.2.2015 Timo Männikkö Luento 10 Algoritminen ongelman ratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Väliinsijoituslajittelu Valintalajittelu

Lisätiedot

Tiraka, yhteenveto tenttiinlukua varten

Tiraka, yhteenveto tenttiinlukua varten Tiraka, yhteenveto tenttiinlukua varten TERMEJÄ Tietorakenne Tietorakenne on tapa tallettaa tietoa niin, että tietoa voidaan lisätä, poistaa, muokata ja hakea. Tietorakenteet siis säilövät tiedon niin,

Lisätiedot

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Graafit ja verkot Suuntamaton graafi: eli haaroja Joukko solmuja ja joukko järjestämättömiä solmupareja Suunnattu graafi: Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Haaran päätesolmut:

Lisätiedot

Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin:

Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin: A Numeropeli Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin: 1 2 3 4 5 6 7 8 9 Voit jokaisella siirrolla vaihtaa keskenään kaksi vierekkäistä lukua vaaka- tai

Lisätiedot

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5. 1. Toteuta Pythonilla seuraava ohjelma:

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5. 1. Toteuta Pythonilla seuraava ohjelma: Kerta 2 Kerta 3 Kerta 4 Kerta 5 Kerta 2 1. Toteuta Pythonilla seuraava ohjelma: 2. Tulosta Pythonilla seuraavat luvut allekkain a. 0 10 (eli, näyttää tältä: 0 1 2 3 4 5 6 7 8 9 10 b. 0 100 c. 50 100 3.

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT PUURAKENTEET, BINÄÄRIPUU, TASAPAINOTETUT PUUT MIKÄ ON PUUTIETORAKENNE? Esim. Viereinen kuva esittää erästä puuta. Tietojenkäsittelytieteessä puut kasvavat alaspäin.

Lisätiedot

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia Kukin alkio (viite) talletettuna solmuun (node) vastaa paikan käsitettä

Lisätiedot

815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset

815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset 815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/

Lisätiedot

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006 TURUN YLIOPISTO DEMO III Informaatioteknologian laitos tehtävät Olio-ohjelmoinnin perusteet / Salo 15.2.2006 1. Tässä tehtävässä tarkastellaan erääntyviä laskuja. Lasku muodostaa oman luokkansa. Laskussa

Lisätiedot

Harjoitus 3 (3.4.2014)

Harjoitus 3 (3.4.2014) Harjoitus 3 (3..) Tehtävä Olkoon kaaren paino c ij suurin sallittu korkeus tieosuudella (i, j). Etsitään reitti solmusta s solmuun t siten, että reitin suurin sallittu korkeus pienimmillään olisi mahdollisimman

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 27.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 27.1.2010 1 / 37 If-käsky toistokäskyn sisällä def main(): HELLERAJA = 25.0 print "Anna lampotiloja, lopeta -300:lla."

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 26.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 26.1.2011 1 / 34 Luentopalaute kännykällä käynnissä! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast

Lisätiedot

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu Taulukot Taulukon määrittely ja käyttö Taulukko metodin parametrina Taulukon sisällön kopiointi toiseen taulukkoon Taulukon lajittelu esimerkki 2-ulottoisesta taulukosta 1 Mikä on taulukko? Taulukko on

Lisätiedot

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla ohjelmoida useita komponenteiltaan ja rakenteeltaan

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 16.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.9.2015 1 / 26 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

v 8 v 9 v 5 C v 3 v 4

v 8 v 9 v 5 C v 3 v 4 Verkot Verkko on (äärellinen) matemaattinen malli, joka koostuu pisteistä ja pisteitä toisiinsa yhdistävistä viivoista. Jokainen viiva yhdistää kaksi pistettä, jotka ovat viivan päätepisteitä. Esimerkiksi

Lisätiedot

A* Reitinhaku Aloittelijoille

A* Reitinhaku Aloittelijoille A* Reitinhaku Aloittelijoille Alkuperäisen artikkelin kirjoittanut Patrick Lester, suomentanut Antti Veräjänkorva. Suom. huom. Tätä kääntäessäni olen pyrkinyt pitämään saman alkuperäisen tyylin ja kerronnan.

Lisätiedot

Harjoitus 3 (31.3.2015)

Harjoitus 3 (31.3.2015) Harjoitus (..05) Tehtävä Olkoon kaaren paino c ij suurin sallittu korkeus tieosuudella (i,j). Etsitään reitti solmusta s solmuun t siten, että reitin suurin sallittu korkeus pienimmillään olisi mahdollisimman

Lisätiedot

Muita rekisteriallokaatiomenetelmiä

Muita rekisteriallokaatiomenetelmiä TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 23. marraskuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe E tiistai 1.12. klo 10 koodigenerointi (ilman rekisteriallokaatiota)

Lisätiedot

Metropolia ammattikorkeakoulu 05.02.2015 TI00AA43-3004: Ohjelmointi Kotitehtävät 3

Metropolia ammattikorkeakoulu 05.02.2015 TI00AA43-3004: Ohjelmointi Kotitehtävät 3 : http://users.metropolia.fi/~pasitr/2014-2015/ti00aa43-3004/kt/03/ratkaisut/ Tehtävä 1. (1 piste) Tee ohjelma K03T01.cpp, jossa ohjelmalle syötetään kokonaisluku. Jos kokonaisluku on positiivinen, niin

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 21.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2015 1 / 25 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Liite 2: Verkot ja todennäköisyyslaskenta

Liite 2: Verkot ja todennäköisyyslaskenta Ilkka Mellin Todennäköisyyslaskenta Liite 2: Verkot ja todennäköisyyslaskenta Verkot TKK (c) Ilkka Mellin (2007) 1 Verkko eli graafi: Määritelmä 1/2 Verkko eli graafi muodostuu pisteiden joukosta V, särmien

Lisätiedot

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukot C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukon muuttujilla (muistipaikoilla) on yhteinen nimi. Jokaiseen yksittäiseen

Lisätiedot

Verkot ja todennäköisyyslaskenta. Verkot ja todennäköisyyslaskenta. Verkot ja todennäköisyyslaskenta: Esitiedot

Verkot ja todennäköisyyslaskenta. Verkot ja todennäköisyyslaskenta. Verkot ja todennäköisyyslaskenta: Esitiedot T (c) Ilkka Mellin (2004) 1 Johdatus todennäköisyyslaskentaan T (c) Ilkka Mellin (2004) 2 : Mitä oimme? Verkkoteoria on hyödyllinen sovelletun matematiikan osa-alue, jolla on sovelluksia esimerkiksi logiikassa,

Lisätiedot

Mat-2.3114 Investointiteoria Laskuharjoitus 3/2008, Ratkaisut 05.02.2008

Mat-2.3114 Investointiteoria Laskuharjoitus 3/2008, Ratkaisut 05.02.2008 Korko riippuu usein laina-ajan pituudesta ja pitkille talletuksille maksetaan korkeampaa korkoa. Spot-korko s t on se korko, joka kertyy lainatulle pääomalle hetkeen t (=kokonaisluku) mennessä. Spot-korot

Lisätiedot

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään Ohjelmointi Ohjelmoinnissa koneelle annetaan tarkkoja käskyjä siitä, mitä koneen tulisi tehdä. Ohjelmointikieliä on olemassa useita satoja. Ohjelmoinnissa on oleellista asioiden hyvä suunnittelu etukäteen.

Lisätiedot

Puzzle-SM 2000. Loppukilpailu 18.6.2000 Oulu

Puzzle-SM 2000. Loppukilpailu 18.6.2000 Oulu Puzzle-SM Loppukilpailu 8.6. Oulu Puzzle Ratkontaaikaa tunti Ratkontaaikaa tunti tsi palat 6 Varjokuva 7 Parinmuodostus 7 Paikallista 7 Metris 7 ominopalapeli Kerrostalot Pisteestä toiseen Heinäsirkka

Lisätiedot

2 Konekieli, aliohjelmat, keskeytykset

2 Konekieli, aliohjelmat, keskeytykset ITK145 Käyttöjärjestelmät, kesä 2005 Tenttitärppejä Tässä on lueteltu suurin piirtein kaikki vuosina 2003-2005 kurssin tenteissä kysytyt kysymykset, ja mukana on myös muutama uusi. Jokaisessa kysymyksessä

Lisätiedot

Neljän alkion kunta, solitaire-peli ja

Neljän alkion kunta, solitaire-peli ja Neljän alkion kunta, solitaire-peli ja taikaneliöt Kalle Ranto ja Petri Rosendahl Matematiikan laitos, Turun yliopisto Nykyisissä tietoliikennesovelluksissa käytetään paljon tekniikoita, jotka perustuvat

Lisätiedot

Windows 8 -kurssi. Kurssista

Windows 8 -kurssi. Kurssista Windows 8 -kurssi petri.kiiskinen@wellamo-opisto.fi Kurssista Maanantaisin ja keskiviikkoisin 9. 16.9.2013 Kolme kertaa 3 x 4 h = 12 h Klo 12:15 15:30 Puolessa välissä pidetään vartin kahvitauko Kännykät

Lisätiedot

Kombinatorinen optimointi

Kombinatorinen optimointi Kombinatorinen optimointi Sallittujen pisteiden lukumäärä on äärellinen Periaatteessa ratkaisu löydetään käymällä läpi kaikki pisteet Käytännössä lukumäärä on niin suuri, että tämä on mahdotonta Usein

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

1 YLEISTÄ 1. 2 KARTAT 2 2.1 yleistä 2 2.2 Avoimien aineistojen tiedostopalvelu 2 3 KARTAN TEKEMINEN JA SIIRTÄMINEN PUHELIMEEN 4

1 YLEISTÄ 1. 2 KARTAT 2 2.1 yleistä 2 2.2 Avoimien aineistojen tiedostopalvelu 2 3 KARTAN TEKEMINEN JA SIIRTÄMINEN PUHELIMEEN 4 MyKartta Ohje SISÄLLYS 1 YLEISTÄ 1 2 KARTAT 2 2.1 yleistä 2 2.2 Avoimien aineistojen tiedostopalvelu 2 3 KARTAN TEKEMINEN JA SIIRTÄMINEN PUHELIMEEN 4 LIITTEET 1 1 YLEISTÄ Tähän oppaaseen on koottu suppeasti

Lisätiedot

Pienin virittävä puu (minimum spanning tree)

Pienin virittävä puu (minimum spanning tree) Pienin virittävä puu (minimum spanning tree) Jatkossa puu tarkoittaa vapaata puuta (ks. s. 11) eli suuntaamatonta verkkoa, joka on yhtenäinen: minkä tahansa kahden solmun välillä on polku syklitön: minkä

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT ALGORITMIEN ANALYYSISTÄ 1.ratkaisu Laskentaaika hakkeri - optimoitu ALGORITMIANALYYSIÄ hyvä algoritmi hakkeri -optimoitu hyvä algoritmi Tehtävän koko Kuva mukailtu

Lisätiedot

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten, Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten, että se pystyy suorittamaan kaikki mahdolliset algoritmit?

Lisätiedot

Algoritmit 2. Luento 8 Ke 13.4.2016. Timo Männikkö

Algoritmit 2. Luento 8 Ke 13.4.2016. Timo Männikkö Algoritmit 2 Luento 8 Ke 13.4.2016 Timo Männikkö Luento 8 Rekursioyhtälöt Master-lause Lähin pistepari Ahne menetelmä Lyhin virittävä puu Kruskalin menetelmä Primin menetelmä Merkkitiedon tiivistäminen

Lisätiedot

Zeon PDF Driver Trial

Zeon PDF Driver Trial Matlab-harjoitus 2: Kuvaajien piirto, skriptit ja funktiot. Matlabohjelmoinnin perusteita Numeerinen integrointi trapezoidaalimenetelmällä voidaan tehdä komennolla trapz. Esimerkki: Vaimenevan eksponentiaalin

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen

Lisätiedot

4. Perustietorakenteet

4. Perustietorakenteet 4. Perustietorakenteet Tässä osassa käsitellään erilaisia tietorakenteita, joita algoritmit käyttävät toimintansa perustana. Aluksi käydään läpi tietorakenteen abstrakti määritelmä. Tämän jälkeen käsitellään

Lisätiedot

Harjoitus 1 (20.3.2014)

Harjoitus 1 (20.3.2014) Harjoitus 1 (20.3.2014) Tehtävä 1 Piirretään tilanteesta verkko, jossa kaupungeille on annetttu seuraavat numerot: 1 = Turku 2 = Tampere 3 = Hämeenlinna 4 = Imatra 5 = Jyväskylä. 5 2 149(5) 190(4) 113(1)

Lisätiedot

1. Johdanto (Harel luvut 1 2)

1. Johdanto (Harel luvut 1 2) 1. Johdanto (Harel luvut 1 2) Kurssilla tutustutaan tietojenkäsittelytieteen keskeisiin algoritmisiin käsitteisiin, ideoihin, menetelmiin ja tuloksiin. Oma motivaatio: tietojenkäsittelytieteen oma juttu

Lisätiedot

ORMS2020 Päätöksenteko epävarmuuden vallitessa Syksy 2008. päätöspuiden avulla tarkastellaan vasta seuraavissa harjoituksissa.

ORMS2020 Päätöksenteko epävarmuuden vallitessa Syksy 2008. päätöspuiden avulla tarkastellaan vasta seuraavissa harjoituksissa. ORMS00 Päätöksenteko epävarmuuden vallitessa Syksy 008 Harjoitus Ratkaisuehdotuksia Nämä harjoitukset liittyvät päätöspuiden rakentamiseen: varsinaista päätöksentekoa päätöspuiden avulla tarkastellaan

Lisätiedot

Puzzle SM 2005 15. 25.7.2005. Pistelasku

Puzzle SM 2005 15. 25.7.2005. Pistelasku Puzzle SM 005 5. 5.7.005 Pistelasku Jokaisesta oikein ratkotusta tehtävästä saa yhden () pisteen, minkä lisäksi saa yhden () bonuspisteen jokaisesta muusta ratkojasta, joka ei ole osannut ratkoa tehtävää.

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT PERUSTIETORAKENTEET LISTA, PINO, JONO, PAKKA ABSTRAKTI TIETOTYYPPI Tietotyyppi on abstrakti, kun se on määritelty (esim. matemaattisesti) ottamatta kantaa varsinaiseen

Lisätiedot

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä 3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä Lineaarinen m:n yhtälön yhtälöryhmä, jossa on n tuntematonta x 1,, x n on joukko yhtälöitä, jotka ovat muotoa a 11 x 1 + + a 1n x n = b 1 a 21

Lisätiedot

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokista Javan alkeistietotyypit ja vastaavat kääreluokat Autoboxing Integer-luokka Double-luokka Kääreluokista Alkeistietotyyppiset muuttujat (esimerkiksi

Lisätiedot

Matematiikan ja tilastotieteen laitos Algebra I - Kesä 2009 Ratkaisuehdoituksia harjoituksiin 8 -Tehtävät 3-6 4 sivua Heikki Koivupalo ja Rami Luisto

Matematiikan ja tilastotieteen laitos Algebra I - Kesä 2009 Ratkaisuehdoituksia harjoituksiin 8 -Tehtävät 3-6 4 sivua Heikki Koivupalo ja Rami Luisto Matematiikan ja tilastotieteen laitos Algebra I - Kesä 2009 Ratkaisuehdoituksia harjoituksiin 8 -Tehtävät 3-6 4 sivua Heikki Koivupalo ja Rami Luisto 3. Oletetaan, että kunnan K karakteristika on 3. Tutki,

Lisätiedot

puuta tree hierarkkinen hierarchical

puuta tree hierarkkinen hierarchical 4. Puut Seuraavaksi käsitellään yhtä tärkeimmistä tietojenkäsittelytieteen ei-lineaarisista käsitteistä, puuta (tree). Puut ovat olleet keksintönä todellinen läpimurto, koska niissä luotiin tehokas eilineaari

Lisätiedot

6. Sanakirjat. 6. luku 298

6. Sanakirjat. 6. luku 298 6. Sanakirjat Tässä luvussa tarkastellaan käsitettä sanakirja (dictionary). Tällaisen tietorakenteen tehtävä on tallettaa alkioita niin, että tiedonhaku rakenteesta on tehokasta. Nimi vastaa melko hyvin

Lisätiedot

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Esimerkkejä polynomisista ja ei-polynomisista ongelmista Esimerkkejä polynomisista ja ei-polynomisista ongelmista Ennen yleisempiä teoriatarkasteluja katsotaan joitain tyypillisiä esimerkkejä ongelmista ja niiden vaativuudesta kaikki nämä ongelmat ratkeavia

Lisätiedot

2 Haku ja lajittelu. 2.1 Luvun hakeminen taulukosta X?? n-1. Haku ja lajittelu 35

2 Haku ja lajittelu. 2.1 Luvun hakeminen taulukosta X?? n-1. Haku ja lajittelu 35 Haku ja lajittelu 35 2 Haku ja lajittelu Tässä luvussa käsitellään tiedon hakemista taulukosta sekä taulukon lajittelua. Useista erilaisista lajittelumenetelmistä on kirjaan otettu suurehko osa. Lajittelumenetelmien

Lisätiedot

110. 111. 112. 113. 114. 4. Matriisit ja vektorit. 4.1. Matriisin käsite. 4.2. Matriisialgebra. Olkoon A = , B = Laske A + B, 5 14 9, 1 3 3

110. 111. 112. 113. 114. 4. Matriisit ja vektorit. 4.1. Matriisin käsite. 4.2. Matriisialgebra. Olkoon A = , B = Laske A + B, 5 14 9, 1 3 3 4 Matriisit ja vektorit 4 Matriisin käsite 42 Matriisialgebra 0 2 2 0, B = 2 2 4 6 2 Laske A + B, 2 A + B, AB ja BA A + B = 2 4 6 5, 2 A + B = 5 9 6 5 4 9, 4 7 6 AB = 0 0 0 6 0 0 0, B 22 2 2 0 0 0 6 5

Lisätiedot

Racket ohjelmointia osa 2. Tiina Partanen Lielahden koulu 2014

Racket ohjelmointia osa 2. Tiina Partanen Lielahden koulu 2014 Racket ohjelmointia osa 2 Tiina Partanen Lielahden koulu 2014 Sisältö 1) Funktiot ja muuttujat (kertaus) 2) Animaatiot & pelit (big-bang) 3) Vertailuoperaattorit sekä boolean arvot 4) Tietorakenteet (struct)

Lisätiedot

Kuva 7.2 vastaustaulu harjoitukseen 7.2

Kuva 7.2 vastaustaulu harjoitukseen 7.2 Harjoitus 7. Lataa tiedosto http://users.metropolia.fi/~pasitr/opas/ran13b/data/ran13b.zip levylle Z: ja pura se. Kun olet tehnyt kaikki seuraavat 17 tehtävää palauta Tuubiin harjoituksen 7 vastauksena

Lisätiedot

Tietotyypit ja operaattorit

Tietotyypit ja operaattorit Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto

Lisätiedot

3. Binääripuu, Java-toteutus

3. Binääripuu, Java-toteutus 3. Binääripuu, Java-toteutus /*-------------------------------------------------------------/ / Rajapinta SearchTree: binäärisen hakupuun käsittelyrajapinta / / Metodit: / / void insert( Comparable x );

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

Lisätiedot

SUDOKU - ratkaisuohjeet. Jarno Tuimala 18.9.2005

SUDOKU - ratkaisuohjeet. Jarno Tuimala 18.9.2005 SUDOKU - ratkaisuohjeet Jarno Tuimala 18.9.2005 Japanilainen sudoku Seuraavassa on esitetty ohjeet japanilaistyyppisten sudoku-ristikoiden ratkontaan. Japanilaisia ristikoita luonnehtivat seuraavat piirteet:

Lisätiedot

Luento 5. Timo Savola. 28. huhtikuuta 2006

Luento 5. Timo Savola. 28. huhtikuuta 2006 UNIX-käyttöjärjestelmä Luento 5 Timo Savola 28. huhtikuuta 2006 Osa I Shell-ohjelmointi Ehtolause Lausekkeet suoritetaan jos ehtolausekkeen paluuarvo on 0 if ehtolauseke then lauseke

Lisätiedot

Muuttujien määrittely

Muuttujien määrittely Tarja Heikkilä Muuttujien määrittely Määrittele muuttujat SPSS-ohjelmaan lomakkeen kysymyksistä. Harjoitusta varten lomakkeeseen on muokattu kysymyksiä kahdesta opiskelijoiden tekemästä Joupiskan rinneravintolaa

Lisätiedot

Pelaajan tietojen lisääminen

Pelaajan tietojen lisääminen Käytön aloitus Ohjelma käynnistetään tuplaklikkaamalla Jäseri-kuvaketta työpöydältä, tai käynnistä-valikosta. Ohjelmasta aukeaa seuraavanlainen valikko; Jäsenrekisterissä muutetaan jäsentietoja, maksukirjassa

Lisätiedot

Valitse ruudun yläosassa oleva painike Download Scilab.

Valitse ruudun yläosassa oleva painike Download Scilab. Luku 1 Ohjeita ohjelmiston Scilab käyttöön 1.1 Ohjelmiston lataaminen Ohjeet ohjelmiston lataamiseen Windows-koneelle. Mene verkko-osoitteeseen www.scilab.org. Valitse ruudun yläosassa oleva painike Download

Lisätiedot

ORMS2020 Päätöksenteko epävarmuuden vallitessa Syksy 2010 Harjoitus 3

ORMS2020 Päätöksenteko epävarmuuden vallitessa Syksy 2010 Harjoitus 3 ORMS2020 Päätöksenteko epävarmuuden vallitessa Syksy 2010 Harjoitus 3 Ratkaisuehdotuksia 1. (a) Päätöspuu on matala, jos mitään sattumasolmua ei välittömästi seuraa sattumasolmu eikä mitään päätössolmua

Lisätiedot

1 Erilaisia tapoja järjestää

1 Erilaisia tapoja järjestää TIE-20100 Tietorakenteet ja algoritmit 1 1 Erilaisia tapoja järjestää Käsitellään seuraavaksi järjestämisalgoritmeja, jotka perustuvat muihin kuin vertailuun alkioiden oikean järjestyksen saamiseksi. Lisäksi

Lisätiedot

Harjoitus 1 (17.3.2015)

Harjoitus 1 (17.3.2015) Harjoitus 1 (17.3.2015) Tehtävä 1 Piirretään tilanteesta verkko, jossa kaupungeille on annetttu seuraavat numerot: 1 = Turku 2 = Tampere 3 = Helsinki 4 = Kuopio 5 = Joensuu. a) Tehtävänä on ratkaista Bellman

Lisätiedot

Johdatus Ohjelmointiin

Johdatus Ohjelmointiin Johdatus Ohjelmointiin Syksy 2006 Viikko 2 13.9. - 14.9. Tällä viikolla käsiteltävät asiat Peruskäsitteitä Kiintoarvot Tiedon tulostus Yksinkertaiset laskutoimitukset Muuttujat Tiedon syöttäminen Hyvin

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 1 1 Matemaattisesta päättelystä Matemaattisen analyysin kurssin (kuten minkä tahansa matematiikan kurssin) seuraamista helpottaa huomattavasti, jos opiskelija ymmärtää

Lisätiedot

KOMPLEKSILUVUT C. Rationaaliluvut Q. Irrationaaliluvut

KOMPLEKSILUVUT C. Rationaaliluvut Q. Irrationaaliluvut KOMPLEKSILUVUT C Luonnolliset luvut N Kokonaisluvut Z Rationaaliluvut Q Reaaliluvut R Kompleksi luvut C Negat kokonaisluvut Murtoluvut Irrationaaliluvut Imaginaariluvut Erilaisten yhtälöiden ratkaiseminen

Lisätiedot

Tietorakenteet ja algoritmit Hakurakenteet Ari Korhonen

Tietorakenteet ja algoritmit Hakurakenteet Ari Korhonen Tietorakenteet ja algoritmit Hakurakenteet Ari Korhonen 27.10. & 3.11.2015 Tietorakenteet ja algoritmit - syksy 2015 1 8. HAKURAKENTEET (dictionaries) 8.1 Haku (vrt. sanakirjahaku) 8.2 Listat tallennusrakenteina

Lisätiedot

Turmeleeko ohjelmointi nuorisomme?

Turmeleeko ohjelmointi nuorisomme? Solmu 2/2015 1 Turmeleeko ohjelmointi nuorisomme? Antti Laaksonen Tietojenkäsittelytieteen laitos, Helsingin yliopisto ahslaaks@cs.helsinki.fi Uuden peruskoulun opetussuunnitelman mukaan syksystä 2016

Lisätiedot

Webmail on monipuolinen työkalu jolla voi tehdä paljon muutakin kuin lukea sähköpostia. Tässä ohjeessa on lyhyesti esitelty joitakin sen ominaisuuksia. Peruspostilaatikossa ei ole kaikkia ominaisuuksia,

Lisätiedot

MultiBoot Käyttöopas

MultiBoot Käyttöopas MultiBoot Käyttöopas Copyright 2006 Hewlett-Packard Development Company, L.P. Tässä olevat tiedot voivat muuttua ilman ennakkoilmoitusta. Ainoat HP:n tuotteita ja palveluja koskevat takuut mainitaan erikseen

Lisätiedot

Algoritmit 1. Luento 14 Ke 25.2.2015. Timo Männikkö

Algoritmit 1. Luento 14 Ke 25.2.2015. Timo Männikkö Algoritmit 1 Luento 14 Ke 25.2.2015 Timo Männikkö Luento 14 Heuristiset menetelmät Heuristiikkoja kapsäkkiongelmalle Kauppamatkustajan ongelma Lähimmän naapurin menetelmä Kertaus ja tenttivinkit Algoritmit

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.2.2011 1 / 37 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

Kurssikoe on maanantaina 29.6. Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla.

Kurssikoe on maanantaina 29.6. Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla. HY / Avoin ylioisto Johdatus yliopistomatematiikkaan, kesä 201 Harjoitus 7 Ratkaisut palautettava viimeistään perjantaina 26.6.201 klo 16.00. Huom! Luennot ovat salissa CK112 maanantaista 1.6. lähtien.

Lisätiedot

B. 2 E. en tiedä C. 6. 2 ovat luonnollisia lukuja?

B. 2 E. en tiedä C. 6. 2 ovat luonnollisia lukuja? Nimi Koulutus Ryhmä Jokaisessa tehtävässä on vain yksi vastausvaihtoehto oikein. Laske tehtävät ilman laskinta.. Missä pisteessä suora y = 3x 6 leikkaa x-akselin? A. 3 D. B. E. en tiedä C. 6. Mitkä luvuista,,,

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 3.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.2.2010 1 / 36 Esimerkki: asunnon välityspalkkio Kirjoitetaan ohjelma, joka laskee kiinteistönvälittäjän asunnon

Lisätiedot

Pika-aloitusopas. Sisältö: Projektin luominen Projektin muokkaaminen ja hallinnointi Projektin/arvioinnin tulosten tarkastelu

Pika-aloitusopas. Sisältö: Projektin luominen Projektin muokkaaminen ja hallinnointi Projektin/arvioinnin tulosten tarkastelu Pika-aloitusopas Sisältö: Projektin luominen Projektin muokkaaminen ja hallinnointi Projektin/arvioinnin tulosten tarkastelu Tämä asiakirja on laadittu auttamaan sinua hallinnoimaan nopeasti CEB TalentCentral

Lisätiedot

Ohjeet asiakirjan lisäämiseen arkistoon

Ohjeet asiakirjan lisäämiseen arkistoon Ohjeet asiakirjan lisäämiseen arkistoon 1. Jos koneellesi ei vielä ole asennettu Open Office ohjelmaa, voit ladata sen linkistä joka löytyy Arkisto => Asiakirjapohjat sivulta seuran kotisivuilta. Jos ohjelma

Lisätiedot