Diskreetit rakenteet. Juha Kortelainen

Koko: px
Aloita esitys sivulta:

Download "Diskreetit rakenteet. Juha Kortelainen"

Transkriptio

1 Diskreetit rakenteet P 5 op Juha Kortelainen Syksy 2015

2 Sisältö 1 Algoritmin käsite Mitä algoritmi on? Kontrollirakenteet Muita esimerkkejä algoritmeista Lukujärjestelmät ja niiden muunnokset; lukujen aritmetiikka Reaaliluvut ja kymmenjärjestelmä Binaarijärjestelmä Muuntaminen kymmenjärjestelmästä binaarijärjestelmään Oktaali- ja heksadesimaalijärjestelmät Aritmetiikka muissa kuin kymmenjärjestelmässsä Lukujen esittäminen tietokoneessa Kokonaislukujen esittäminen Kokonaislukuaritmetiikka Reaalilukujen esittäminen Reaalilukuaritmetiikka Logiikka (propositiokalkyyli, predikaattikalkyylin alkeet) Logiikka ja laskeminen tietokoneella Propositiot

3 3.3 Loogiset operaatiot (konnektiivit) ja totuustaulut Yhdistetyt propositiot ja lauselogiikan ilmaisut Looginen ekvivalenssi Logiikan lait Loogisesta päättelystä Predikaattilogiikka Todistusmenetelmiä Joukot Johdanto Osajoukot, joukko-operaatiot ja Vennin diagrammit Joukon koko ja joukkojen karteesinen tulo Joukkojen tietokone-esitys Relaatiot Funktiot ja laskenta tietokoneella Yhdistetty funktio ja käänteisfunktio Funktiot ohjelmointikielissä Rekursio ja jonot Todistaminen induktiolla Induktio ja rekursio Lineaarinen rekursioyhtälö Rekursiivisesti määritellyt funktiot ja rekursiiviset algoritmit Alkeislukuteoria (jaollisuus ja siihen liittyvät algoritmit) Mitä lukuteoria on Jaollisuus ja alkuluvut

4 5.3 Suurin yhteinen tekijä ja Euklideen algoritmi Kongruenssit Pseudosatunnaislukujen generointi Kombinatoriikka (lukumäärien laskeminen) Kombinatoriikka ja laskenta tietokeoneella Summa- ja erotusperiaate Tuloperiaate Permutaatiot Kombinaatiot Otos palautuksella: mikä on permutaatioiden ja kombinaatioiden lukumäärä Laatikkoperiaate Verkkoteoriaa Mitä verkko on? Verkkoteorian peruskäsitteet Verkon matriisiesitys Verkkojen isomora Eulerin polut Hamiltonin polut Puut Virittävät puut Juurelliset puut

5 Luku 1 Algoritmin käsite 1.1 Mitä algoritmi on? Keskeinen tehtävä laskennassa (joko käsin tai tietokoneella suoritetussa) on sellaisen prosessin suunnittelu, joka suorittaa annetun tehtävän. Tämä tehtävä voi olla esimerkiksi nimien järjestäminen aakkosjärjestykseen; laskentalaitteiden kytkeminen verkkoon mahdollisimman edullisesti; luvun esityksen muuttaminen kantajärjestelmästä toiseen; viestin salaaminen; digitaalisen piirin suunnittelu mikrosiruun; tai robottikäden liikkeen optimointi. Jokaisessa edellä esitetyssä esimerkkitapauksissa ihminen ja/tai tietokone kykenee suorittamaan tehtävän äärellistä ohjejoukkoa käyttäen askelittain ja yksikäsitteisesti; kyse on algoritmisesta toiminnasta. Esimerkki algoritmista: (käteis)automaatin käyttö. 1. Sujauta pankkikorttisi sille varattuun aukkoon. 2. Kirjoita tunnuslukusi (PIN), kun sitä kysytään. 3. Valitse vaihtoehto 'käteisnosto' valikosta. 4. Kirjoita summa, jonka haluat nostaa. 5. Valitse jompikumpi vaihtoehtoisista kirjaustapahtumista: 'näytölle', 'kuitille'. 6. Ota korttisi ja nostamasi summa. 7. Jos olit valinnut kohdassa 5 vaihtoehdon 'kuitille', ota kuitti. 4

6 Edellä askeleet 1 7 muodostavat ohjejonon, joka voidaan suorittaa peräjälkeen. Kukin ohje on verrattain selkeä ja yksikäsitteinen, joten keskivertoihminen kykenee ohjeita noudattamaan. Lisäksi prosessi pysähtyy äärellisen askelmäärän jälkeen. Olemme kuvanneet algoritmin olennaisia piirteitä. Algoritmilla on mm. seuraavanlaisia ominaisuuksia. 1. Algoritmi annetaan äärellisenä ohjejoukkona (jotain merkintäjärjestelmää/kieltä käyttäen). 2. On olemassa toteuttaja (ihminen, kone), joka pystyy seuraamaan ohjeita ja suorittamaan tarvittavat (lasku)toimenpiteet. 3. On olemassa välineet tiedon tuottamiseen, tallentamiseen ja käyttäänottoon. 4. Olkoon R kohdan 1 ohjejoukko ja M kohdan 2 toteuttaja. Algoritmi käsittelee aina tietoa (syöte) ja tulostaa tietoa (tuloste). Toteuttaja M reagoi ohjeisiin siten, että millä tahansa (sovittua muotoa olevalla) syötteellä (lasku)toimenpiteet ovat yksinkertaisia ja ne suoritetaan askelittain. 5. Toteuttaja M reagoi ohjejoukkoon R siten, että (lasku)toimenpiteet suoritetaan deterministisesti. 6. Syötteen tulee olla sovittua muotoa ja äärellisesti määriteltävissä. Syötteen koolla ei kuitenkaan ole kiinteää ylärajaa. 7. Tiedon tallentamiseen käytettävän muistitilan koko on äärellinen, mutta ei kiinteä. Muistitilan määrää ei siten ole rajoitettu. 8. Jokaisella sovittua muotoa olevalla syötteellä algoritmi pysähtyy äärellisen askelmäärän jälkeen. 9. Jokaisella sovittua muotoa olevalla syötteellä algoritmi joko ei tulosta mitään tai antaa äärellisen, yksikäsitteisen ja hyvin määritellyn tulosteen. Järjestelmää, joka toteuttaa yllä asetetut ehdot kohtia 8 ja 9 mahdollisesti lukuunottamatta, kutsutaan semialgoritmiksi. On siis mahdollista, että semialgoritmi (vaikka syöte olisi sovittua muotoakin) ei pysähdy äärellisessä askelmäärässä ja sen toiminta voi periaatteessa jatkua rajattomiin. Semialgoritmin ottamien askelten (ja sen suorittamien toimenpiteiden) lukumäärä on tälläin ääretön. Tietysti tulostekin voi tälläin olla äärettömän pituinen. Samalla syötteellä semialgoritmin on kuitenkin aina tuotettava sama tulostus. Syötteen ja (mahdollisen) tulostuksen välillä on siten funktionaalinen riippuvuus. 5

7 Algoritmi muistuttaa sevästi tietokoneohjelmaa. Tietokoneohjelma onkin algoritmin toteutus jollakin ohjelmointikielellä. Käytämme tässä termiä 'ohjelmointikieli' ei ainoastaan monikäyttöön tarkoitetuista kielistä kuten Pascal, Java, C ja C++, vaan myös erikoiskielistä, kuten makrokäskyjä sisältävistä taulukkolaskenta- ja tietokantakielistä. Algoritmin suunnittelu on yksi askel ohjelmien kirjoittamisessa. Tästä eteenpäin käsittelemme pääosin sellaisia algoritmeja, jotka voidaan toteuttaa tietokoneella. Jotta algoritmien suunnittelu voitaisiin eriyttää jollakin erityisellä kielellä ohjelmoinnista. Kirjoitamme algoritmit pseudokoodia (eli pseudokieltä) käyttäen. Pseudokoodi on strukturoitua suomea (ja englantia) ja se sallii meidän keskittyä algoritmin rakenteeseen ilman että meidän täytyisi muistaa jonkin ohjelmointikielen yksityiskohtia. Esim. 1. Kirjoita algoritmi, joka laskee ympyrän pinta-alan, kun ympyrän säde on annettu. Ratkaisu. Muistetaaan, että r-säteisen ympyrän pinta-ala on π r 2. Algoritmi on seuraavanlainen: 1. Syöte: r {r on ympyrän säde} 2. ala := π r 2 3. Tuloste: ala Esimerkissä 1 esiintyy useita rakenteita, joita käytetään, kun algoritmeja pseudokoodilla kirjoitetaan: askeleet numeroidaan, jotta niihin viittaminen olisi helppoa. Selittäviä tekstejä, jotka eivät suoritukseen kuulu voidaan aaltosuluissa lisätä askelten tekstiin. Symboli := tarkoittaa sijoituslauseketta; siten asskeleessa 2 lausekkeen π r 2 arvo määritetään ja tulos sijoitetaan muuttujan ala arvoksi. Huomaa, että matematiikan kaavat kirjoitetaan matemaattisin merkinnöin, joten meidän ei tarvitse huolehtia siitä miten kaavan yksityiskohdat kirjoitettaisiin ohjelmointikielellä. 1.2 Kontrollirakenteet Esimerkin 1 algoritmissa askeleet suoritetaan järjestyksessä peräperään. Tavallisesti algoritmit sisältävät kuitenkin kontrollirakenteita, ohjeita, jotka ilmineeraavat kuinka monta kertaa ja/tai millä ehdoilla käskyjä suoritetaan. Itse asiassa aiheuttavat nämä kontrollirakenteet (muistin käytöllä terästettynä) sen että tietokoneet laskentakapasiteetiltaan eroavat tavanomaisista aritmeettisista laskukoneista. 6

8 Esim. 2. Kirjoita algoritmi, joka annetusta äärellisestä reaalilukujonosta määrittää sen pienimmän alkion. Ratkaisu. Karkea: tarkastellaan kutakin jonon lukua erikseen ja pidetään kussakin askeleessa kirjaa siihen asti pienimmästä. 1. Syöte: lukujonon alkioiden lukumäärä n; lukujono x 1, x 2,..., x n 2. min := x 1 3. for i = 2 to n do 3.1. if x i < min then min := x i 4. Tuloste: min Esimerkin 2 algoritmisa esiintyy kaksi kontrollirakennetta: fordo ja if then. Alla olevassa taulukossa listataan tärkeimmär pseudokoodeissamme esiintyvät kontrollirakenteet. Kontrollirakenteet Kontrollirakenne Esimerkki käytöstä ifthen 1. if x < 0 then 1.1. x := x ifthenelse 1. if x 0 then 1.1. y := x else 1.2. tuloste: ' x' ei ole olemassa fordo 1. sum := 0 2. for i = 1 to 10 do 2.1. sum := sum + 1 whiledo 1. while answer y and answer n do 1.1. Tuloste: 'Vastaa y tai n' Syöte: answer repeatuntil 1. i := 0 2. repeat 2.1. i := i Syöte: x i until x i = 0 Esim. 3. Laadi algoritmi, joka annetusta äärellisestä merkkijonosta määrittää koostuuko se pelkästään numeroista vai esiintyykö siinä muitakin symboleita ja tulostaa sitten asianmukaisen ilmoituksen. 7

9 Ratkaisu. 1. Syöte: merkkijonon alkioiden lukumäärä n; merkkijono c 1 c 2 c n 2. i := 0; d := 0 3. while i < n and d = 0 do 3.1. i := i if c i ei ole numero then d := 1 4. if d = 1 then 4.1. Tuloste: 'Merkkijono sisältää muitakin merkkejä kuin numeroita' else 4.2. Tuloste: 'Merkkijono koostuu pelkästään numeroista' Pseudokoodissa esiintyvät (ohjelma)muuttujat ovat tavanomaisia matemaattisia muuttujia i, j, k,..., x, y, z,... tarvittaessa alaindeksillä varustettuna. Pseudokoodin laskuoperaatioita ovat normaalit aritmeettiset laskutoimitukset (esim. yhteen-, vähennys-, kerto- ja jakolasku), joita sovelletaan muuttujiin ja (reaaliluku)vakioihin. Myös tavanomaisia funktioita (esim. potenssiin korotus, juurenotto, eksponentti- ja logaritmifunktiot sekä trigonometriset funktiot) voidaan käyttää. Pseudokielen ehdot ovat muuttujista ja vakioista (ja joskus jopa metakielen sanoista) muodostettuja väittämiä, joiden todenperäisyys voidaan testata. Matemaattisten ehtojen muodostaminen tapahtuu usein relaatioita =,, <,, > ja käyttäen. Pseudokielen lausekkeita ovat, syöttö- ja tulostuslausekkeiden lisäksi, muiden muassa sijoitus if-then if-then-else for-do while-do repeat-until Sijoituslauseke on muotoa x := q oleva rakenne, missä x on muuttuja ja q voi olla vakio tai muuttuja tai vakioista ja muuttujista aritmeettisia operaatioita ja/tai perusfunktioita käyttäen muodostettu lauseke. Sijoituslausekkeen suorittamisen jälkeen muuttujan x arvo on sama kuin lausekkeen q arvo. Ehtolauseke if-then on muotoa if C then S oleva rakenne, missä C on ehto ja S mikä tahansa pseudokielen lauseke. Jos C on voimassa, suoritetaan S. 8

10 Jos C ei ole voimassa, ei tehdä mitään ja lauseke katsotaan suoritetuksi. Ehtolauseke if-then-else on muotoa if C then S 1 else S 2 oleva rakenne, missä C on ehto ja S 1 sekä S 2 mitä tahansa pseudokoodilausekkeita. Jos C on voimassa, suoritetaan S 1, ellei, suoritetaan S 2. Tämän jälkeen lauseke on suoritettu. Lausekkeessa for i = a to b do S on i (indeksi)muuttuja, a ja b kokonaislukuvakioita ja S lauseke. Jos a b, lauseke S suoritetaan peräkkäin i:n arvoilla a, a + 1,..., b. Jos a > b, ei tehdä mitään ja lauseke katsotaan suoritetuksi. Toistolausekkeessa while C do S on C ehto ja S lauseke. Jos C on voimassa, lauseke S suoritetaan ja siirrytään lausekkeen alkuun. Jos C ei ole voimassa, ei tehdä mitään ja lauseke katsotaan suoritetuksi. Täten lausekkeen S suorittaminen toistuu niin kauan kuin ehto C on voimassa. Toistolausekkeessa repeat S until C on S lauseke ja C ehto. Suoritetaan S ja testataan onko C voimassa. Jos C on voimassa, palataan lausekkeen alkuun. Jos C ei ole voimassa, lauseke on suoritettu. Siten lauseke S suoritetaan kerran ja suorittamista jatketaan kunnes ehto C tulee voimaan. Pseudokielen yhdistetty lauseke on mikä tahansa äärellinen jono pseudokielen lausekkeita. Myös yhdistetty lauseke on pseudokielen lauseke. Pseudokieliohjelma on yksinkertaisesti jokin pseudokielen yhdistetty lauseke. Pseudokieliohjelma suoritetaan siten, että sen lausekkeet suoritetaan kirjoitusjärjestyksessä, jokainen lauseke täsmälleen kerran. Huomattakoon, että edellä esitellyissä rakenteissa lausekkeet S, S 1 ja S 2 voivat olla myös yhdistettyjä lausekkeita. Pseudikieli kykenee käsittelemään lukuja, merkkejä, äärellisiä jonoja, äärellisiä joukkoja, taulukoita, pinoja, verkkoja jne. 1.3 Muita esimerkkejä algoritmeista Esim. 4. Kirjoita algoritmi, joka laskee arvon lausekkeelle x n, missä x on mielivaltainen reaaliluku ja n positiivinen kokonaisluku. Tässä oletetaan, että kertolasku on käytettävissä, mutta potenssiin korotus ei ole. Ratkaisu. 1. Syöte: reaaliluku x, luonnollinen luku n 2. s := 1; i := 0 9

11 3. while i < n do 3.1. s := s x 3.2. i := i Tuloste: s Esim. 5. Laadi algoritmi, joka vaihtaa kahden muuttujan arvot. Ratkaisu. 1. {Muuttujien x ja y arvot vaihdetaan} 2. temp := x 3. x := y 4. y := temp Esim. 6. Työpaikkaan hakijoille on pidetty soveltuvuustesti, joka koostuu 30 monivalintakysymyksestä. Kullekin testiin osallistujalle on annettu yksikäsitteinen tunnisteluku. Suunnittele algoritmi, joka tulostaa osallistujat (tunnisteluvun mukaan), kunkin osallistujan saaman pistemäärän ja tiedotteen, kutsutaanko hakija haastatteluun (pistemäärä 24), asetetaanko hänet varalle ( 20 pistemäärä < 24) vai jääkö hakija huomiotta (pistemäärä < 20). Syöte koostuu hakijoiden lukumäärästä, hakijoiden soveltuvuustestivastauksista ja oikeista vastauksista. Ratkaisu. Seuraavassa n on hakijoiden lukumäärä, a ij on hakijan i vastaus kysymykseen j (i = 1, 2,..., n, j = 1, 2,..., 30) ja c k on oikea vastaus kysymykseen k (k = 1, 2,..., 30). 1. Syöte: n, a ij (i = 1, 2,..., n, j = 1, 2,..., 30), c k (k = 1, 2,..., 30) 2. for i = 1 to n do 2.1. pist := for j = 1 to 30 do if a ij = c j then pist := pist Tuloste: i, pist 2.4. if pist 24 then Tuloste: 'haastatteluun' 2.5. if 20 pist < 24 then Tuloste: 'varalle' 2.6. if pist < 20 then Tuloste: 'huomiotta' 10

12 Luku 2 Lukujärjestelmät ja niiden muunnokset; lukujen aritmetiikka 2.1 Reaaliluvut ja kymmenjärjestelmä Lukuja voidaan esittää usealla tavalla esim. eri kantajärjestelmissä. Seuraavassa paneudutaan erityisesti lukujen esittämiseen tietokoneella. Tärkeimpiä lukujoukkoja ovat N = { 0, 1, 2,...} luonnolliset luvut N + = { 1, 2, 3,...} positiiviset kokonaisluvut Z = {..., 2, 1, 0, 1, 2,... } kokonaisluvut Q on rationaalilukujen joukko, ja R on reaalilukujen joukko. Luku on rationaaliluku, jos se voidaan esittää muodossa p, missä p Z ja q q N +. Reaaliluku, joka ei ole rationaaliluku, on irrationaaliluku. Tuttuja esimerkkejä irrationaaliluvuista ovat 2, Neperin luku e ja π. Reaaliluvut esitetään desimaalijärjestelmässä numerojonona, negatiivisen luvun edessä on miinusmerkki. Numerojono voi myös sisältää desimaalipilkun. Joidenkin lukujen desimaaliesitys on päättymätön; niitä ei voi esittää desimaalijärjestelmässä äärellisellä määrällä numeroita. Desimaalijärjestelmä on ns. paikkaan perustuva lukujärjestelmä; kullakin jonon numerolla on paikka-arvo, joka riippuu numeron sijainnista desimaalipilkkuun nähden. Desimaalipilkusta vasemmaale sijaitsevat järjestyksessä ykköset (10 0 ), kymmenet (10 1 ), sadat (10 2 ), tuhannet (10 3 ) jne... Desimaalipilkusta oikealle puolestaan järjestyksessä kymmenesosat (10 1 ), sadasosat (10 2 ), tuhannesosat (10 3 ), jne... 11

13 Desimaaliluvun arvo saadaan kertomalla kukin numero paikka-arvollaan ja laskemalla näin saadut luvut yhteen. Esimerkiksi = Binaarijärjestelmä Mitä tahansa luonnollista lukua, joka on ykköstä suurempi, voidaan käyttää paikkaan perustuvan lukujärjestelmän kantalukuna. Luvun 10 vakiintuminen kantaluvuksi todennäköisesti johtuu siitä, että ihmiset käyttivät muinoin kymmentä sormeaan laskemiseen. Esim. aikaa laskettaessa kantaluku on 60: 2 h 26 m 35 s = sekuntia. Binaarijärjestelmässä kantaluku on 2; kun desimaalijärjestelmässä käytetään numeroja 0, 1,..., 9, binaarijärjestelmässä numerot (bitit) valitaan joukosta {0, 1}. Esimerkiksi on binaariluku, alaindeksi 2 ilmoittaa kantaluvun. Sekaannusten välttämiseksi, kanta ilmoitetaan aina, kun käytössä on muu kuin desimaalijärjestelmä. Binaariluvun (desimaali)lukuarvon laskeminen (ja samalla muuntaminen desimaalijärjestelmään) saadaan kirjoittamalla luku 'auki': = = = Digitaalisten tietokoneiden data varastoidaan, siirretään ja muokataan sellaisten tietoelementtien virtana, joita voidaan merkitä symboleilla 0 ja 1. 12

14 Taulukko binaarinen desimaali binaarinen desimaali Muuntaminen kymmenjärjestelmästä binaarijärjestelmään Kuinka muuntaa desimaalijärjestelmän luku binaariseksi? Ei ole mikään ihme, että tehtävä voidaan hoitaa algoritmilla. Teemme seuraavan huomion parittomien luonnollisten lukujen binaariesitys päättyy numeroon 1, ja parillisten luonnollisten lukujen binaariesitys päättyy numeroon 0. Siispä Luonnollisen luvun binaariesityksen (binaariluvun) viimeinen numero (bitti) saadaan jakojäännöksenä, kun luku jaetaan kahdella. Tarvitsemme seuraavat Pascal-tyyppiset operaatiot: aina, kun n N, on n div 2 on se kokonaisosa, joka saadaan, kun n jaetaan kahdella ja n mod 2 se jakojäännös joka saadaan, kun n jaetaan kahdella. Selvästi Poistamalla luonnollisen luvun n binaariesityksen viimeinen bitti, saadaan luonnollisen luvun n div 2 binaariesitys. Siten luonnollisen luvun n binaariesityksen toiseksi viimeinen bitti saadaan jakojäännöksenä, kun luku n div 2 jaetaan kahdella. Prosessia toistetaan, kunnes kokonaisosaksi tulee nolla. Kirjoitetaan koko prosessi algoritmiksi: 1. Syöte: luonnollinen luku n 2. Repeat 13

15 2.1 Tulosta n mod n : = n div 2 until n = 0 Algoritmin tulostus luetaan käänteisessä järjestyksessä lopusta alkuun. Sovelletaan menetelmää lukuun n = 6. Askel n Tulostus Siispä luvun 6 binaariesitys on (110) 2. Esim. 1. Mikä on luvun 25 binaariesitys? Ratkaisu Siten = Huom. 1. Edellistä algoritmia sovellettaessa on yleinen virhe jättää viimeinen askel suorittamatta; algoritmi päättyy vasta, kun jaettava menee nollaksi! Tarkastellaan nyt sitä, miten desimaaliluvun murto-osa muunnetaan binaariseksi. Oletetaan, että haluamme desimaaliluvun binaariesityksen. Koska < 0.5, täytyy desimaalipilkun oikella puolella olevan bitin (eli 'puolikasbitin', jonka paikka-arvo on 1 ) olla 0. Voimme ilmaista asian toisin: puolikasbitti on 0, koska on vähemmän kuin 1. Olemme kehittäneet 2 säännön: 14

16 Reaaliluvun x (0 x < 1) binaariesityksen puolikasbitti on luvun 2 x kokonaisosa. Tarvitsemme pari uutta merkintää. x on reaaliluvun x kokonaisosa frac(x) on reaaliluvun x murto-osa Esimerkiksi 2.7 = 2 ja frac(2.7) = 0.7. Aikaisemmin tehdyn huomion nojalla kertomalla murto-osaa toistuvasti kahdella, saamme luvun murto-osan binaariesityksen. Prosessi voi olla päättymätön, joten se, kuinka montaa numeroa käytetään, kannattaa ilmoittaa etukäteen. 1. Syöte: desimaaliluvun murto-osa x, numerojen lkm d 2. i := 0 3. Repeat 3.1 i := i y := 2x 3.3 Tulosta y 3.4 x := frac(y) until x = 0 or i = d Esim. 2. Mikä on luvun 0.32 binaariesitys viiden numeron tarkkuudella? Ratkaisu Tulos luetaan nyt ylhäältä alaspäin (vasemmanpuolinmaisin sarake). Saadaan = Pyöristystä ei suoriteta. Jos desimaaliluvussa on sekä kokonais- että murto-osa, lasketaan kumpaisenkin binaariesitys erikseen ja saadut tulokset yhdistetään. Siten = ( ) 2. 15

17 2.4 Oktaali- ja heksadesimaalijärjestelmät Edellisessä kappaleessa esitetyt tekniikat voidaan yleistää koskemaan myös muita kantajärjestelmiä kuin binaarista. Erityisesti kantoja 8 ja 16 käytetään laskennassa usien; syyt selviävät hetikohta. Kun käytössä on kantaluku 8 on kyse oktaalijärjestelmästä; tällöin luvut esitetään numeroiden 0, 1, 2, 3, 4, 5, 6, 7 avulla. Luvun jokaisen numeron paikkaarvo on tällöin kahdeksan potenssi. Esimerkiksi = = Kantaluvun ollessa 16 olemme heksadesimaalijärjestelmässä ; tällöin tarvitaan 16 numeroa: numerojen 10, 11, 12, 13, 14, 15 sijasta käytetään isoja kirjaimia A, B, C, D, E, F. Siten käytössä on numerojoukko {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F }. Luvun jokaisen numeron paikka-arvo on 16:n potenssi. Esimerkiksi E9C.8 16 = = Kun muunnetaan kymmenjärjestelmän lukua oktaali- taí heksadesimaalijärjestelmään, menetellään vastaavalla tavalla kuin binaaritapauksessa: luku 2 vain korvataan joko 8:lla tai 16:lla jakajana tai kertojana. Esim. 3. Muunna luku järjestelmään (oktaalijärjestelmään). Ratkaisu. Muunnetaan kokonaisosa Siten = Muunnetaan murto-osa Saadaan = Yhdistetään tulokset, jolloin =

18 Esim. 4. Muunna luku järjestelmään (heksadesimaalijärjestelmään). Ratkaisu. Muunnetaan kokonaisosa Siten = 3D9 16. Muunnetaan murto-osa Saadaan = 0.C8 16. Yhdistetään tulokset, jolloin = 3D9.C8 16. Olemme nähneet, että binaarijärjestelmä on luonteva laskennalle; se on järjestelmä, jota tietokoneet sisäisesti käyttävät. Mutta millä tavalla 8- ja 16- järjestelmät ovat hyösyllisiä? Binaarijärjestelmän huonoksi puoleksi voi laskea sen, että suurilla luvuilla on erittäin pitkät binaariesitykset(yli kolme kertaa pitemmät kuin desimaalijärjestelmässä. Suurten kantajärjestelmien etu on se, että luvut voidaan kirjoittaa käyttäen pienempää määrää numeroja. Kymmenjärjestelmä on epäkäytännöllinen, koska muuntaminen kantajärjestelmästä toiseen vaatii laskentakapasiteettia. Oktaali- ja heksadesimaalijärjestelmää käyttämällä vältetään pitkät numerosarjat ja lisäksi muuntaminen sujuu yksinkertaista algoritmia käyttäen. Kun muunnetaaan luku binaarijrjestelmästä 8-järjestelmään, ryhmitellään bitit kolmen pituisikksi jonoiksi molemmin puolin desimaalipilkkua. Kukin kolmen bitin jono vastaa lukua 8-järjestelmässä. Esim. 5. Muunna luku oktaalijärjestelmään. Ratkaisu. Nyt }{{} }{{} }{{} 011. }{{} }{{} 110, joten = Muuntaminen oktaalijärjestelmästä binaariesitykseen on yhtä helppoa; kukin oktaalijärjestelmän numero korvataan 3-bittisellä binaariesityksellään. Etunollia ei saa jättää pois! 17

19 Esim. 6. Muunna luku binaariluvuksi. Ratkaisu. Saadaan 5 {}}{ {}}{ {}}{ {}}{ 111. Siispä = Muunto 2- ja 16-järjestelmien välillä on analoginen paitsi, että jokaista heksadesimaalinumeroa vastaa neljä bittiä. Esim. 7. Muunna luku heksadesimaaliseksi. Ratkaisu. Nyt 0101 }{{} 1110 }{{} 1001 }{{} }{{} 0100 }{{}, joten 5 E 9 C = 5E9.C4 16. Esim. 8. Muunna luku B2.5D6 16 binaariluvuksi. Ratkaisu. Saadaan B 2 5 {}}{ {}}{ {}}{ {}}{ {}}{ Siispä D 6 B2.5D6 16 = Heksadesimaalijärjestelmää käytetään tavallisesti esittämään muistiosan tai binaaritiedoston sisältö (ihmiselle) luettavassa muodossa, koska jokainen tavu (joka sisältää kahdeksan bittiä) voidaan esittää kahtena heksadesimaalinumerona. 2.5 Aritmetiikka muissa kuin kymmenjärjestelmässsä Laskutoimitusten (yhteenlasku, vähentäminen, kerto- ja jakolasku) suorittaminen muissa kuin kymmenjärjestelmässä tapahtuu niitä sääntöjä noudattaen, jotka jo peruskoulussa opittiin kymmenjärjestelmälle; vain yhteen- ja kertolaskutaulut ovat erilaiset. Tarkastellaan nyt sitä, miten luonnollisten lukujen yhteen- ja kertolasku tapahtuu binaarijärjestelmässä. Yhteenlaskutaulu on tällöin seuraava

20 Lukuja lasketaan yhteen allekkain, mutta vain numeroja 0 ja 1 käyttäen. Esim. 9. Laske allekkain (= ). Vähennyslasku suoritetaan 'tavanomaisesti' (vastaavasti kuin kymmenjärjestelmässä). Tietokone suorittaa vähennyslaskun eri tavalla. Esim. 10. Laske allekkain (= ). Binaarijärjestelmän kertolaskutaulu on yksinkertainen: 'Pitkä kertolasku' binaarijärjestelmässä suoritetaan oikeastaan ilman kertolaskua; kertominenhan tapahtuu nollalla tai ykkösellä. Esim. 11. Kerro allekkain (= ). 'Pitkä jakolasku' on sekin suoraviivainen suorittaa; tärkeää on muistaa, että murto-osa voi muodostua rajattoman pitkäksi, joten joskus täytyy päättää monenko (merkitsevän) numeron tarkkuudella vastaus annetaan. Esim. 12. Jaa jakokulmassa luku luvulla kuuden merkitsevän numeron tarkkuudella. Huom. 2. Kymmenjärjestelmän eli desimaalijärjestelmän kantaluku on 10. Desimaaliluvut ovat kymmenjärjestelmään perustuva tapa esittää reaalilukuja ja niiden likiarvoja. Edellisen nojalla kokonaisluvut ovat desimaalilukuja. Mitä tarkoitetaan (desimaali)luvun merkitsevien numeroiden lukumäärällä? Sääntö on yksinkertainen: (1) desimaaliluvun alussa olevia nollia ei lasketa merkitseviksi numeroiksi; (2) ilman desimaalipilkkua esitetyn luvun lopussa olevia nollia ei lasketa merkitseviksi numeroiksi; ja (3) kaikki muut luvussa esiintyvät numerot ovat merkitseviä. Siten sekä luvussa 5300 että luvussa 0071 on kaksi merkitsevää numeroa, luvussa on kolme merkitsevää numeroa ja luvussa viisi merkitsevää numeroa. Luvussa on kuusi merkitsevää numeroa. Edelleen luvussa on neljä merkitsevää numeroa, luvussa kolme merkitsevää numeroa ja luvussa kaksi merkitsevää numeroa. 19

21 2.6 Lukujen esittäminen tietokoneessa Edellisessä luvussa tarkasteltiin lukujen esittämistä binaarilukujärjestelmässä. Nyt käytämmme oppimiamme tekniikoita tutkiaksemme sitä, miten lukuja esitetään ja käsitellään binaarimuodossa tietokoneessa. Luvut esitetään digitaalisessa tietokoneessa tavallisesti kiinteän pituisina bittijonoina. Kokonaislukuja käsitellään eri tavalla kuin muita reaalilukuja, joten tapaukset tulee pitää erillään. Seuraavassa tarkastelleen verrattain yleisellä tasolla sitä, miten tietokoneet lukuja käsittelevät Kokonaislukujen esittäminen Kokonaisluvut (positiiviset, negatiiviset tai nolla) tallennetaan tietokoneessa tavujonoina, missä kukin tavu koostuu 8 bitistä. Ohjelmoija voi tavallisesti valita useammasta kokoluokasta (jotka vastaavat eri tavulukumääriä), mutta suoraan prosessorin käsittelemien kokonaislukujen koko määräytyy prosessorin suunnitteluperiaatteiden mukaan; neljä tavua on tällöin tavanomainen koko. Mukavuussyistä tarkastelemme seuraavassa kaksitavuisia kokonaislukuja, periaatteet ovat täysin samat kuin nelitavuisessa tapauksessa. Kuinka monta eri lukua voidaan tallentaa 16 bitin avulla? Koska kukin bitti voi saada kaksi arvoa ( 0 tai 1), saamme (kombinatoriikan tuloperiaatteen nojalla): (16 kertaa) = 2 16 = Esimerkiksi voimme tallentaa minkä tahansa luvun n, joka on välillä n 32767, asettamalla yksikäsitteisen 16 bitin jonon vastaamaan kutakin välin kokonaislukua. Muitakin arvoalueita voitaisiin käyttää (esim. 0 n 65535), mutta käyttökelpoisin on tavallisesti sellainen väli, joka sisältää suunnilleen saman määrän positiivisia ja negatiivisia lukuja. Tavanomaisin tapa esittää luku n käyttäen 16 bittiä on seuraava. 1. Ensimmäinen bitti on ns. etumerkkibitti ; se on 0, jos n on nolla tai positiivinen ja 1, jos n on negatiivinen. 2. Jos n 0, loput 15 bittiä ovat n:n binaariesitys (varustettuna etunollilla, mikäli tarpeellista). Jos n < 0, loput 15 bittiä ovat ei-negatiivisen luvun n binaariesitys. 20

22 Luvun 2 15 = lisääminen lukuun n, kun n < 0 voi äkkiseltään vaikuttaa asioiden mutkistamiselta (mikseivät esim. etumerkin jälkeiset 15 bittiä esittäisi lukua n? 1 ) Syy on se, että lisäämällä luku lukuun n, saadaan esitystapa, joka yksinkertaistaa aritmeettisten operaatioiden suorittamista, kuten myöhemmin tullaan näkemään. Itse asiassa luvun lisääminen voidaan suorittaa sen jälkeen, kun luku n on muutettu binaarimuotoon. Tämä käy ilmi seuraavasta esimerkistä. Esim. 13. Määritä (kymmenjärjestelmän) luvun 6772 kuusitoistabittinen tietokone-esitys. Ratkaisu. Muunnetaan 6772 binaarimuotoon käyttäen 15 bittiä ja etunollia tarvittaessa. Saadaan = Koska luvun binaariesitys on , meidän tulee suorittaa lasku = Luvun 6772 kuusitoistabittinen tietokone-esitys on siten Saamme yleisen menetelmän: 1. Kaikki nollat vähennettävän binaariluvun lopussa (oikeanpuoleisessa päässä) säilyvät nollina vastauksessa. 2. Oikeanpuolimmaisin ykkönen säilyy ykkösenä vastauksessa. 3. kaikki muut bitit muuttuvat (nolla ykköseksi ja ykkönen nollaksi). Algoritmia soveltamalla saadaan positiivisen binaariluvun kakkosen komplementti (kannan 2 suhteen). Siten luvun kakkosen komplementti on Ei-negatiivisen binaariluvun ykkösen komplementti saadaan vaihtamalla sen jokainen bitti säännön 0 1, 1 0 mukaan. Binaariuvun ykkösen komplementti on yhtä pienempi kuin sen kakkosen komplementti. Tarkastellaan tilannetta hiukan yleisemmin. Olkoon n kokonaisluku, jolle 1 n 2 k 1, missä k N +. Oletetaan, että n on annettu k -bittissä 1 Merkintä n tarkoittaa luvun n itseisarvoa, joka määritellään: { n jos n 0 n = n jos n < 0 21

23 binaarimuodossaan. Tällöin n:n k -bittinen kakkosen komplementti on luku 2 k n kirjoitettuna k -bittisessä binaarimuodossaan. Se saadaan soveltamalla yllä kuvattuja askelia lukuun n. Huomattakoon, että edellisiä askelia 1, 2 ja 3 ei voida käyttää luvun tietokone-esityksen määrittämiseen, koska luvun esittämiseen tarvitaan 16 bittiä. Tässä tapauksessa vähennyslaskun seurauksena saadaan 15 nollaa ja luvun tietokone-esitys on siten Esim. 14. Etsi seuraavien kokonaislukujen 16-bittinen tietokone-esitysmuoto. a) 9843 b) c) Ratkaisu. a) Etumerkkibitti on 0 ja = viittätoista bittiä käyttäen. Siispä 16-bittinen tietokone-esitysmuoto on b) Etumerkkibitti on 1 ja = viittätoista bittiä käyttäen. Luvun kakkosen komplementti on Siispä 16-bittinen tietokone-esitysmuoto on c) Etumerkkibitti on 1 ja = viittätoista bittiä käyttäen. Luvun kakkosen komplementti on Siispä 16-bittinen tietokone-esitysmuoto on Jos tietokone käyttää neljää tavua (32 bittiä) kahden sijasta kokonaislukuja tallentaessaan, mikä tahansa luku välillä 2 31 = n = voidaan yksikäsitteisesti esittää etumerkkibittiä ja 31 muuta bittiä käyttäen analogisesti kahden tavun tapauksen kanssa. Tietysti tällöin luku korvautuu luvulla ja kakkosen komplementti otetaan 31-bittisestä binaariluvusta 15-bittisen sijasta. 22

24 2.6.2 Kokonaislukuaritmetiikka Tarkastellaan seuraavassa sitä miten tietokone suorittaa kokonaislukjen yhteenja vähennyslaskuja. On mukavampaa käsitellä pieniä bittimääriä, paljon pienempiä kuimn todelliset tietokoneet käytännössä käsittelevät. Oletetaan, että kuvitteellinen tietokoneemme tallentaa kokonaisluvun käyttäen neljää bittiä. Tällöin ainoastaan kokonaisluvut 8, 7,..., 1, 0, 1,..., 7 voidaan esittää tällä koneella. Meillä on käytössä seuraava taulukko. kokonaisluku Taulukko esitysmuoto Tutkimalla yllä esitettyä taulukkoa, voimme tehdä seuraavat huomiot. Kun kyseessä on luku n {0, 1, 2, 3, 4, 5, 6, 7}, luvun n tietokoneesityksen viimeiset kolme bittiä muodostavat sen 3-bittisen binaariesityksen. Koska etumerkkibitti on 0, tietokone-esitys on luvun n nelibittinen binaariesitys. Kun kyseessä luku n { 8, 7, 6, 5, 4, 3, 2, 1}, luvun n tietokone-esityksen viimeiset kolme bittiä muodostavat luvun n bittisen binaariesityksen. Koska etumerkkibitti on 1 (ja 23

25 etumerkkibitin paikka-arvo on 2 3 = 8, tietokone-esitys, kun se käsitetään binaariluvuksi, on luvun n + 16 nelibittinen binaariesitys. Oletetaan nyt, että haluamme laskea yhteen kaksi lukua m ja n tällä tietokoneella. Nyt siis m, n { 8, 7,..., 6, 7}; lisäksi oletamme, että summa m + n { 8, 7,..., 6, 7}. Väitämme, että yhteenlasku voidaan suorittaa laskemalla yhteen lukujen m ja n tietokone-esitykset tavanomaisena binaariyhteenlaskuna, kun vain viidenteen sarakkeeseen mahdollisesti tuleva bitti 1 jätetään huomiotta. Luvun n tietokone-esityksen binaariarvo on joko luvun n binaariarvo tai luvun n binaariarvo +16. Siten, kun kaksi tietokone-esitystä lasketaan yhteen, tuloksena on joko yhteenlaskun oikea vastaus, oikea vastaus +16 tai oikea vastaus +32. Oikealta viidennen bitin huomiottajättäminen tapauksessa, jossa se on 1, on yhtäpitävää sen kanssa, että yhteenlaskun tuloksesta vähennetään 16. Jos nyt prosessin lopussa tulos ei ole oikea, se poikkeaa oikeasta 16:n monikerralla. Nyt m, n { 8, 7,..., 6, 7}, joten tuloksen on oltava oikea, koska lukujen m ja n vaihteluväli on vähemmän kuin 16. Esim. 15. Osoita, että seuraavat yhteenlaskut tulevat oikein suoritetuiksi 4-bittisellä tietokoneella. (a) (b) ( 4) + 7 (c) ( 3) + ( 4) (d) ( 6) + 5. Ratkaisu. Kirjoitetaan kukin yhteenlasku kahdella eri tavalla; kymmenjärjestelmässä ja siten, kun se tietokoneessa suoritetaan. (a) = 5; = (b) ( 4) + 7 = 3; = (1) (c) ( 3) + ( 4) = 7; = (1) (d) ( 6) + 5 = 1; = Jos yritämme laskea yhteen kokonaislukuja, joiden summa ei kuulu sallittuun alueeseen, tulos on (tavallisesti) väärä. Esim = 13 ja = Tietokone tulkitsee bittijonon 1101 luvuksi 3. Tämä ylivuoto on kuitenkin suht helppo huomata. Jos nimittäin yritetään laskea yhteen kaksi (summaltaan liian suurta) positiivista lukua, vastaukseksi tulee negatiivinen luku ja ylivuoto on helppo havaita. Samoin, ynnätessä kaksi (summaltaan liian pientä) negatiivista lukua, tulos on positiivinen ja helposti havaittavissa. Jotkut softat antavat virheilmoituksen, toiset taas eivät anna. Tämän vuoksi ohjelmia kirjoitettaessa tulee tiedostaa ylivuodon mahdollisuus ja osata käsitellä näitä' tilanteita. 24

26 Kokonaislukujen tietokone-esityksiin perustuva vähennyslsku on suoraviivaista, kun seuraavat seikat otetaan huomioon. Vähennyslasku voidaan palauttaa yhteenlaskuksi, tahtoo sanoa, a b = a + ( b). Kokonaisluvun vastaluvun tietokone-esitys on kokonaisluvun kakkosen komplementti. Luvun vähentäminen voidaan siten suorittaa lisäämällä sen kakkosen komplementti. Siispä vähennyslasku muuntuu luiskeasti yhteenlaskuksi. Menetelmän etu on se, että tietokoneen ei tarvitse mikropiiristössä erikseen ylläpitää 'summaimia' ja 'vähentäjiä' (vaikkakin kakkosen komplementin laskeminen tarvitaan). Esim. 16. Arvioi vähennyslaskua 5 3 nelibittisellä tietokoneella. Ratkaisu. Luvun 5 (vast. luvun 3) tietokone-esitys on 0101 (vast. 0011). Luvun kakkosen komplementti on Nyt = Jättämällä huomiotta vasemmanpuolimmaisen bitin 1, saamme tulokseksi tietokone-esityksen 0010, joka edustaa lukua 2. Komplementtiin perustuvaa vähennyslaskua voidaan käyttää missä tahansa kannassa. Palataan asiaan harjoituksissa Reaalilukujen esittäminen Reaalilukujen esittäminen on mutkikkaampaa kuin kokonaislukujen, ei ainoastaan tietokoneella, vaan myös kirjoitetussa muodossa. Olemme käsitelleet reaalilukujen esittämistä desimaalijärjestelmässä (kuin myös binaarijärjestelmässä) siten että numerot esiintyvät ennen ja jälkeen desimaalipilkun. Menetelmä ei sovellu tietokone-esitykseksi ei usein liioin kirjoitusesitykseksikään. Syy tähän on se, että useissa käytännön kannalta kiinnostavissa ongelmissa törmätään reaalilukuihin jotka ovat joko erittäin suuria tai erittäin pieniä ja jotka saadaan suorittamalla fyysisiä mittauksia sopivalla tarkkuudella. Likiarvon ja täysin tarkkan esityksen ero on hiuksenhieno, mutta merkittävä. Maan massa ilmoitetaan usein lukuna kg. Huomattakoon, että lukua ei ilmoiteta muodossa Näin siksi, että em. luku on 21 { }} { laskettu fyysisen mittaamisen perusteella ja mittaamiseen liittyy aina tietty epätarkkuus. Emme voi sanoa, että maan massa on täsmälleen kg, vaan ainoastaan, että se on jossakin kg:n ja kg:n välillä. Kun mittausmenetelmät tarkentuvat, arviota voidaan parantaa. 25

27 Edellisessä esimerkissä käytettyä notaatiota kutsutaan eksponenttinotaatioksi ja se soveltuu erityisen hyvin sellaiseen tieteelliseen tarkasteluun, jossa luvut saadaan fyysisten mittausten perusteella. Eksponenttinotaatioon liittyy tiettyä terminologiaa. Luvussa on signikantti, 10 on kanta(luku) ja 25 on eksponentti. Jos signikantti m on välillä 0.1 m < 1, on esitys normaalimuodossa. Se, miten reaaliluvut tarkasti esitetään tietokoneessa, riippuu minkätyyppisestä koneesta on kysymys. Tosin viime aikoina on trendinä ollut käyttää esitysmuotoa, jonka spesioi IEEE:n (Institute of Electrical and Electronics Engineering) standardi 754 (1985) binaariselle liukulukuaritmetiikalle. Emme toki tarkasti kuvaa tiettyä esitystapaa, vaan tyydymme yleisesti luonnehtimaan sitä miten reaalilukuja tietokoneessa tallennetaan ja manipuloidaan. Edellä kuvsttu eksponentiaalinotaatio muistuttaa reaalilukujen esitystapaa tietokoneessa. Joitakin eroja kuitenkin löytyy. Tietokoneet käyttävät 2:n potensseja 10:n potenssien sijasta tietoa manipuloidessaan. Myös eksponentti tallennetaan muunnettuun muotoon, kuten tulemme näkemään. Ennenkuin reaaliluvun tietokone-esitys voidaan löytää, se täytyy ensin muuntaa binaarimuotoon ja sen jälkeen esittää normalisoidussa binaarisessa eksponenttimuodossa. Sanomme, että reaaliluku on normalisoidussa binaarisessa eksponenttimuodossa, jos se on ilmaistu muodossa ±m 2 d, missä signikantti m on binaarimuodossa ja välillä m < 1 2 ja d on kokonaisluku, joka on kirjoitettu desimaalimuodossa. Kantaluku 2 on niin ikään desimaalimuodossa. Muitakin esityksiä normalisoiduksi binaariseksi eksponentiaalimuodoksi voitaisiin käyttää; normalisoinnin tarkoitus on varmistaa jokaiselle luvulle yksikäsitteinen esitystapa. Huomattakoon, että nollaa ei voida esittää normalisoidussa binaarisessa eksponentiaalimuodossa, koska m = 0 ei kuulu m:n sallittuihin arvoihin. Reaaliluvun tallennukseen tietokoneelle tavallisesti käytetään neljää tavua ( 32 bittiä) tai kahdeksaa tavua (64 bittiä) 2. Ensimmäinen bitti on etumerkkibitti, jäljelle jäävät jaetaan eksponentin ja signikantin kesken. Eksponentille varattujen bittien lukumäärä kertoo tallennettavien lukujen arvoalueen; signikantin tallennukseen käytettyjen bittien lukumäärä puolestaan tarkkuuden, jolla luvut esitetään. Kun bittien kokonaismäärä on kiinteä, on kyse 2 Mikäli molemmat formaatit ovat tietokoneella saatavilla, puhutaan neljän tavun tapauksessa yksinkertaisesta ja kahdeksan tavun tapauksessa kaksinkertaisesta tarkkuudesta 26

28 aina arvoalueen ja tarkkuuden välisestä kompromissista. Normaali menettelytapa nykyaikaisessa tietokoneessa on 8 bittiä eksponentin tallennukseen ja 23 signikantille. Tavallisesti eksponentin binaariesitystä ei sellaisenaan tallenneta, vaan muistiin pistetään luku, jota kutsutaan karakteristikaksi. Karakteristika on einegatiivinen kokonaisluku, joka saadaan, kun eksponenttiin lisätään eksponenttipoikkeama, luku, joka on muotoa 2 n 1 1, missä n on eksponenttia varten (ja siten karakteristikan tallentamiseen) varattujen bittien lukumäärä. Kun eksponentti tallennetaan edellä kuvatulla tavalla, tietokone voi käyttää yksinkertaisempia algoritmeja reaalilukuaritmetiikkaa toteuttamaan paljolti samalla tavalla kuin kokonaislukuaritmetiikkaa yksinkertaistettiin esittämällä negatiiviset luvut kakkosen komplementtina. Oletetaan, että karakteristikan k tallentamiseen on varattu n bittiä. Karaketristika on ei-negatiivinen kokonaisluku, joten k saa arvoja: 0 2 n 1. Eksponenttia e ja karakteristikaa k sitoo yhtälö k = 2 n e. Siispä e saa arvoja: 0 2 n n 1 (2 n 1 1) eli e : 2 n n 1. Joissakin esitystavoissa (IEEE-standardi mukaanlukien) ensimmäinen signikantin bitti (joka väistämättä on 1) jätetään tallentamatta, jolloin tarkkuutta voidaan lisätä ylimääräisen bitin verran. Kaikkissa meidän esimerkeissä signikantin ensimmäinen bitti on mukana. Esim. 17. Etsi seuraavien lukujen 32-bittinen tietokone-esitys. (a) (b) missä käytetään 8 bittiä karakteristikaan ja eksponenttipoikkeama on Ratkaisu. (a) Etumerkkibitti on 0. Karakteristika on luvun kahdeksanbittinen binaariesitys, joka saadaan laskemalla yhteen 2 7 :n binaariesitys ja luvun 4 binaariesitys Saadaan = Signikantti laajennetaan 23-bittiseksi nollia lisäämällä; saadaan Huomattakoon, että desimaalipilkkua edeltävää nollaa ei tallenneta. Tietokone-esitykseksi saadaan (b) Etumerkkibitti on 0. Karakteristika on luvun kahdeksanbittinen binaariesitys, joka saadaan yksinkertaisesti laskemalla luvun 4 seitsemänbittinen kakkosen komplementti ja varustamalla tämä etumerkkinollalla. Luvun 4 seitsemänbittinen binaariesitys: Luvun kakkosen komplementti: Karakteristika: Tietokone-esitykseksi 27

29 saadaan Reaaliluvun tietokone-esitys voidaan siis löytää seuraavasti. 1. Muuta luku binaarimuotoon; työskentele sillä tarkkuudella, jonka signikanttiin varattujen bittien lkm edellyttää: 2. Esitä binaariluku normalisoidussa binaarisessa eksponenttimuodossa. Huomaa, että jos luku on itseisarvoltaan pienempi kuin yksi, desimaalipistettä välittömästi seuraavat nollat (silloin kun niitä on) siirtyvät eksponenttiin ja signikantti voidaan vastaavasti laskea suuremmalla tarkkuudella. 3. Määritä karakteristika. 4. Kirjoita tietokone-esitys. Esim. 18. Etsi 32bittinen tietokone-esitys luvulle , kun karakteristikaan käytetään 8 bittiä ja eksponenttipoikkeama on Ratkaisu. Aikaisemmin esitettyjä tekniikoita käyttäen muunnetaan luku aluksi 23-bittiseksi binaariluvuksi. Saadaan = Ilmoitetaan tulos normalisoidussa binaarisessa eksponenttimuodossa: = Etumerkkibitti on 1 ja karakteristika Tietokone-esitys on siten Edellinen esimerkki osoittaa sen, että reaaliluvun tietokone-esitys voi olla epätarkka, koska binaarimuotoon muutettaessa lukua typistetään käytettävissä olevaan tarkkuuteen. Lisää epätarkkuuksia voi syntyä reaalilukuaritmetiikan pyöristysvirheistä. Tilanne on toinen kuin kokonaislukujen tapauksessa, jolloin lukuja tallennetaan ja käsitellään tarkasti tietokoneessa. Eräs käytännön seuraus tästä on, että reaalilukujen yhtäsuuruuden testaus sisältää riskin. Turvallisempaa on arvioida ovatko kaksi reaallilukua x ja y ovat suunnilleen yhtäsuuria testaamalla onko voimassa x y < q, 28

30 missä q on pieni positiivinen luku (esim 10 6 ). Minkäkokoisia reaalilukuja tietokoneella sitten kyetään esittämään? Oletetaan, että tietokoneemme tallentaa reaaliluvut 32 bitillä, jossa 8 bittiä on varattu karakteristikalle. Tällöin eksponenttipoikkeama on ja karakteristika voi saada arvoja 0:sta lukuun Koska karakteristika = eksponentti, voi eksponentti saada arvoja luvusta 0 (2 7 1) lukuun (2 7 1) eli joukossa 127, 126,..., 127, 128. Signikantti vaihtelee luvusta lukuun 1 2. Ne positiiviset luvut, joita tietokone voi esittää sijoittuvat siten välille [ , ). Huomattakoon, että ja Sellaiset negatiiviset luvut, joiden itseisarvo on yo. välillä, voidaan niinikään esittää tietokoneella. Mikäli laskennan tuloksena saadaan luku, joka ei mainittuihin rajoihin mahdu, tapahtuu joko alivuotoa 3 tai ylivuotoa. Esim. 19. Oletetaan, että tietokone tallentaa reaalilukuja 32 bitillä, jossa 10 bittiä on varattu karakteristikalle ja eksponenttipoikkeama on Arvioi aluetta, jossa posit. reaalilukuja pystytään tietokoneella esittämään. Ratkaisu. Karaktristika voi saada arvoja 0:sta lukuun , joten eksponentin vaihteluväli on 0 (2 9 1):stä 2 10 (2 9 1):een eli luvusta 511 lukuun 512. Siispä reaalilukuja väliltä [ , ) voidaan esittää. Nyt log = 511 log Siksipä = Lukua voidaan arvioida vastaavalla tavalla, jolloin saadaan, että välillä [ , ) olevat luvut ovat tietokoneella esitettävissä. 3 Alivuotoa tapahtuu, kun laskennan tuloksena saadaan reaaliluku, jonka itseisarvo on pienempi kuin pienin posit. luku, joka voidaan esittää. Tilanteesta riippuen voi olla tai olla olematta sopivaa arvioida alivuodon suuruutta nollalla. 29

31 2.6.4 Reaalilukuaritmetiikka Tarkastellaan seuraavassa hiukan sitä miten aritmeettisia operaatioita suoritetaan normalisoidussa eksponenttimuodossa olevilla reaaliluvuilla. Tämä antaa yleiskuvan siitä miten tietokone suorittaa reaalilukuaritmetiikkaa. Kun halutaan laskea yhteen (vast. vähentää), menetellään seuraavasti. 1. Kirjoitetaan luvut eksponenttimuodossa yhteistä eksponenttia käyttäen siten, että signikantti on pienempi kuin Lasketaan signikantit yhteen (vastaavasti vähennetään signikantit toisistaan); saadaan vastauksen signikantti; yhteinen eksponentti on vastauksen eksponentti. 3. Normalisoidaan vastaus tarvittaessa. Kun halutaan kertoa (vast. jakaa), menetellään seuraavasti. 1. Kerrotaan (vast. jaetaan) signikantit, jolloin saadaan vastauksen signikantti. 2. Lasketaan eksponentit yhteen (vast. vähennetään eksponentit toisistaan), jolloin saadaan tuloksen eksponentti. 3. Normalisoidaan vastaus tarvittaessa. Jäljitelläksemme tapaa, jolla tietokone suorittaa laskutoimituksia, oletetaan seuraavassa, että luvun normalisoidun esityksen signikantissa numerojen lukumäärä on kiintä ja että vastauksessa signikantti aina pyöristetään lukumäärän mukaisesti. Esim. 20. Suorita laskinta käyttäen seuraavat laskutoimitukset. Oletetaan, että signikantti esitetään neljän numeron tarkkuudella. Ratkaisu. (a) (b) ( ) ( ) ( ) (a) = = = (b) ( ) ( ) ( ) = =

32 Luku 3 Logiikka (propositiokalkyyli, predikaattikalkyylin alkeet) 3.1 Logiikka ja laskeminen tietokoneella Tässä kappaleessa tarkastelemme logiikkaa matematiikan näkökulmasta. Logiikkaa sovelletaan monella alueella tietojenkäsittelyssä, esim. (i) digitaalipiirien suunnittelussa; (ii) kontrollirakenteiden ehtoina ohjelmoinnissa; (iii) tietokantakyselyissä; (iv) asiantuntijajärjestelmien tietämyspohjaisissa ohjelmistoissa; (v) tietokonemallinnuksessa; ja (vi) formaalissa spesioinnissa. 3.2 Propositiot Luvut ovat aritmetiikan perusobjekteja. Vastaavalla tavalla propositiot ovat logiikan keskeisiä rakennuspalikoita. Propositio on väittämä, joka on joko tosi (totuusarvo 1 tai T) tai epätosi (totuusarvo 0 tai F). Esimerkkejä propositioista: 31

33 'Canberra on Australian pääkaupunki'; 'Aurinko kiertää maata'; 'Isaac Newton syntyi vuonna 1642'; '5 on suurempi kuin 7'; 'Jokainen kakkosta suurempi parillinen kokonaisluku voidaan ilmaista kahden alkuluvun summana'. Edellä ensimmäinen ja kolmas ovat tosia propositioita. Toinen ja neljäs on epätosia. Tällä hetkellä ei tiedetä on viides propositio tosi vai epätosi. Kyseessä on ns. Goldbachin väittämä. Seuraavat ilmaisut eivät ole propositioita: 'Minne menet?'; 'Tule tänne!'; 'Tämä lause on epätosi'. Ensimmäinen on kysymys, toinen käsky. Kolmas viittaa itseensä ja johtaa ristiriitaan tai paradoksiin. Jos se on tosi, sen sisältämä väittämä johtaa ristiriitaan oletuksemme kanssa. Jos se taas on epätosi, päättelemme, että se on tosi ja olemme jälleen ristiriidassa oletuksen kanssa. Tarkastellaan ilmaisuja: 'Eläirasvojen syönti ei vaikuta kolesteroliin'; 'Olut on terveellistä'; 'x<8'. Kaksi ensimmäistä ovat mielipidekysymyksiä; niiden totuudellisuudesta kiistelemine ei (tällä kurssilla) maksa vaivaa. Emme tule tarkastelemaaan propositioina väitteitä, joiden totuusarvo on epäselvä. Viimeinen yllä esitetty lauseke on predikaatti, väite, josta tulee propostio, kun siinä esiintyvien muuttujien arvot sopivasti kiinnitetään. Pikkasen tarkemmin: Predikaatti on ilmaisu, joka - sisältää yhden tai useampia muuttujia; - ei ole propositio mutta josta tulee propositio, kun siinä esiintyvien muuttujien arvot sopivasti sidotaan. Tietokoneohjelma (tai algoritmi) voi sisältää lausekkeen ' x < 8' esim. jossakin kontrollirakenteessa. Tällöin sen totuusarvo voidaan määrittää syötteen ja ohjelman sen hetkisen tilan perusteella, joten lauseketta ' x < 8' voidaan 32

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 2. Lukujen esittäminen ja aritmetiikka 2.1 Kantajärjestelmät ja lukujen esittäminen Käytettävät lukujoukot: Luonnolliset luvut IN = {0,1,2,3,... } Positiiviset kokonaisluvut

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet Juha Kortelainen Ari Vesanen Syksy 2018 Esipuhe Tämä moniste on pääosin Juha Kortelaisen laatima. Olen muuttanut algoritmien esitystavan ja tehnyt pieniä korjauksia. Ari Vesanen

Lisätiedot

Diskreetit rakenteet P 5 op

Diskreetit rakenteet P 5 op Diskreetit rakenteet 811120P 5 op Juha Kortelainen Ari Vesanen Syksy 2016 Esipuhe Tämä moniste on pääosin Juha Kortelaisen laatima. Olen muuttanut algoritmien esitystavan ja tehnyt pieniä korjauksia. Ari

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

Diskreetit rakenteet. 3. Logiikka. Oulun yliopisto Tietojenkäsittelytieteiden laitos 2015 / 2016 Periodi 1

Diskreetit rakenteet. 3. Logiikka. Oulun yliopisto Tietojenkäsittelytieteiden laitos 2015 / 2016 Periodi 1 811120P 3. 5 op Oulun yliopisto Tietojenkäsittelytieteiden laitos 2015 / 2016 Periodi 1 ja laskenta tarkastelemme terveeseen järkeen perustuvaa päättelyä formaalina järjestelmänä logiikkaa sovelletaan

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2017-2018 Yhteenveto Yleistä kurssista Kurssin laajuus 5 op Luentoja 30h Harjoituksia 21h Itsenäistä työskentelyä n. 80h 811120P Diskreetit rakenteet, Yhteenveto 2 Kurssin

Lisätiedot

Merkitse kertolasku 3 3 3 3 potenssin avulla ja laske sen arvo.

Merkitse kertolasku 3 3 3 3 potenssin avulla ja laske sen arvo. 13 Luvun potenssi Kertolasku, jonka kaikki tekijät ovat samoja, voidaan merkitä lyhyemmin potenssin avulla. Potenssimerkinnässä eksponentti ilmaisee, kuinka monta kertaa kantaluku esiintyy tulossa. Potenssin

Lisätiedot

Kappale 20: Kantaluvut

Kappale 20: Kantaluvut Kappale 20: Kantaluvut 20 Johdanto: Kantaluvut... 328 Kantalukujen syöttäminen ja muuntaminen... 329 Matemaattiset toiminnot Hex- ja Bin-luvuilla... 330 Bittien vertaileminen ja manipulointi... 331 Huom!

Lisätiedot

+ 3 2 5 } {{ } + 2 2 2 5 2. 2 kertaa jotain

+ 3 2 5 } {{ } + 2 2 2 5 2. 2 kertaa jotain Jaollisuustestejä (matematiikan mestariluokka, 7.11.2009, ohjattujen harjoitusten lopputuloslappu) Huom! Nämä eivät tietenkään ole ainoita jaollisuussääntöjä; ovatpahan vain hyödyllisiä ja ainakin osittain

Lisätiedot

3. Kongruenssit. 3.1 Jakojäännös ja kongruenssi

3. Kongruenssit. 3.1 Jakojäännös ja kongruenssi 3. Kongruenssit 3.1 Jakojäännös ja kongruenssi Tässä kappaleessa esitellään kokonaislukujen modulaarinen aritmetiikka (ns. kellotauluaritmetiikka), jossa luvut tyypillisesti korvataan niillä jakojäännöksillä,

Lisätiedot

8.1 Murtoluvun määritelmä - murtoluvulla tarkoitetaan aina osaa (osia) jostakin kokonaisuudesta

8.1 Murtoluvun määritelmä - murtoluvulla tarkoitetaan aina osaa (osia) jostakin kokonaisuudesta 8. Murtoluvun määritelmä - murtoluvulla tarkoitetaan aina osaa (osia) jostakin kokonaisuudesta - oheisessa kuvassa ympyrä on jaettu kolmeen yhtä suureen osaan, joista kukin osa on yksi kolmasosa koko ympyrästä

Lisätiedot

Paavo Räisänen. Ohjelmoijan binaarialgebra ja heksaluvut. www.ohjelmoimaan.net

Paavo Räisänen. Ohjelmoijan binaarialgebra ja heksaluvut. www.ohjelmoimaan.net Paavo Räisänen Ohjelmoijan binaarialgebra ja heksaluvut www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 3. Logiikka 3.1 Logiikka tietojenkäsittelyssä Pyritään formalisoimaan terveeseen järkeen perustuva päättely Sovelletaan monella alueella tietojenkäsittelyssä, esim.

Lisätiedot

Diskreetin matematiikan perusteet Laskuharjoitus 1 / vko 8

Diskreetin matematiikan perusteet Laskuharjoitus 1 / vko 8 Diskreetin matematiikan perusteet Laskuharjoitus 1 / vko 8 Tuntitehtävät 1-2 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 5- loppuviikon harjoituksissa. Kotitehtävät 3-4 tarkastetaan loppuviikon

Lisätiedot

1 Peruslaskuvalmiudet

1 Peruslaskuvalmiudet 1 Peruslaskuvalmiudet 11 Lukujoukot N {1,, 3, 4,} on luonnollisten lukujen joukko (0 mukana, jos tarvitaan), Z {, 3,, 1, 0, 1,, 3,} on kokonaislukujen joukko, Q m n : m, n Z, n 0 on rationaalilukujen joukko,

Lisätiedot

Aiemmin opittu. Jakson tavoitteet. Ajankäyttö. Tutustu kirjaan!

Aiemmin opittu. Jakson tavoitteet. Ajankäyttö. Tutustu kirjaan! Aiemmin opittu Perusopetuksen opetussuunnitelman mukaan seuraavat lukuihin ja laskutoimituksiin liittyvät sisällöt on käsitelty vuosiluokilla 3 5: kymmenjärjestelmä-käsitteen varmentaminen, tutustuminen

Lisätiedot

Matematiikan mestariluokka, syksy 2009 7

Matematiikan mestariluokka, syksy 2009 7 Matematiikan mestariluokka, syksy 2009 7 2 Alkuluvuista 2.1 Alkuluvut Määritelmä 2.1 Positiivinen luku a 2 on alkuluku, jos sen ainoat positiiviset tekijät ovat 1 ja a. Jos a 2 ei ole alkuluku, se on yhdistetty

Lisätiedot

Numeeriset menetelmät

Numeeriset menetelmät Numeeriset menetelmät Luento 2 To 8.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 1/33 p. 1/33 Lukujen tallennus Kiintoluvut (integer) tarkka esitys aritmeettiset operaatiot

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 6. Alkeislukuteoria 6.1 Jaollisuus Käsitellään kokonaislukujen perusominaisuuksia: erityisesti jaollisuutta Käytettävät lukujoukot: Luonnolliset luvut IN = {0,1,2,3,...

Lisätiedot

LUKUJÄRJESTELMÄT. Kymmenjärjestelmä eli desimaalijärjestelmä. Binäärilukujärjestelmä

LUKUJÄRJESTELMÄT. Kymmenjärjestelmä eli desimaalijärjestelmä. Binäärilukujärjestelmä Ammatti-Instituutti Lukujärjestelmistä Sivu 1 (5) LUKUJÄRJESTELMÄT Kymmenjärjestelmä eli desimaalijärjestelmä Kymmenjärjestemä on meille se tutuin järjestelmä jonka tunnemme x Siinä on (10) kymmenen numeroa,

Lisätiedot

Reaaliluvut 1/7 Sisältö ESITIEDOT:

Reaaliluvut 1/7 Sisältö ESITIEDOT: Reaaliluvut 1/7 Sisältö Reaalilukujoukko Reaalilukujoukkoa voidaan luonnollisimmin ajatella lukusuorana, molemmissa suunnissa äärettömyyteen ulottuvana suorana, jonka pisteet ja reaaliluvut vastaavat toisiaan:

Lisätiedot

etunimi, sukunimi ja opiskelijanumero ja näillä

etunimi, sukunimi ja opiskelijanumero ja näillä Sisällys 1. Algoritmi Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.1 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot

Ohjelmoijan binaarialgebra ja heksaluvut

Ohjelmoijan binaarialgebra ja heksaluvut Paavo Räisänen Ohjelmoijan binaarialgebra ja heksaluvut www.ohjelmoinaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 ari.vesanen (at) oulu.fi 5. Rekursio ja induktio Rekursio tarkoittaa jonkin asian määrittelyä itseensä viittaamalla Tietojenkäsittelyssä algoritmin määrittely niin,

Lisätiedot

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Tuntitehtävät 9-10 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 13-14 loppuviikon harjoituksissa. Kotitehtävät 11-12 tarkastetaan loppuviikon

Lisätiedot

LUKUTEORIA johdantoa

LUKUTEORIA johdantoa LUKUTEORIA johdantoa LUKUTEORIA JA TODISTAMINEN, MAA11 Lukuteorian tehtävä: Lukuteoria tutkii kokonaislukuja, niiden ominaisuuksia ja niiden välisiä suhteita. Kokonaislukujen maailma näyttää yksinkertaiselta,

Lisätiedot

Huom! (5 4 ) Luetaan viisi potenssiin neljä tai viisi neljänteen. 7.1 Potenssin määritelmä

Huom! (5 4 ) Luetaan viisi potenssiin neljä tai viisi neljänteen. 7.1 Potenssin määritelmä 61 7.1 Potenssin määritelmä Potenssi on lyhennetty merkintä tulolle, jossa kantaluku kerrotaan itsellään niin monta kertaa kuin eksponentti ilmaisee. - luvun toinen potenssi on nimeltään luvun neliö o

Lisätiedot

(1) refleksiivinen, (2) symmetrinen ja (3) transitiivinen.

(1) refleksiivinen, (2) symmetrinen ja (3) transitiivinen. Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus. Tietyn ominaisuuden samuus -relaatio on ekvivalenssi; se on (1) refleksiivinen,

Lisätiedot

2.2 Neliöjuuri ja sitä koskevat laskusäännöt

2.2 Neliöjuuri ja sitä koskevat laskusäännöt . Neliöjuuri ja sitä koskevat laskusäännöt MÄÄRITELMÄ 3: Lukua b sanotaan luvun a neliöjuureksi, merkitään a b, jos b täyttää kaksi ehtoa: 1o b > 0 o b a Esim.1 Määritä a) 64 b) 0 c) 36 a) Luvun 64 neliöjuuri

Lisätiedot

1. Algoritmi 1.1 Sisällys Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. Muuttujat ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 Kertausta toiseen välikokeeseen Yhteenveto Kurssin sisältö 1. Algoritmin käsite 2. Lukujärjestelmät ja niiden muunnokset; lukujen esittäminen tietokoneessa 3. Logiikka

Lisätiedot

C = P Q S = P Q + P Q = P Q. Laskutoimitukset binaariluvuilla P -- Q = P + (-Q) (-Q) P Q C in. C out

C = P Q S = P Q + P Q = P Q. Laskutoimitukset binaariluvuilla P -- Q = P + (-Q) (-Q) P Q C in. C out Digitaalitekniikan matematiikka Luku ivu (2).9.2 Fe C = Aseta Aseta i i = n i > i i i Ei i < i i i Ei i i = Ei i i = i i -- On On On C in > < = CI CO C out -- = + (-) (-) = + = C + Digitaalitekniikan matematiikka

Lisätiedot

Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus.

Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus. Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus. Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden

Lisätiedot

Matematiikka vuosiluokat 7 9

Matematiikka vuosiluokat 7 9 Matematiikka vuosiluokat 7 9 Matematiikan opetuksen ydintehtävänä on tarjota oppilaille mahdollisuus hankkia sellaiset matemaattiset taidot, jotka antavat valmiuksia selviytyä jokapäiväisissä toiminnoissa

Lisätiedot

5. Laskutoimitukset eri lukujärjestelmissä

5. Laskutoimitukset eri lukujärjestelmissä 5. Laskutoimitukset eri lukujärjestelmissä Lukujen esitykset eri lukujärjestelmissä Muunnokset lukujärjestelmien välillä Laskutoimitukset eri lukujärjestelmissä. 5.1. Muunnokset lukujärjestelmien välillä

Lisätiedot

MAY1 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty 12.4.2016 Julkaiseminen sallittu vain koulun suljetussa verkossa.

MAY1 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty 12.4.2016 Julkaiseminen sallittu vain koulun suljetussa verkossa. KERTAUS Lukujono KERTAUSTEHTÄVIÄ K1. Ratkaisussa annetaan esimerkit mahdollisista säännöistä. a) Jatketaan lukujonoa: 2, 4, 6, 8, 10, 12, 14, 16, Rekursiivinen sääntö on, että lukujonon ensimmäinen jäsen

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

1. Kirjoita algoritmi, joka saa syötteenä pallon säteen ja tulostaa pallon tilavuuden.

1. Kirjoita algoritmi, joka saa syötteenä pallon säteen ja tulostaa pallon tilavuuden. Diskreetit rakenteet 811120P 5 op Syksy 2015 Harjoitustehtävät 1. Kirjoita algoritmi, joka saa syötteenä pallon säteen ja tulostaa pallon tilavuuden. 2. Kirjoita algoritmi, joka saa syötteenä ajan, joka

Lisätiedot

Lukujärjestelmät. Digitaalitekniikan matematiikka Luku 9 Sivu 3 (26) Lukujärjestelmät ja lukujen esittäminen Fe

Lukujärjestelmät. Digitaalitekniikan matematiikka Luku 9 Sivu 3 (26) Lukujärjestelmät ja lukujen esittäminen Fe Digitaalitekniikan matematiikka Luku 9 Sivu 3 (26) Lukujärjestelmät ja lukujen esittäminen.9.2 Fe Lukujärjestelmät Kymmen- eli desimaalijärjestelmä: kantaluku perinteisesti käytetty ja tuttu numerot,,

Lisätiedot

Ehto- ja toistolauseet

Ehto- ja toistolauseet Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden

Lisätiedot

2 Yhtälöitä ja epäyhtälöitä

2 Yhtälöitä ja epäyhtälöitä 2 Yhtälöitä ja epäyhtälöitä 2.1 Ensimmäisen asteen yhtälö ja epäyhtälö Muuttujan x ensimmäisen asteen yhtälöksi sanotaan yhtälöä, joka voidaan kirjoittaa muotoon ax + b = 0, missä vakiot a ja b ovat reaalilukuja

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 4 Jatkuvuus Jatkuvan funktion määritelmä Tarkastellaan funktiota f x) jossakin tietyssä pisteessä x 0. Tämä funktio on tässä pisteessä joko jatkuva tai epäjatkuva. Jatkuvuuden

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

Tietorakenteet (syksy 2013)

Tietorakenteet (syksy 2013) Tietorakenteet (syksy 2013) Harjoitus 1 (6.9.2013) Huom. Sinun on osallistuttava perjantain laskuharjoitustilaisuuteen ja tehtävä vähintään kaksi tehtävää, jotta voit jatkaa kurssilla. Näiden laskuharjoitusten

Lisätiedot

1. Logiikan ja joukko-opin alkeet

1. Logiikan ja joukko-opin alkeet 1. Logiikan ja joukko-opin alkeet 1.1. Logiikkaa 1. Osoita totuusarvotauluja käyttäen, että implikaatio p q voidaan kirjoittaa muotoon p q, ts. että propositio (p q) ( p q) on identtisesti tosi. 2. Todista

Lisätiedot

Liukulukulaskenta. Pekka Hotokka

Liukulukulaskenta. Pekka Hotokka Liukulukulaskenta Pekka Hotokka pejuhoto@cc.jyu.fi 10.11.2004 Tiivistelmä Liukulukuja tarvitaan, kun joudutaan esittämään reaalilukuja tietokoneella. Niiden esittämistavasta johtuen syntyy laskennassa

Lisätiedot

Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdotuksia harjoituksiin 3 (9 sivua) OT

Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdotuksia harjoituksiin 3 (9 sivua) OT Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdotuksia harjoituksiin 3 (9 sivua) 31.1.-4.2.2011 OT 1. Määritellään kokonaisluvuille laskutoimitus n m = n + m + 5. Osoita, että (Z, ) on ryhmä.

Lisätiedot

Suurin yhteinen tekijä (s.y.t.) ja pienin yhteinen monikerta (p.y.m.)

Suurin yhteinen tekijä (s.y.t.) ja pienin yhteinen monikerta (p.y.m.) Suurin yhteinen tekijä (s.y.t.) ja pienin yhteinen monikerta (p.y.m.) LUKUTEORIA JA TODISTAMINEN, MAA11 Määritelmä, yhteinen tekijä ja suurin yhteinen tekijä: Annettujen lukujen a ja b yhteinen tekijä

Lisätiedot

Testaa taitosi 1: Lauseen totuusarvo

Testaa taitosi 1: Lauseen totuusarvo Testaa taitosi 1: Lauseen totuusarvo 1. a) Laadi lauseen A (B A) totuustaulu. b) Millä lauseiden A ja B totuusarvoilla a-kohdan lause on tosi? c) Suomenna a-kohdan lause, kun lause A on olen vihainen ja

Lisätiedot

Vaihtoehtoinen tapa määritellä funktioita f : N R on

Vaihtoehtoinen tapa määritellä funktioita f : N R on Rekursio Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on käyttää rekursiota: 1 (Alkuarvot) Ilmoitetaan funktion arvot

Lisätiedot

MS-A0402 Diskreetin matematiikan perusteet

MS-A0402 Diskreetin matematiikan perusteet MS-A0402 Diskreetin matematiikan perusteet Osa 1: Joukko-oppi ja logiikka Riikka Kangaslampi 2017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Kiitokset Nämä luentokalvot perustuvat Gustaf

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero

Lisätiedot

Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on

Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on Rekursio Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on käyttää rekursiota: Rekursio Funktio f : N R määritellään yleensä

Lisätiedot

VIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto

VIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII Liitteet Liitteet A B C Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII A. Liite Operaattoreiden suoritusjärjestys On tärkeää ymmärtää, että operaattoreilla on prioriteettinsa,

Lisätiedot

4 Yleinen potenssifunktio ja polynomifunktio

4 Yleinen potenssifunktio ja polynomifunktio 4 Yleinen potenssifunktio ja polynomifunktio ENNAKKOTEHTÄVÄT 1. a) Tutkitaan yhtälöiden ratkaisuja piirtämällä funktioiden f(x) = x, f(x) = x 3, f(x) = x 4 ja f(x) = x 5 kuvaajat. Näin nähdään, monessako

Lisätiedot

Yhden bitin tiedot. Binaariluvun arvon laskeminen. Koodin bittimäärä ja vaihtoehdot ? 1

Yhden bitin tiedot. Binaariluvun arvon laskeminen. Koodin bittimäärä ja vaihtoehdot ? 1 Luku Digitaalitekniikan matematiikka Täsmätehtävät.9. Fe Digitaalitekniikan matematiikka Täsmätehtävät.9. Fe Opetuskerta Sivu Luku Opetuskerta Sivu Yhden bitin tiedot Luettele esimerkkejä yhden bitin tiedoista.

Lisätiedot

Tekijä Pitkä Matematiikka 11 ratkaisut luku 2

Tekijä Pitkä Matematiikka 11 ratkaisut luku 2 Tekijä Pitkä matematiikka 11 0..017 170 a) Koska 8 = 4 7, luku 8 on jaollinen luvulla 4. b) Koska 104 = 4 6, luku 104 on jaollinen luvulla 4. c) Koska 4 0 = 80 < 8 ja 4 1 = 84 > 8, luku 8 ei ole jaollinen

Lisätiedot

Osa 1: Todennäköisyys ja sen laskusäännöt. Klassinen todennäköisyys ja kombinatoriikka

Osa 1: Todennäköisyys ja sen laskusäännöt. Klassinen todennäköisyys ja kombinatoriikka Ilkka Mellin Todennäköisyyslaskenta Osa 1: Todennäköisyys ja sen laskusäännöt Klassinen todennäköisyys ja kombinatoriikka TKK (c) Ilkka Mellin (2007) 1 Klassinen todennäköisyys ja kombinatoriikka >> Klassinen

Lisätiedot

Aloitustunti MAA22 Starttikurssi pitkän matematiikan opiskeluun

Aloitustunti MAA22 Starttikurssi pitkän matematiikan opiskeluun Aloitustunti MAA22 Starttikurssi pitkän matematiikan opiskeluun 13. elokuuta 2015 Miksi matikkaa Erityisen tärkeää teknillisillä ja luonnontieteellisillä aloilla Ohjelmointi ja tietojenkäsittelytiede Lääketieteellinen

Lisätiedot

a k+1 = 2a k + 1 = 2(2 k 1) + 1 = 2 k+1 1. xxxxxx xxxxxx xxxxxx xxxxxx

a k+1 = 2a k + 1 = 2(2 k 1) + 1 = 2 k+1 1. xxxxxx xxxxxx xxxxxx xxxxxx x x x x x x x x Matematiikan johdantokurssi, syksy 08 Harjoitus, ratkaisuista Hanoin tornit -ongelma: Tarkastellaan kolmea pylvästä A, B ja C, joihin voidaan pinota erikokoisia renkaita Lähtötilanteessa

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

n! k!(n k)! n = Binomikerroin voidaan laskea pelkästään yhteenlaskun avulla käyttäen allaolevia ns. palautuskaavoja.

n! k!(n k)! n = Binomikerroin voidaan laskea pelkästään yhteenlaskun avulla käyttäen allaolevia ns. palautuskaavoja. IsoInt Tietokoneiden muisti koostuu yksittäisistä muistisanoista, jotka nykyaikaisissa koneissa ovat 64 bitin pituisia. Muistisanan koko asettaa teknisen rajoituksen sille, kuinka suuria lukuja tietokone

Lisätiedot

2.1. Tehtävänä on osoittaa induktiolla, että kaikille n N pätee n = 1 n(n + 1). (1)

2.1. Tehtävänä on osoittaa induktiolla, että kaikille n N pätee n = 1 n(n + 1). (1) Approbatur 3, demo, ratkaisut Sovitaan, että 0 ei ole luonnollinen luku. Tällöin oletusta n 0 ei tarvitse toistaa alla olevissa ratkaisuissa. Se, pidetäänkö nollaa luonnollisena lukuna vai ei, vaihtelee

Lisätiedot

Johdatus matemaattiseen päättelyyn

Johdatus matemaattiseen päättelyyn Johdatus matemaattiseen päättelyyn Maarit Järvenpää Oulun yliopisto Matemaattisten tieteiden laitos Syyslukukausi 2015 1 Merkintöjä Luonnollisten lukujen joukko N on joukko N = {1, 2, 3,...} ja kokonaislukujen

Lisätiedot

ANSI/IEEE Std

ANSI/IEEE Std Digitaalitekniikan matematiikka Luku 9 Sivu 1 (26) Lukujärjestelmät ja lukujen esittäminen ANSI/IEEE Std 754-2008 0 1 0 1 1 0 0 0 B = Σ B i 2 i Digitaalitekniikan matematiikka Luku 9 Sivu 2 (26) Johdanto

Lisätiedot

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1 Tietorakenteet ja algoritmit syksy 2012 Laskuharjoitus 1 1. Tietojenkäsittelijä voi ajatella logaritmia usein seuraavasti: a-kantainen logaritmi log a n kertoo, kuinka monta kertaa luku n pitää jakaa a:lla,

Lisätiedot

Algoritmit 2. Luento 8 To Timo Männikkö

Algoritmit 2. Luento 8 To Timo Männikkö Algoritmit 2 Luento 8 To 4.4.2019 Timo Männikkö Luento 8 Algoritmien analysointi Algoritmien suunnittelu Rekursio Osittaminen Rekursioyhtälöt Rekursioyhtälön ratkaiseminen Master-lause Algoritmit 2 Kevät

Lisätiedot

Desimaaliluvut, mitä ne oikeastaan ovat?

Desimaaliluvut, mitä ne oikeastaan ovat? Desimaaliluvut, mitä ne oikeastaan ovat? Matti Lehtinen Desimaaliluvut ovat niin jokapäiväisiä ja niillä laskemiseen niin totuttu, ettei yleensä tule miettineeksi, mitä ne oikeastaan ovat. Joskus kauan

Lisätiedot

Funktion raja-arvo. lukumäärien tutkiminen. tutkiminen

Funktion raja-arvo. lukumäärien tutkiminen. tutkiminen Matematiikka algebra geometria Funktion raja-arvo analyysi tarve lukumäärien tutkiminen kuvioiden ja kappaleiden tutkiminen muutosten tutkiminen DERIVAATTA, MAA6 Yhtä vanhoja kuin ihmiskuntakin ~6 000

Lisätiedot

1.1 Funktion määritelmä

1.1 Funktion määritelmä 1.1 Funktion määritelmä Tämän kappaleen otsikoksi valittu funktio on hyvä esimerkki matemaattisesta käsitteestä, johon usein jopa tietämättämme törmäämme arkielämässä. Tutkiessamme erilaisia Jos joukkojen

Lisätiedot

Python-ohjelmointi Harjoitus 2

Python-ohjelmointi Harjoitus 2 Python-ohjelmointi Harjoitus 2 TAVOITTEET Kerrataan tulostuskomento ja lukumuotoisen muuttujan muuttaminen merkkijonoksi. Opitaan jakojäännös eli modulus, vertailuoperaattorit, ehtorakenne jos, input-komento

Lisätiedot

Johdatus matematiikkaan

Johdatus matematiikkaan Johdatus matematiikkaan Luento 4 Mikko Salo 4.9.2017 Sisältö 1. Rationaali ja irrationaaliluvut 2. Induktiotodistus Rationaaliluvut Määritelmä Reaaliluku x on rationaaliluku, jos x = m n kokonaisluvuille

Lisätiedot

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista Matematiikan johdantokurssi, syksy 06 Harjoitus, ratkaisuista. Valitse seuraaville säännöille mahdollisimman laajat lähtöjoukot ja sopivat maalijoukot niin, että syntyy kahden muuttujan funktiot (ks. monisteen

Lisätiedot

Liite 1. Laajennettu Eukleideen algoritmi suoraviivainen tapa

Liite 1. Laajennettu Eukleideen algoritmi suoraviivainen tapa Liite 1. Laajennettu Eukleideen algoritmi suoraviivainen tapa - johdanto - matemaattinen induktiotodistus - matriisien kertolaskun käyttömahdollisuus - käsinlaskuesimerkkejä - kaikki välivaiheet esittävä

Lisätiedot

Luvuilla laskeminen. Esim. 1 Laske 6 21 7

Luvuilla laskeminen. Esim. 1 Laske 6 21 7 Luvuilla laskeminen TI-84 Plus käyttää laskujen suorittamiseen ns. yhtälönkäsittelyjärjestelmää (EOS TM, Equation Operating System), jonka avulla lausekkeiden syöttö tapahtuu matemaattisessa kirjoitusjärjestyksessä.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 26.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 26.1.2009 1 / 33 Valintakäsky if syote = raw_input("kerro tenttipisteesi.\n") pisteet = int(syote) if pisteet >=

Lisätiedot

802328A LUKUTEORIAN PERUSTEET OSA III BASICS OF NUMBER THEORY PART III. Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO

802328A LUKUTEORIAN PERUSTEET OSA III BASICS OF NUMBER THEORY PART III. Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO 8038A LUKUTEORIAN PERUSTEET OSA III BASICS OF NUMBER THEORY PART III Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO SYKSY 016 Sisältö 1 Irrationaaliluvuista Antiikin lukuja 6.1 Kolmio- neliö- ja tetraedriluvut...................

Lisätiedot

Todistusmenetelmiä Miksi pitää todistaa?

Todistusmenetelmiä Miksi pitää todistaa? Todistusmenetelmiä Miksi pitää todistaa? LUKUTEORIA JA TO- DISTAMINEN, MAA11 Todistus on looginen päättelyketju, jossa oletuksista, määritelmistä, aksioomeista sekä aiemmin todistetuista tuloksista lähtien

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

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5) Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,

Lisätiedot

Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma

Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten Ratkaisuehdotelma Tehtävä 1 1. Etsi lukujen 4655 ja 12075 suurin yhteinen tekijä ja lausu se kyseisten lukujen lineaarikombinaationa ilman laskimen

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

a b c d + + + + + + + + +

a b c d + + + + + + + + + 28. 10. 2010!"$#&%(')'+*(#-,.*/1032/465$*784 /(9:*;9."$ *;5> *@9 a b c d 1. + + + 2. 3. 4. 5. 6. + + + + + + + + + + P1. Valitaan kannaksi sivu, jonka pituus on 4. Koska toinen jäljelle jäävistä sivuista

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 21.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 21.1.2009 1 / 32 Tyypeistä Monissa muissa ohjelmointikielissä (esim. Java ja C) muuttujat on määriteltävä ennen

Lisätiedot

Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }?

Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }? Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }? Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }? Vastaus

Lisätiedot

Joukot. Georg Cantor ( )

Joukot. Georg Cantor ( ) Joukot Matematiikassa on pyrkimys määritellä monimutkaiset asiat täsmällisesti yksinkertaisempien asioiden avulla. Tarvitaan jokin lähtökohta, muutama yleisesti hyväksytty ja ymmärretty käsite, joista

Lisätiedot

Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa.

Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa. Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }? Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa. Vastaus 2. Vertaillaan

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

802328A LUKUTEORIAN PERUSTEET OSA III BASICS OF NUMBER THEORY PART III

802328A LUKUTEORIAN PERUSTEET OSA III BASICS OF NUMBER THEORY PART III 802328A LUKUTEORIAN PERUSTEET OSA III BASICS OF NUMBER THEORY PART III Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO SYKSY 2016 LUKUTEORIA 1 / 77 Irrationaaliluvuista Määritelmä 1 Luku α C \ Q on

Lisätiedot

KESKEISET SISÄLLÖT Keskeiset sisällöt voivat vaihdella eri vuositasoilla opetusjärjestelyjen mukaan.

KESKEISET SISÄLLÖT Keskeiset sisällöt voivat vaihdella eri vuositasoilla opetusjärjestelyjen mukaan. VUOSILUOKAT 6 9 Vuosiluokkien 6 9 matematiikan opetuksen ydintehtävänä on syventää matemaattisten käsitteiden ymmärtämistä ja tarjota riittävät perusvalmiudet. Perusvalmiuksiin kuuluvat arkipäivän matemaattisten

Lisätiedot

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 12 (opetusmoniste, kappaleet )

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 12 (opetusmoniste, kappaleet ) T-79.144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 12 (opetusmoniste, kappaleet 9.1 9.5) 30.11. 3.12.2004 1. Osoita lauselogiikan avulla oheisten ehtolausekkeiden ekvivalenssi. (a)!(a

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

NELIÖJUURI. Neliöjuuren laskusääntöjä

NELIÖJUURI. Neliöjuuren laskusääntöjä NELIÖJUURI POLYNOMIFUNKTIOT JA -YHTÄLÖT, MAA2 Tarkoittaa positiivista tai nollaa Määritelmä, neliöjuuri: Luvun a R neliöjuuri, merkitään a, on se ei-negatiivinen luku, jonka neliö (eli toiseen potenssiin

Lisätiedot

LAUSEKKEET JA NIIDEN MUUNTAMINEN

LAUSEKKEET JA NIIDEN MUUNTAMINEN LAUSEKKEET JA NIIDEN MUUNTAMINEN 1 LUKULAUSEKKEITA Ratkaise seuraava tehtävä: Retkeilijät ajoivat kahden tunnin ajan polkupyörällä maantietä pitkin 16 km/h nopeudella, ja sitten vielä kävelivät metsäpolkua

Lisätiedot

Alkulukujen harmoninen sarja

Alkulukujen harmoninen sarja Alkulukujen harmoninen sarja LuK-tutkielma Markus Horneman Oiskelijanumero:2434548 Matemaattisten tieteiden laitos Oulun ylioisto Syksy 207 Sisältö Johdanto 2 Hyödyllisiä tuloksia ja määritelmiä 3. Alkuluvuista............................

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

1. luento. Ohjelmointi (C) T0004 Syksy 2003. 1. luento. 1. luento. 1. luento. 1. luento. kurssin sisältö ja tavoitteet työmuodot.

1. luento. Ohjelmointi (C) T0004 Syksy 2003. 1. luento. 1. luento. 1. luento. 1. luento. kurssin sisältö ja tavoitteet työmuodot. EVTEK Teknillinen ammattikorkeakoulu Ohjelmointi (C) T0004 Syksy 2003 Olli Hämäläinen kurssin sisältö ja tavoitteet työmuodot luennot 1-2/2003 laboratorioharjoitukset 1-2/2003 kotitehtävät, laboratoriokerrat

Lisätiedot

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä Sisällys 11. Javan toistorakenteet Laskuri- ja lippumuuttujat.. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin lopettaminen break-lauseella.

Lisätiedot