OHJ-2100 Ohjelmistotieteen perustyökaluja kesä 2013: laskuharjoituksia
|
|
- Tyyne Tamminen
- 7 vuotta sitten
- Katselukertoja:
Transkriptio
1 OHJ-2100 Ohjelmistotieteen perustyökaluja kesä 2013: laskuharjoituksia Antero Kangas & Antti Valmari Tampereen teknillinen yliopisto Matematiikan laitos 24. toukokuuta 2013 Käytännön asioita Kirjoita vastaus puhtaaksi A4-kokoisille papereille tai konsepteille. Nido palautettavat paperit yhteen, jos niitä on useampi kuin yksi. Kirjoita vastaus siistillä käsialalla tai tekstinkäsittelyohjelmalla. Vastauksissa tulee käyttää samoja symboleita kuin kurssilla muutenkin. Kirjoita palautettavien papereiden ensimmäisen paperin (jos niitä on useita) alkuosaan selvästi näkyville niiden tehtävien numerot, jotka olet valmistautunut esittämään taululla. Palautettavissa papereissa tulee selkeästi olla merkittynä palautettujen tehtävien numerot, eri tehtävät selkeästi erotettuna (esim. poikkiviiva tehtävien välissä). Kirjoita vastauspaperisi yläreunaan sen laskuharjoitusryhmän tunnus eli kirjain ja numero, johon olet menossa sekä nimesi ja opiskelijanumerosi. Kirjoita opiskelijanumerosi niin selvästi, että assistentti ei vahingossa lue sitä väärin ja kirjaa suorituksesi jonkun muun hyväksi Vinkkejä Ennen kuin alat laskea, lue prujun ko. asiaa käsittelevä osuus tai käy ko. luennot. Lue tehtävä huolellisesti. Mieti, onko lopullinen vastauksesi järkevä. Prujussa on neuvoja koskien mm. mitä tehdä, jos logiikan kaavan osoittaminen oikeaksi ei onnistu sekä erityisesti miten lisätä uskoa tilapredikaatin oikeellisuuteen. Samoja periaatteita voi soveltaa muunkinlaisten tehtävien vastausten oikeellisuuden tai järkevyyden tarkistamiseen. Valmistaudu esittämään taululla kaikki palauttamasi tehtävät. Saat harjoituksista parhaan hyödyn tutustumalla etukäteen niihinkin tehtäviin, joita et palauta.
2 OHJ-2100 laskuharjoituksia 24. toukokuuta Pistejärjestelmä lyhyesti Vastauksia ei varsinaisesti pisteytetä, vaan opiskelija palauttaa ne vastaukset, jotka hän on valmistautunut esittämään taululla. Assistentti valitsee kuka laskee minkäkin tehtävän taululle. Mikäli laskun esitys taululla ei suju, tai tehtävää ei ole tehty riittävän huolella, voidaan kyseinen tehtävä hylätä laskijan osalta ja assistentti tarkistaa hänen muutkin vastauksensa ja harkintansa mukaan joko hyväksyy tai hylkää ne. Assistentilla on kuitenkin oikeus tarkistaa muidenkin kuin vain taululla käyneiden vastaukset ja päättää, onko vastaus riittävä, esimerkiksi että kaikkiin alakohtiin on annettu vastaus. Tehtäviä on palautettava hyväksytysti 27, joista ainakin 15 tehtäväryhmistä 7,..., 12. Merkkien selityksiä Tähän lukuun on koottu jatkossa käytettävät matemaattiset ja pseudokoodimerkinnät kaikkein tutuimpia lukuunottamatta. Matematiikka yleistä x Suurin kokonaisluku, joka on enintään yhtäsuuri kuin x. Esimerkiksi 4 = 4,2 = 4,9 = 4 ja 4 = 4 ja 4,2 = 4,9 = 5. Hyödyllisiä kaavoja: x x ja 0 x x < 1. x Pienin kokonaisluku, joka on vähintään yhtäsuuri kuin x. Esimerkiksi 4 = 4 ja 4,2 = 4,9 = 5 ja 4 = 4,2 = 4,9 = 4. Hyödyllisiä kaavoja: x x ja 0 x x < 1 ja x = x. i I Jos on jokin sopivat ehdot täyttävä binäärioperaattori, niin i I f(i) tarkoittaa, että käydään läpi joukon I alkiot, lasketaan kullekin f(i), ja yhdistetään tulokset operaattorilla 5. Esimerkki: + i {2,3,4,5} i 2 = = i 2. Käytetään erityisesti joukko-opin operaattorien ja yhteydessä. i=2 N Tarkoittaa relaation transitiivista sulkeumaa. Älä sekoita relaatiota implikatioon. Käytännössä u v tarkoittaa, että u:sta pääsee v:hen nollalla tai useammalla askeleella. Esimerkiksi graafin tapauksessa askel on siirtyminen kaaren alkusolmusta sen loppusolmuun. Katso luonnolliset luvut. Z, Z +, Z Katso kokonaisluvut. Q, Q +, Q Katso rationaaliluvut. R, R +, R Katso reaaliluvut. assosiatiivisuuden suunta Katso sitovuuden suunta.
3 OHJ-2100 laskuharjoituksia 24. toukokuuta kokonaisluvut Luvut..., 3, 2, 1,0,1,2,3,... Kokonaislukujen joukkoa merkitäänz. Positiivisten kokonaislukujen joukko on Z + = {n Z n > 0} ja negatiivisten kokonaislukujen joukko on Z = {n Z n < 0}. käytössä oleva lukujoukko Tässä tekstissä, ellei käytettävien lukujen joukkoa ole erikseen ilmoitettu, niin käytetään kokonaislukujen joukkoa. liitännäisyyden suunta Katso sitovuuden suunta. luonnolliset luvut Luvut 0, 1, 2, 3,... Luonnollisten lukujen joukkoa merkitään N. Varoitus: jotkut kirjoittajat tarkoittavat luonnollisilla luvuilla lukuja 1, 2, 3,... presedenssi Katso sitovuustaso. rationaaliluvut Rationaalilukujen joukko Q = { m m Z n Z {0} }. Positiivisten n rationaalilukujen joukko on Q + = { x Q x > 0 } ja negatiivisten rationaalilukujen joukko on Q = {x Q x < 0}. reaaliluvut Reaalilukujen joukkoa merkitään R. Positiivisten reaalilukujen joukko on R + = {x R x > 0} ja negatiivisten reaalilukujen joukko on R = {x R x < 0}. sitovuuden suunta Kutsutaan myös nimellä liitännäisyyden tai assosiatiivisuuden suunta. Operaattorin sitovuuden suunta määrittelee, miten x y z tulkitaan. Jos sitoo vasemmalle, niin x y z = (x y) z. Jos sitoo oikealle, niin x y z = x (y z). Vertailuoperaattorit eivät matematiikassa sido kumpaankaan suuntaan: kaava x y = z ei tarkoita (x y) = z eikä x (y = z) vaan (x y) (y = z). Tulkinta (x y) = z ei olisi matematiikassa yleensä edes järkevä, koska (x y) tuottaa totuusarvon, ja totuusarvon vertaamista lukuun tms. ei ole yleensä määritelty. Ohjelmointikielissä tilanne on toinen: niissä esiintyy vasemmalle ja/tai oikealle sitovia vertailuoperaattoreita. Katso myös sitovuustaso. Katso logiikan jne. operaattorien sitovuuden suunnat otsikon Logiikka jne. kohdasta sitovuuden suunta. sitovuustaso Kutsutaan myös nimellä presedenssi. Jos operaattori sitoo voimakkaammin eli on korkeammalla sitovuustasolla kuin operaattori, niin x y z tulkitaan (x y) z ja x y z tulkitaan x (y z). Ihmisellä on taipumus ottaa kaavoja jäsentäessään huomioon kaavan sisällön ja ladonnan antamat vihjeet. Esimerkiksi x : P(x) x : Q(x) tulee helposti tulkittua kuten ( x : P(x)) ( x : Q(x)), vaikka logiikan tässä tekstissä käytettävien sitovuussääntöjen mukaan se tarkoittaa x : (P(x) x : Q(x)). Tästä syystä kaavoja kirjoitettaessa kannattaa käyttää ylimääräisiä sulkuja, ja kaavoja lukiessa kannattaa ottaa huomioon mahdollisuus, että kirjoittaja on vahingossa jättänyt pois välttämättömiä sulkuja. Ylimääräisiä sulkuja kannattaa käyttää myös siksi, että kirjallisuudessa käytetään vaihtelevia sitovuussääntöjä. Katso myös sitovuuden suunta. Katso logiikan jne. operaattorien sitovuustasot otsikon Logiikka jne. kohdasta sitovuustaso.
4 OHJ-2100 laskuharjoituksia 24. toukokuuta Logiikka Ja. ϕ ξ tarkoittaa, että sekä ϕ että ξ pätee. Tai. ϕ ξ tarkoittaa, että ϕ pätee tai ξ pätee tai molemmat pätevät. Ei. ϕ tarkoittaa, että ϕ ei päde. Implikaatio loogisena operaattorina. ϕ ξ tarkoittaa, että jos ϕ pätee, niin myös ξ pätee. Toisin sanoen, ϕ ξ tuottaa False jos ja vain jos ϕ tuottaa True ja ξ tuottaa False. Vertaa. Ekvivalenssi loogisena operaattorina. ϕ ξ on sama kuin ϕ ξ ja ξ ϕ yhdessä. Toisin sanoen, ϕ ξ tuottaa True jos ja vain jos joko sekä ϕ että ξ tuottaa True, tai sekä ϕ että ξ tuottaa False. Vertaa. 1. Implikaatio kahden väittämän vertailuna. Käytetään yleensä ilmaisemaan päättelyaskelta. ϕ ξ on voimassa jos ja vain jos kaikissa niissä tilanteissa jotka ovat kyseisessä asiayhteydessä mahdollisia ja joissa ϕ pätee, myös ξ pätee. (Eri tilanteita saadaan vaihtelemalla ϕ:n ja ξ:n sisällä esiintyvien vapaiden muuttujien arvoja.) Toisin sanoen, ϕ ξ on voimassa jos ja vain jos ϕ ξ tuottaa aina True riippumatta ϕ:n ja ξ:n sisällä olevien vapaiden muuttujien arvoista, kunhan ei valita arvoyhdistelmää, joka on kyseisessä asiayhteydessä mahdoton. Esimerkiksi x > 1 x+y > 1 ei yleisesti ole pätevä päätelmä, mutta se on pätevä, jos asiayhteyden vuoksi tiedetään, että y 0. on samankaltainen kuin, mutta esiintyy kaavojen välissä ja esiintyy kaavan sisällä. Tämän vuoksi saa kirjoittaa (ϕ ξ) ζ, mutta ei saa kirjoittaa (ϕ ξ) ζ, koska siinä joutuu kaavan sisään. Saa kirjoittaa ϕ ξ ζ. Se tarkoittaa samaa kuin ϕ ξ ja ξ ζ yhdessä, mutta ϕ ξ ζ tarkoittaa (ϕ ξ) ζ. (Varoitus: joillakin kirjoittajilla ϕ ξ ζ tarkoittaa ϕ (ξ ζ).) 2. Käytetään usein myös samassa merkityksessä kuin. Ekvivalenssi kahden väittämän vertailuna. ϕ ξ on voimassa jos ja vain jos ϕ pätee täsmälleen samoissa asiayhteyden sallimissa tilanteissa kuin ξ. Vertaa ja. Kaikki-kvanttori. x : ϕ(x) tarkoittaa, että jokainen alkio x toteuttaa ehdon ϕ(x). x; ϕ(x) : ξ(x) tarkoittaa, että jokainen ehdon ϕ toteuttava alkio x toteuttaa myös ehdon ξ. Se tarkoittaa siis samaa kuin x : ϕ(x) ξ(x). (Varoitus: tämä tapa käyttää välimerkkejä kvanttorin yhteydessä ei ole kovin yleinen, vaikka se auttaa ryhmittelemään kaavoja helpommin ymmärrettäviksi.) x A : ϕ(x) tarkoittaa, että jokainen joukon A alkio x toteuttaa ehdon ϕ. Se tarkoittaa siis samaa kuin x : x A ϕ(x). On olemassa -kvanttori. x : ϕ(x) tarkoittaa, että on olemassa ainakin yksi alkio x, joka toteuttaa ehdon ϕ(x). x; ϕ(x) : ξ(x) tarkoittaa, että on olemassa ainakin yksi ehdon ϕ toteuttava alkio x, jolle myös ξ pätee. Se tarkoittaa siis samaa kuin x : ϕ(x) ξ(x). (Varoitus: tämä tapa käyttää välimerkkejä kvanttorin yhteydessä ei ole kovin yleinen, vaikka se auttaa ryhmittelemään kaavoja helpommin ymmärrettäviksi.)
5 OHJ-2100 laskuharjoituksia 24. toukokuuta x A : ϕ(x) tarkoittaa, että ainakin yksi joukon A alkio x toteuttaa ehdon ϕ. Se tarkoittaa siis samaa kuin x : x A ϕ(x). False Logiikan totuusarvo epätosi. Jos kaava ei päde, niin sen totuusarvo on False. Usein (varsinkin ohjelmointikielissä), mutta ei tällä kurssilla, False:n tilalla käytetään lukuarvoa 0. kvanttori Katso ja. Joskus kvanttoreiksi kutsutaan myös muita samaan tapaan käytettäviä symboleita. määrittelemättömät operaatiot kaavoissa Predikaatti on hyvin määritelty, jos ja vain jos siinä olevat määrittelemättömiä operaatioita sisältävät predikaatit eliminoituvat seuraavilla laskusäännöillä: False (mitä tahansa) (mitä tahansa) False False, True (mitä tahansa) (mitä tahansa) True True, False (mitä tahansa) True ja (mitä tahansa) True True. Siten esimerkiksi reaaliluvuilla x : = 0 x x ei ole hyvin määritelty, mutta x : 1 0 x = 0 on hyvin määritelty ja tuottaa True. x Predikaatit pitää kirjoittaa niin, että ne ovat hyvin määriteltyjä. sidottu muuttuja Muuttuja x on sidottu esiintyessään kvanttorin vaikutuspiirissä. Jos muuttuja ei ole sidottu, se on vapaa. Esimerkiksi kaavassa y > 0 ( y : x + y < 0) y = 0 keskimmäiset y:n esiintymät ovat sidottuja ja reunimmaiset vapaita. Tilanne voidaan tulkita myös siten, että kvanttori esittelee uuden muuttujan, jolla voi olla sama nimi kuin jollakin muulla muuttujalla. sitovuuden suunta Tässä tekstissä,, ja sitovat vasemmalle, ja ja käyttäytyvät vertailuoperaattorien tavoin (katso ). Varoitus: sitovuuden suunta vaihtelee kirjallisuudessa. Katso myös Matematiikka yleistä sitovuuden suunta. sitovuustaso Logiikan operaattoreiden sitovuustasot vaihtelevat kirjallisuudessa. Tässä tekstissä ne ovat voimakkaimmasta heikoimpaan:,,,,, kvanttorit. Kaavojen vertaamiseen käytettävät operaattorit ja sitovat edellä lueteltuja heikommin ja käyttäytyvät vertailuoperaattorien tavoin. Logiikan ulkopuolisista arvoista totuusarvoja tuottavat operaattorit kuten =,, < ja sitovat voimakkaammin kuin loogiset operaattorit. Katso myös Matematiikka yleistä sitovuustaso. totuusarvo Logiikan kaavan tuottama arvo. Totuusarvoja ovat False ja True. True Logiikan totuusarvo tosi. Jos kaava pätee, niin sen totuusarvo on True. Usein (varsinkin ohjelmointikielissä), mutta ei tällä kurssilla, True:n tilalla käytetään lukuarvoa 1. vapaa muuttuja Katso sidottu muuttuja. Joukko-oppi Tyhjä joukko, eli joukko, jossa ei ole alkioita. Pätee A = x : x / A. {...} {a 1,a 2,...,a n } on joukko, jonka alkiot ovat a 1,a 2,...,a n. Pätee x {a 1,a 2,...,a n } x = a 1 x = a 2 x = a n. Esimerkki: Viikonpäivät = { maanantai, tiistai,...,sunnnuntai }. {} on johdonmukainen mutta melko harvoin käytetty vaihtoehtoinen merkintä joukolle.
6 OHJ-2100 laskuharjoituksia 24. toukokuuta {x ϕ(x)} on niiden alkioiden x joukko, jotka toteuttavat ehdon ϕ. Esimerkki: {x y Z : x = 2 y} on parillisten kokonaislukujen joukko. Pätee x {x ϕ(x)} ϕ(x). {x A ϕ(x)} on niiden A:n alkioiden x joukko, jotka toteuttavat ehdon ϕ. Pätee {x A ϕ(x)} = {x x A ϕ(x)} = {x ϕ(x)} A. {f(x) ϕ(x)} on joukko, joka saadaan käymällä läpi ne alkiot x, jotka toteuttavat ehdon ϕ; laskemalla jokaiselle f(x); ja kokoamalla tulokset joukoksi. Esimerkki: {2 x x Z} on parillisten kokonaislukujen joukko. Varoitus: koska tämä merkintä ei erikseen kerro, mikä muuttuja käy arvoja läpi, on se epäselvä silloin kun kaavassa on useita muuttujasymboleita.... Katso. Joukkoon kuuluminen. Esimerkki: Tampere Suomen kaupungit. / Joukkoon kuulumattomuus. Esimerkki: Melbourne / Suomen kaupungit. Voidaan määritellä kaavalla x / A (x A). ε Tyhjä jono, joukon A 0 ainoa alkio. Katso. = Joukkojen yhtäsuuruus määritellään A = B x : x A x B. Osajoukko. Esimerkki: Suomen kaupungit Kaupungit. Pätee A B x : x A x B ja A B A B A = B. Aito osajoukko. Pätee A B A B A B. Varoitus: jotkut kirjoittajat käyttävät tarkoittamaan samaa kuin tarkoittaa tässä tekstissä. Unioni. Esimerkki: {1,2,3} {2,4} = {1,2,3,4}. Pätee A B = {x x A x B}. Leikkaus. Esimerkki: {1,2,3} {2,4} = {2}. Pätee A B = {x x A x B}. Joukkojen erotus. Esimerkki: {1,2,3} {2,4} = {1,3}. PäteeA B ={x x A x / B}. Kirjallisuudessa käytetään myös symbolia \. Tulojoukko. Esimerkki: {1,2,3} {2,4} = {(1,2),(1,4),(2,2),(2,4),(3,2),(3,4)}. Pätee A B = {(x,y) x A y B}. Myös useamman kuin kahden joukon yhdistäminen operaattorilla on mahdollista: A 1 A 2 A n = {(a 1,a 2,...,a n ) i; 1 i n : a i A i }. Tavallisten sulkujen tilalla käytetään toisinaan ja, jotta eri tulojoukkojen alkiot erottuisivat paremmin toisistaan eivätkä sekottuisi kaavan muihin sulkuihin. Kielten teoriassa sulut ja alkioiden väliset pilkut jätetään usein kokonaan pois. Silloin kun n = 1 katsotaan usein, että A 1 A n = A 1. Tarkkaan ottaen se on {(a) a A 1 }, mutta (a) ja a katsotaan usein samanveroisiksi. Silloin kun n = 0 on tulojoukossa täsmälleen yksi alkio. Sitä olisi johdonmukaista merkitä ja toisinaan merkitäänkin () tai. Tämä merkintä ei kuitenkaan ole käyttökelpoinen silloin kun sulut jätetään kokonaan pois. Silloin käytetään symbolia ε. A n A potenssiin n. A n = A A A, missä A esiintyy oikealla puolella n kertaa. Toisin sanoen se on kaikki A:n alkioista muodostettavissa olevat monikot, joissa on n alkiota. Erityisesti A 0 on alkioiden merkintätavasta riippuen {()}, { } tai {ε}.
7 OHJ-2100 laskuharjoituksia 24. toukokuuta A A + Joukon A alkioista muodostettavissa olevien äärellisten jonojen joukko. Esimerkki: {+, } = {ε,+,,++,+, +,,+ + +,+ +,...}. Pätee A = A + {ε} = A 0 A 1 A 2. Joukon A alkioista muodostettavissa olevien epätyhjien äärellisten jonojen joukko. Pätee A + = A {ε} = A 1 A 2 A 3. A Äärellisen joukon A alkioiden määrä. Esimerkkejä: {+, } = 2, = 0 ja {1,2,3,2,1} = 3. 2 A Joukon A osajoukkojen joukko eli A:n potenssijoukko. Esimerkki: 2 {+, } = {,{+},{ },{+, }}. Pätee 2 A = {X X A}. P(A) Sama kuin 2 A. sitovuuden suunta Tässä tekstissä,, ja sitovat vasemmalle., /, ja ovat vertailuoperaattoreita ja käyttäytyvät sen mukaisesti. Katso myös Matematiikka yleistä sitovuuden suunta. sitovuustaso Tässä tekstissä sitoo voimakkaimmin, sitten, sitten ja yhtä voimakkaasti, ja lopuksi, /, ja. Kirjallisuudessa sitovuustasot saattavat vaihdella. Katso myös Matematiikka yleistä sitovuustaso. Pseudokoodi (ohjelmakoodi) Ohjelmien esittämisessä käytettävä pseudokoodi mukailee Algol Pascal Ada-kielten merkintöjä. Ehdoissa ja lausekkeissa on suosittu tavallisia matemaattisia merkintöjä. C/C++:sta on poimittu käteviä lisiä, kuten +=. Algol-tyylisten pseudokoodien käyttö on yleistä kirjallisuudessa. Monet C/C++-merkinnät ovat opetuskäyttöön huonoja koska ne ovat sekavia, ja sijoitus- ja yhtäsuuruusvertailuoperaattorit ovat ristiriidassa matematiikan yhtäsuuruusoperaattorin kanssa: matematiikassa yhtäsuuruus on =, mutta C++:n = tarkoittaa sijoitusta ja yhtäsuuruusoperaattorina on ==. Lisäksi pseudokoodin erilaisuus auttaa erottamaan yleiset asiat C++-sidonnaisista. Ellei toisin sanota tai asiayhteydestä ilmene, muuttujat ovat kokonaislukutyyppisiä.. Tietueen (tai olion) kentän valitsin. Esimerkki: henkilö.nimi. Toimii kuten C++:ssa. Osoittimen päässä olevaan tietueeseen viittaaminen. os on sama kuin C++:n *os, ja os.kenttä toimii kuten C++:n os->kenttä. := (Tavallinen) sijoitusoperaattori. v := e toimii kuten C++:n v = e. += v += e toimii muuten samoin kuin v := v+e, paitsi että v:n osoite lasketaan vain kerran. Tällä erolla on harvoin merkitystä. Merkitystä on esimerkiksi silloin, kun v on muotoa A[f(...)], missä funktion f laskenta aiheuttaa sivuvaikutuksia (kuten tulostusta). Kuten C++:n +=. = Kuten +=, mutta vähennyslaskulle. Kuten C++:n -=. = Kuten +=, mutta kertolaskulle. Kuten C++:n *=.
8 OHJ-2100 laskuharjoituksia 24. toukokuuta and Muuten sama kuin, paitsi että oikeaa puolta ei lasketa, jos vasen tuotti False. Sama kuin C++:n &&. for Silmukkarakenne for i := ala to ylä do... endfor toimii kahta seikkaa lukuunottamatta samoin kuin C++:n for( i = ala; i <= ylä; ++i ){...}. Ensiksi, yläraja lasketaan ennen silmukan ensimmäistä kierrosta ja säilyttää arvonsa, vaikka sen laskemisessa tarvittavat tiedot muuttuisivat. Niinpä ylä := 3; for i := 1 to ylä do ylä := ylä+1 endfor lopettaa kun ylä = 6, toisin kuin C++:n vastaava silmukka. Toiseksi, for-silmukan sisällä ei saa yrittää sijoittaa muutttujaan i. Näin voidaan olla varmoja, että silmukka pyörii enintään max(0, ylä ala + 1) kierrosta. Sana to voidaan korvata sanalla downto, jolloin silmukkamuuttujan arvo alenee yhdellä joka kierroksella. if Ehtorakenne if ehto then... else... endif toimii kuten C++:n if( ehto ){...}else{...}. else-osan saa jättää pois. mod Jakojäännösoperaattori. Jos b 0, niin a mod b on se luku x, jolle b a +x = a. Einegatiivisilla a:n ja b:n arvoilla käyttäytyy kuten C++:n %. Negatiivisilla arvoilla syntyy b yleensä eroa, koska C++:n kokonaislukujen a/b pyöristää tuloksen (todennäköisesti) nollaa kohti, mutta a pyöristää pienempää lukua kohti. Tämän sekavuuden vuoksi mod:n b merkitys on syytä aina tarkastaa, jos haluaa käyttää sitä kun a < 0 tai b < 0. Nil or Osoittimen arvo silloin kun se ei osoita minnekään. Muuten sama kuin, paitsi että oikeaa puolta ei lasketa jos vasen tuotti True. Sama kuin C++:n. repeat Silmukkarakenne repeat... until ehto toimii kuten C++:n do{...}while(!ehto );, ts.... suoritetaan ainakin kerran. Huomaa, että silmukasta tullaan ulos kun ehto pätee; tämän vuoksi C++-vastineessa on ehdon edessä!. while Silmukkarakenne while ehto do... endwhile toimii kuten C++:n while( ehto ){...}. Taulukko 1: Kreikkalaiset kirjaimet englanniksi suomeksi englanniksi suomeksi A α alpha alfa N ν nu nyy B β beta beeta Ξ ξ xi ksii Γ γ gamma gamma O o omicron omikron δ delta delta Π π pi pii E ǫ ε epsilon epsilon P ρ rho rhoo Z ζ zeta zeeta Σ σ ς sigma sigma H η eta eeta T τ tau tau Θ θ ϑ theta theeta Y υ upsilon ypsilon I ι iota ioota Φ φ ϕ phi phi K κ κ kappa kappa X χ chi khii Λ λ lambda lambda Ψ ψ psi psii M µ mu myy Ω ω omega oomega
9 OHJ-2100 laskuharjoituksia 24. toukokuuta Muista, että muuttujien oletusarvoalue on Z. Tehtäväryhmä 1 Jos tehtävänä on ratkaista yhtälö, niin tulos pitää sieventää ja ilmaista logiikan kaavana. Pelkkä vastaus ei riitä, vaan myös välivaiheet on esitettävä. 1. Olkoon h(x) = x 2 ax. (a) Sievennä h(a+1) (b) Ratkaise a:n suhteen h(x+1) = 0 (c) Laske h(1 2a), kun a = 2 (d) Ratkaise a:n suhteen h(a/x) = 0 2. Olkoon h(x) = 1 x 2. (a) Sievennä h((a 1)(a+1)) (b) Sievennä h(1) h(x), kun x = 2 (c) Ratkaise x:n suhteen h(h(x)) = 0 (d) Sievennä h(a) 2 h(a 2 ) 3. Olkoon f(x) = x+y +1 ja g(y) = y 2 +x (a) Sievennä f(f(x)) (b) Sievennä f(f(y)) (c) Sievennä g(f(x)) (d) Sievennä f(g(y)) 4. Olkoon P(i,n) 1 < i n 1 i < n (a) Sievennä P(i,2) (b) Sievennä P(i,n) (c) Sievennä P(n i,n) (d) Sievennä P(n 2,n) 5. Olkoon P(i,n) kuten kohdassa 4 ja Q(i,n) 1 < i n 1 i < n (a) Sievennä Q(i, 3) (b) Sievennä Q(i, 2) (c) Sievennä Q(i, n) (d) Sievennä P(i,n) Q(i,n)
10 OHJ-2100 laskuharjoituksia 24. toukokuuta Taulukko A[1,...,n] on ns. keko, josa[ i ] A[i] aina, kun2 i n. Oheinen algoritmi 2 järjestelee taulukon A[1,..., n] uudelleen niin, että lopputulos on keko. 1 for i := n downto 1 do 2 2 j := i; x := A[i]; 3 repeat 4 vanha := j; j = 2; 5 if j < n and A[j +1] > A[j] then j += 1 endif; 6 if j n and A[j] > x then A[vanha] := A[j] endif 7 until j > n or A[j] x; 8 A[vanha] := x 9 endfor C++:n taulukot indeksoidaan nollasta (n 1):een eikä yhdestä n:ään. Muuta algoritmia siten, että se sopii C++:n taulukoille. Vihje: (1) lisää ensin jokaiseen taulukon indeksointiin 1 tyyliin A[e] A[e 1]. Sitten (2) korvaa juoksutusmuuttuja i joka paikassa lausekkeella i + 1, lisää tarvittaessa sulut, siis (i + 1). Tee vastaavasti muuttujille j ja vanha. Lopuksi (3) sievennä lausekkeet siellä missä mahdollista; esimerkiksi muuta A[(i + 1) 1] muotoon A[i]. (Korvauksen i i+1 tavoitteena oli tehdä tämä nimenomainen, ymmärtämistä helpottava sievennys mahdolliseksi.) Huomaa: voit aivan hyvin tilapäisesti kirjoittaa i+1 := n, kunhan sen jälkeen sievennät i:n paljaaksi vähentämällä molemmilta puolilta ykkösen. Huomaa myös, että tällöin 2 joudut vähentämään ykkösen vielä yhdestä kohdasta mistä? Sijoituksen j + 1 = 2 sieventämiseksi korvaa se operaattoria := käyttävällä sijoituksella. Kannattaa myös hyödyntää sitä, että kokonaisluvuilla x < y tarkoittaa samaa kuin x y 1: se sallii tehdä sievennyksiä tyyliin j +1 n j < n. Valmistaudu esittämään taululla vaiheet (1) (3).
11 OHJ-2100 laskuharjoituksia 24. toukokuuta Tehtäväryhmä 2 Tehtävät tulee ratkaista käyttämättä totuustauluja. Propositiologiikka 7. (a) Sievennä (a b) a (b) Sievennä a b a b c (c) Osoita P Q P Q (d) Osoita P Q (P Q) (e) osoita (P Q) (R S) (P S) Q R. 8. (a) Sievennä (a b) (a b c) (b) Sievennä a b a b (c) Osoita ((P Q) P) P (d) Osoita ((P Q) Q) (P Q) (e) osoita (P Q) (P R) P (Q R) 9. (a) Sievennä a b a b (b) Sievennä (a b) (b a) (c) Osoita P (P Q) P Q (d) Osoita Q (Q R) (R P) P (e) Osoita P (P Q) (P (Q R)) R 10. Mitkä seuraavista väittämistä pätevät? (a) P Q R P R (b) P Q R P R (c) P Q R P R (d) P Q R P R
12 OHJ-2100 laskuharjoituksia 24. toukokuuta Propositiologiikassa kaava on konjunktiivisessa normaalimuodossa jos ja vain jos se on muotoa φ 1 φ 2 φ n, missä jokainen φ i on klausuuli. Klausuuli on kaava muotoa ξ 1 ξ 2 ξ m, jossa kaikille j {1,...,m} pätee ξ j on muotoa b tai b, missä b on propositiosymboli. Mitkä seuraavista kaavoista ovat konjunktiivisessa normaalimuodossa ja jos jokin kaava ei ole, niin kerro miksi se ei ole. (a) (P Q) R (b) (P Q R) ( P R) (c) (a b c) (b b) (d) A B (e) A B (f) (P Q R) ( P Q) (g) sataa tuulee paistaa tuulee sataa paistaa (h) (x 1 x 2 x 3 ) (x 3 x 2 x 4 ) ( x 1 x 3 x 4 ) Sievennä seuraavat kaavat konjunktiiviseen normaalimuotoon (i) P Q R (j) P Q Q R (k) P Q R 12. Olkoot A[1...n] ja B[1...m] taulukoita. Taulukon (tai sen osan) pituus on sen alkioiden lukumäärä. Voit käyttää samassa tehtävässä määrittelemiäsi predikaatteja, jos annat niille nimet ja sopivat parametrit. Voit myös määritellä muita apupredikaatteja ja -käsitteitä. Kaikkien predikaattien ja käsitteiden tulee olla määriteltyjä kaikilla parametrien arvoyhdistelmillä. Kirjoita predikaatit, jotka määrittelevät seuraavat asiat (a) A:ssa on alkio x ja kaikki A:n alkiot ovat samoja. (b) A:n jokainen alkio, ensimmäistä lukuunottamatta, on vähintään luvun kaksi (2) suurempi kuin edellinen alkio. (c) B:n sisältö on muuten sama kuin A:n, mutta päinvastaisessa järjestyksessä. (d) Taulukko B on A:n osa.
13 OHJ-2100 laskuharjoituksia 24. toukokuuta Tehtäväryhmä 3 Tämän tehtäväryhmän tehtävät puhuvat taulukoista A[1...n] ja B[1...m]. Taulukon (tai sen osan) pituus on sen alkioiden lukumäärä. Voit käyttää samassa tehtävässä määrittelemiäsi predikaatteja, jos annat niille nimet ja sopivat parametrit. Voit myös määritellä muita apupredikaatteja ja -käsitteitä. Kaikkien predikaattien ja käsitteiden tulee olla määriteltyjä kaikilla parametrien arvoyhdistelmillä. Huolehdi siis, ettet jaa nollalla tai indeksoi ohi taulukon rajojen. Kiinnitä erityistä huomiota tilanteisiin, missä tauluukko tai sen osa on tyhjä. Lisäksi: Merkintä A[a...y] tarkoittaa taulukkoa, jonka indeksialue on a,a+1,...,y ja y a Kirjoita predikaatit, jotka määrittelevät seuraavat asiat (a) A:ssa on ainakin yksi alkio, joka on ainakin kerran B:ssä. (b) A:ssa on ainakin yksi alkio, joka on tasan kerran B:ssä. (c) A:ssa on tasan yksi alkio, joka on ainakin kerran B:ssä. (d) A:ssa on tasan yksi alkio, joka on tasan kerran B:ssä. 14. Kirjoita predikaatit, jotka määrittelevät seuraavat asiat. Anna niille nimet ja parametrit. (a) Al(A[1... n], i, j): A:n alkiot välillä i... j ovat aidosti laskevassa järjestyksessä. (b) A:ssa on k:n mittainen aidosti laskeva osa. (c) A:ssa on tasan yksi vähintään k:n mittainen aidosti laskeva osa. (d) A:ssa on k:n mittainen aidosti laskeva osa, mutta B:ssä ei ole. 15. Kirjoita predikaatit, jotka määrittelevät seuraavat asiat. Anna niille nimet ja parametrit. (a) A:n alkiot välillä i... j ovat nousevassa järjestyksessä. (b) A:n alkiot välillä i... j ovat laskevassa järjestyksessä. (c) Määrittelemme, että taulukon osa on kupera jos ja vain jos siinä on alkio, jota edeltävä osa (ko. alkio mukaan lukien) on vähintään kahden mittainen ja nouseva, sekä sitä seuraava osa (ko. alkio mukaan lukien) on vähintään kahden mittainen ja laskeva. Kirjoita predikaatti kupera(a[1...n],i,j), joka kertoo, onko A[i...j] kupera. Anna lisäksi esimerkki pienimmästä mahdollisesta kuperasta taulukosta. (d) A:ssa on kupera osa, mutta B:ssä ei ole. 16. Oleta, että (x = 1 x = n+1) ja osoita, että A[x] avain (x = 1 A[x 1] < avain) x = n+1 A[x 1] < avain (x = n+1 A[x] avain) (x = 1 A[x 1] < avain). Vihje: korvaa jokainen vertailu nimellä, esimerkiksi A[x] avain P.
14 OHJ-2100 laskuharjoituksia 24. toukokuuta Ovatko seuraavat tilapredikaatit oikein? 1 x := 1 2 { x = 1 } 3 while x 0 do 4 { x = 1 } x = 2 { x > 1 } 5 endwhile 6 { x = 0 } 7 { x = 5 } 18. Olkoot p ja q propositiosymboleita. Piirrä kuva, jossa lausekkeet ovat solmuja ja lausekkeiden välillä on nuoli, jos edellinen implikoi seuraavan. Käytä mahdollisimman vähän nuolia eli jos lauseke P implikoi lausekkeen Q, joka puolestaan implikoi lausekkeen R, niin piirrä nuolet vain P:stä Q:hun ja Q:sta R:ään, mutta älä piirrä nuolta P:stä R:ään. Esimerkiksi lausekkeista True, False, p ja p muodostuu tällainen kuva: False p p True (a) Lausekkeet ovat True, False,p,q, p, q,p q,q p ja p q (b) Lausekkeet ovat True, False,p,q, p, q,p q,p q, p q, p q ja p q (c) Lausekkeet ovat True, False,p,q,p q,p q,p q,q p ja p q (d) Olkoot a,b Z ja lausekkeet a = a, b b, a = b, a b, a > b, a b, a < b ja a b.
15 OHJ-2100 laskuharjoituksia 24. toukokuuta Tehtäväryhmä 4 Voit käyttää tehtävissä samassa tehtävässä määriteltyjä predikaatteja ja käsitteitä. Kaikkien tehtävissä pyydettyjen predikaattien ja käsitteiden tulee olla määriteltyjä kaikilla parametriensa arvoyhdistelmillä. Voit myös määritellä apupredikaatteja sekä -käsitteitä. Niiden osalta riittää, että ne ovat määritellyt kaikilla niille välitettyjen parametrien arvoilla. Lisäksi: Merkintä A[a...y] tarkoittaa taulukkoa, jonka indeksialue on a,a+1,...,y ja y a Kirjassa Gries, Schneider: A Logical Approach to Discrete Math otettiin käyttöön merkintä ( x : X R : E ) tarkoittamaan: käydään läpi kaikki X-tyyppiset oliot x joille R pätee, lasketaan kullekin E ja yhdistetään tulokset :llä. Alussa saa antaa useampiakin muuttujia kuin yhden, saman tyypin saa antaa monille muuttujille (esim. x : X, y,z : Y ), ja tyypit saa jättää pois, jos ne ovat asiayhteydestä selvät. R:n saa jättää pois, jos se on True. Laske (näytä ainakin yksi välivaihe) mitä on (a) (+i 0 i < 4 : i 8) (b) ( i : {0,1,2} i+(i+1)) Esitä seuraavat ko. merkinnällä: (c) i,j ; 1 i j n : A[i] > 2A[j]. (d) i;1 i n : A[i] = x j ;1 j n : i j A[j] A[i]. (e) ( i I Ai j I B ) j. (f) Mitä ominaisuuksia on tarpeen (tai ainakin viisasta) vaatia operaattorilta? Riittää, jos keksit yhdenkin. Vihje: kokeile sen paikalle vähennyslaskua. (g) Mikä on lausekkeen ( x False : x ) arvo (tai on hyvä valinta sen arvoksi), kun on +,,, tai? Entä jos on? 20. Olkoon A[1... n] taulukko. Täydennä seuraavat kaavat niin, että ne palauttavat False, jos indeksoidaan taulukon rajojen ohi. Muussa tapauksessa niiden pitää palauttaa sama arvo kuin alunperinkin. Sievennä vastauksesi. (a) 0 < A[i] < n (b) A[i+2]+i = A[2i 3] (c) 2 < A[i] A[A[i]+1] > A[i+1] Täydennä seuraava kaava niin, että se palauttaa True, jos indeksoidaan taulukon rajojen ohi. Muussa tapauksessa sen pitää palauttaa sama arvo kuin alunperinkin. (d) A[i 1] = A[n i 1]
16 OHJ-2100 laskuharjoituksia 24. toukokuuta On annettu taulukot A[1...n] ja B[1...n]. Tutki, päteekö seuraavien lausekkeiden välillä täsmälleen,, vai ei mikään niistä, tapauksilla n = 0, n = 1 ja n 2. Kirjoita vastauksesi taulukkoon, jossa riveinä ovat kohdat, sarakkeina n:n eri vaihtoehdot ja soluissa vastauksesi. Saatuasi kaikki kohdat ja n:n vaihtoehdot tutkittua, lisää vielä yksi sarake n 0 ja tee vastaava tutkimus sillekin. (a) i;1 i n : A[i] B[i] ja i;1 i n : A[i] < B[i]. (b) i;1 i n : A[i] B[i] ja i;1 i n : A[i] B[i]. (c) i;1 i n : A[i] B[i] ja i;1 i n : A[i] < B[i]. (d) i;1 i n : A[i] < B[i] ja i;1 i n : A[i] B[i]. 22. On annettu taulukot A[1...n] ja B[1...m]. Kirjoita predikaatit, jotka määrittelevät seuraavat asiat. Anna niille nimet ja parametrit. (a) ET(A[1...n],i,j): Taulukon A osa A[i...j] on epätasainen jos ja vain sen peräkkäiset alkiot eroavat vähintään arvon kaksi (2) verran toisistaan. Tyhjä tai yhden alkion mittainen osa ei ole epätasainen. (b) p on A:n pisimmän epätasaisen osan pituus. (c) A:ssa on pidempi epätasainen osa kuin B:n pisin epätasainen osa on. (d) A:ssa on k kappaletta pisimpiä epätasaisia osia (ne ovat siis keskenään yhtäpitkiä). 23. (a) Olkoon A[1... n] taulukko. Määrittele predikaatti x on jaollinen kaikilla taulukon A alkioilla. Anna predikaatille nimi ja parametrit. (b) Osoita poistamalla ; kvanttoreista x; η : ϕ x; η : ϕ. (c) Osoita i : j : i+j = ij. (d) Osoita P x : Q(x) x : P Q(x). (e) Anna esimerkki tilanteesta, jossa y : x : ϕ x : y : ϕ ei päde. (f) Anna esimerkki tilanteesta, jossa x : y : ϕ x : y : ϕ ei päde. 24. Sievennä seuraavat kaavat, kun n = 0, 1, 2. Esitä tulokset taulukossa, jossa sarakkeina ovat n:n arvot, riveillä tehtävän kohdat ja soluissa kyseisen kaavan sievennetty muoto. (a) i;1 i n : P(i) P(n) ( ) (b) i;1 i n : P(i) P(n) (c) i;1 i n : P(i) P(n) ( ) (d) i;1 i n : P(i) P(n) (e) i;1 i n : P(i) P(n) ( ) (f) i;1 i n : P(i) P(n) (g) i;1 i n : P(i) P(n) ( ) (h) i;1 i n : P(i) P(n)
17 OHJ-2100 laskuharjoituksia 24. toukokuuta Tehtäväryhmä Pätevätkö seuraavat kaavat? Joko osoita joukko-opin loogisten kaavojen avulla tai anna vastaesimerkki. Huomaa, että koska universumia ei ole annettu, et voi käyttää komplementtikaavoja. (a) A (A B) = A (b) A B = B (B A) (c) (A B) C = (A C) (B C) (d) (A B) C = (A C) (B C) 26. Taulukon yhtenäistä osaa, jonka kaikki alkiot ovat samoja, sanotaan laakioksi. Määrittele seuraavat käsitteet. Anna niille nimet ja sopivat parametrit. Käytä hyväksesi tässä tehtävässä määrittelemiäsi predikaatteja. Kaikkien pyydettyjen kaavojen tulee olla määriteltyjä kaikkien parametriensä arvoyhdistelmillä. (a) Määrittele predikaatti, joka kertoo, onko taulukon A[1...n] kohdasta j alkaen l:n verran perättäisiä alkioita samoja. (b) Määrittele predikaatti, joka kertoo, onko taulukossa A[1... n] l:n pituista laakiota. (c) Määrittele predikaatti, joka kertoo, onko p taulukon A[1... n] pisimmän laakion pituus. (d) Taulukon A[1...n] laakio A[i...j] on maksimaalinen, jos sitä ei voi laajentaa pidemmäksi laakioksi. Taulukon A[1... 6] = [0, 3, 3, 3, 2, 2] maksimaaliset laakiot ovat A[1...1], A[2...4] ja A[5...6]. Määrittele predikaatti maksimaalinenlaakio(a[1...n],i,l), joka tarkoittaa, että A[i...i+l 1] on A[1...n]:n maksimaalinen laakio. (e) Määrittele funktio, joka palauttaa taulukon A[1... n] maksimaalisten laakioiden lukumäärän. 27. On annettu aliohjelmat bool P( int x ) ja bool Q( int x, int y ), jotka palauttavat true jos ja vain jos predikaatit P(x) ja Q(x,y) pätevät. Myös on annettu funktio int f( int x ), joka laskee funktion f(x). Oletetaan, että x {0,...,n 1} ja y {0,..., n 1}. Saat tehdä seuraavat ohjelmat joko C++:lla tai pseudokoodilla. (a) Tee ohjelma, joka tulostaa joukon { x P(x) } alkiot suuruusjärjestyksessä. (b) Tee ohjelma, joka tulostaa joukon { (x, y) Q(x, y) } alkiot jossain järjestyksessä. (c) Tee ohjelma, joka tulostaa joukon { f(x) P(x) } alkiot jossain järjestyksessä. Ei haittaa, vaikka sama alkio tulostettaisiin monta kertaa. (d) Olkoon A = { x P(x) } ja B = { x y : Q(x,y) }. Tee ohjelma, joka tulostaa joukon A B alkiot suuruusjärjestyksessä.
18 OHJ-2100 laskuharjoituksia 24. toukokuuta A ja B ovat äärellisiä joukkoja. Perustele vastauksesi. (a) Miksi {x 1,x 2,...,x n } n eikä... = n? (b) Millä n:n arvoilla varmasti {x 1,x 2,...,x n } = n? (c) Ilmaise A B lukujen A, B ja A B avulla. (d) Olkoon A B. Mitä pätee luvuille A ja B. Entä paljonko ovat A B, A B, A B, B A ja A B? (e) Kirjoita auki joukot {,{a},a } { } 2 ja 2,{a},a (f) Mitä on A 2 2 A? Vastaako (e)-kohdan vastauksesi tätä tulosta? (g) Paljonko ovat A n ja 2 A? Vastaako (e)-kohdan vastauksesi tätä tulosta? 29. Joukoille käytetään usein seuraavan tapaisia merkintöjä: {x P(x)}, {x A P(x)} ja {f(x) P(x)}. (a) Griesin ja Schneiderin kirjassa käytetään joukoille merkintää { x : X R : E } (katso tehtävä 19). Esitä ym. joukot sillä. X, R ja E ovat kuten tehtävässä 19. (b) Miten ym. joukot ja (a)-kohdan merkintätapa voidaan esittää tehtävän 19 merkinnällä? (c) Miten joukot {x A P(x)}, {f(x) P(x)} ja { x : X R : E } voidaan esittää merkinnällä {x P(x)}? Anna vastauksesi taulukkona, jossa riviotsikkoina ovat esitettävät joukot, sarakotsikkoina kohdat (a), (b) ja (c) sekä soluissa ko. vastauksesi. 30. Kirjoita auki joukot: (a) {2} 2 (b) 2 {2} (c) {2 2 } (d) {2 22 } (e) {(2 2 ) 2 } (f) {2 2 } 2 (g) {2} 22 (h) ({2} 2 ) 2 (i) 2 {22 } (j) 2 {2}2 (k) (2 {2})2 (l) 2 2{2}
19 OHJ-2100 laskuharjoituksia 24. toukokuuta Tehtäväryhmä Määrittele seuraavat joukot. Esitä jaollisuus mod :in avulla. (a) Joukon alkiot ovat alkuluvut, ts. ne ovat arvoltaan vähintään 2 ja jaollisia vain 1:llä ja itsellään. (b) Joukon alkiot ovat joukosta A poimittujen kahden eri alkion summat. (c) Joukon A i alkiot ovat lukupareja. Parin ensimmäinen luku on positiivinen ja pienempi kuin parin toinen luku, joka on pariton ja pienempi kuin i. (d) Olkoon a,b,c,x C. Joukon alkiot ovat yhtälön ax 4 +bx 2 +c = 0 kaikki juuret. (e) Olkoon a,b,c,x R. Joukon alkiot ovat yhtälön a 1 x 2 +a 2 x+a 3 = 0 reaalijuurten joukot, kun kertoimet a 1, a 2 ja a 3 valitaan joukosta {a,b,c}. Huomaa, että pyydetyn joukon alkiot ovat joukkoja. Tämän kohdan vastauksesi ei tarvitse olla täysin oikein. 32. On annettu lausekkeet: A1: i;1 i n : A[i] = x, E1: i;1 i n : A[i] = x, A2: i;1 i < n : A[i] = x, E2: i;1 i < n : A[i] = x, A3: i;1 i n : A[i] x, E3: i;1 i n : A[i] x, A4: i;1 i n : A[i] < x, E4: i;1 i n : A[i] < x. Piirrä lausekkeista True, False,A1,A2,A3,A4,E1,E2,E3 ja E4 tehtävän 18 mukainen kuva eli lausekkeet ovat solmuja, joiden välissä on minimimäärä nuolia, jotka kuvaavat lausekkeiden väliset implikaatio-suhteet. Piirrä kuvat seuraavista tapauksista: (a) n 2, (b) n 1 ja (c) n 0. Tee ainakin kohta (a). 33. Kirjoita tilapredikaatit, jotka määrittelevät seuraavat asiat. (a) yksijanolla(a[1...n],b[1...m]): A:ssa on tasan yksi yhden suuruinen alkio ja B:ssä ei ole tasan yhtä nollan suuruista alkiota. (b) summalkm(a[1...n],a,b[1...m],b): B:ssä on alkiota b yhtä monta kappaletta kuin A:n alkioiden a yhteenlaskettu summa on. Tässä tehtävän kohdassa nollan (0) alkion summa on määritelty arvoltaan nollaksi (0). (c) anagrammi(a[1...n],b[1...m]): B:ssä on täsmälleen samat alkiot kuin A:ssa, mutta eri järjestyksessä. Anna esimerkki pienimmästä mahdollisesta anagrammista. (d) samatsummat(a[1... n]): A:n parittomissa indekseissä olevien alkioiden summa on sama kuin parillisissa alkioissa olevien alkioiden summa. Tässä tehtävän kohdassa nollan (0) alkion summaa ei ole määritelty.
20 OHJ-2100 laskuharjoituksia 24. toukokuuta Täytä { }:t ohjelman toimintaa mahdollisimman hyvin kuvaavilla tilapredikaateilla. (a) 1 { x = 0 } 2 { x := x+1 } 3 4 { x := x y } 5 (b) A[1...n] on kiinteä. 1 { n 1 } 2 i := 1; S := 0; 3 { 1 = i n S = 0 = i 1 j=1 A[j] } 4 while { i n do } 5 6 S := S +A[i]; 7 { 1 i n S = i j=1 A[j] } 8 { i := i+1; } 9 10 end { while { S = n j=1 A[j] } S = i 1 j=1 A[j] } (c) On määritelty Q(A[1...n]): i,j ;1 i < j n : A[i] A[j]. Kerro sanallisesti, mitä Q tarkoittaa. x on kiinteä 1 { n 0 Q(A[1...n]) } 2 A[n+1] := x; i := 1; 3 { 1 i n+1 Q(A[1...n]) A[n+1] = x j ;1 j < i : A[j] x } 4 while { A[i] x do } 5 6 { i := i+1; } 7 8 end while; 9 { 1 i n+1 Q(A[1...n]) A[n+1] = x A[i] = x j ;1 j < i : A[j] x } 10 if i = n+1 then 11 { 1 i = n+1 Q(A[1...n+1]) A[i] = x j ;1 j < i : A[j] x } 12 n { := n+1; } end { if; } { Q(A[1...n]) i;1 i n : A[i] = x }
21 OHJ-2100 laskuharjoituksia 24. toukokuuta Tunnista seuraavista ohjelmista ja spesifikaatioista kiinteät muuttujat, tavalliset muuttujat, syötemuuttujat, tulosmuuttujat, apumuuttujat, haamumuuttujat, sidotut muuttujat ja vapaat muuttujat. Annan vastauksesi taulukkona, missä riveinä ovat muuttujien luokittelut, sarakkeina osatehtävät ja soluissa sarakkeen mukaisen osatehtävän rivin luokittelua vastaavat muuttujat. Huomaa, että vapaista ja sidotuista muuttujista puhutaan kaavakohtaisesti. (a) 1 { x = x 0 y = y 0 } 2 t := x; x := y; y := t 3 { x = y 0 y = x 0 } (b) 1 { i; 1 i n 1 : A[i] A[i+1] } 2 a := 1; y := n+1 3 while a < y do 4 v := a+y 2 5 if A[v] < avain then a := v+1 else y := v endif 6 endwhile 7 { (a = n+1 A[a] avain) (a = 1 A[a 1] < avain) } (c) 1 { i; 1 i n : A[i] = A 0 [i] } 2 for i := 2 to n do A[i] += A[i 1] endfor 3 { i; 1 i n : A[i] = i j=1 A 0[j] } (d) A[1...n] on kiinteä. 1 { j;1 j n : A[j] = x } 2 i := 1 3 while A[i] x do 4 { 1 i < n ( j ;1 j i : A[j] x) j ;i < j n : A[j] = x } 5 i := i+1 6 end while 7 { 1 i n ( j ;1 j < i : A[j] x) x = A[i] } 36. Laita seuraavat spesifikaatiot järjestykseen niin, että heikompi on ennen vahvempaa. Vertaa tehtävään muuttuja x on kiinteä, { P } ohj { Q } 2. muuttuja x on tavallinen, { P x = x 0 } ohj { Q x = x 0 } 3. muuttuja x on kiinteä, P ohj Q 4. muuttuja x on tavallinen, P x = x 0 ohj Q x = x 0
22 OHJ-2100 laskuharjoituksia 24. toukokuuta Tehtäväryhmä On annettu seuraavat spesifikaatiot: 1. { True } ohj { x = 0 } 2. { False } ohj { x = 0 } 3. True ohj x = 0 4. False ohj x = 0 5. { True } ohj { True } 6. { True } ohj { False } 7. True ohj True 8. True ohj False (a) Mitä nämä spesifikaatiot vaativat ohjelmalta? (b) Laita nämä spesifikaatiot järjestykseen niin, että heikompi on ennen vahvempaa. Vertaa tehtäviin 18 ja Harjoitellaan spesifikaation kirjoittamista. (a) Anna spesifikaatio eli alkuehto ja loppuehto ohjelmalle, joka hakee taulukosta alkion, jonka luvataan olevan taulukossa. Kuten seuraavasta kohdasta ilmenee, sinun tulee päättää, kuinka ohjelma palauttaa tulokset eli etsittävän alkion. (b) Kuinka spesifikaatiosta näkyy kuinka ohjelma palauttaa tulokset? (c) Kuinka ohjelman tulee käyttäytyä, jos alkio ei ole taulukossa? (d) Entä jos se on siellä monta kertaa? 39. Selosta alla määriteltyjen käsitteiden intuitiivinen merkitys, ja anna niille uudet, kuvaavammat nimet. Käsitteet liittyvät suunnattuun graafiin (V,E). (a) A V on lupsahdus, jos ja vain jos u A : v A : u v v u ja u A : v V A : (u v) (v u) (b) Lupsahdus A on öhrööttinen, jos ja vain jos (c) Lupsahdus A on pinkeä, jos ja vain jos u A : v V : (u,v) E v A u A : v A : (u,v) E (d) Piirrä esimerkki 1. pinkeästä öhrööttisestä 2. pinkeästä epäöhrööttisestä 3. epäpinkeästä öhrööttisestä 4. epäpinkeästä epäöhrööttisestä lupsahduksesta, jos sellainen on olemassa.
23 OHJ-2100 laskuharjoituksia 24. toukokuuta Olkoon G = (V, E) suunnattu graafi. Seuraava operaatio tuottaa muuten samanlaisen graafin, mutta jossa on jokin uusi solmu ja tästä uudesta solmusta on kaari kaikkiin muihin solmuihin: lisää(g) := (V,E ), missä V = V {v}, v / V ja E = E ({v} V). Määrittele seuraavat operaatiot tai käsitteet. Anna niille lyhyt nimi ja parametrit. (a) Operaatio, joka lisää suunnattuun graafiin solmun v ja kaaret siten, että v:stä sekä kaikista niistä solmuista, joista ei lähtenyt kaaria, lähtee nyt kaari solmuun v. (b) Operaatio, joka ottaa parametreikseen suunnatun graafin ja joukon W solmuja (jotka eivät välttämättä ole ko. graafin solmuja) ja poistaa graafista kaaria siten, että W:hen kuuluvista solmuista lähtee kaaria vain W:hen kuuluviin solmuihin ja niistä solmuista, jotka eivät kuulu W:hen, lähtee kaaria vain niihin solmuihin, jotka eivät kuulu W:hen. Muuten alkuperäiset kaaret säilyvät. (c) Predikaatti, joka kertoo, onko annettu suunnattu graafi melkein kaksiosainen siten, että sen solmut jakautuvat kahteen erilliseen joukkoon, niin että muita kaaria kuin paikallissilmukoita ei ole saman joukon solmujen välillä. 41. Piirrä lausekepuut. Tulkitse kvanttorit operaattoreiksi, pelkkä kaksoispistenotaatio ottaa kaksi parametria ja puolipistenotaatio kolme parametria. r on funktio, joka ottaa parametrikseen merkkijonon ja palauttaa merkkijonon. (a) 1 x x x 1 (b) r(αβ) = r(β)r(α). (c) for i := k 1 to n+k 1 do if A[i] 0 then A[i] := A[i 1]+1 else A[i] := 0 endif endfor (d) i : 1 i i n A[i] = x j ;1 j j n j i : A[j] A[i] 42. Olkoon Σ joukko merkkejä, a Σ ja α,β,γ Σ. Lisäksi on annettu kaavat: ε on tyhjä merkkijono, jolle pätee (1) εα = α ja (2) αε = α. Merkkijonoille pätee liitännäisyys eli (3) (αβ)γ = α(βγ). Määritellään funktio reverse r : Σ Σ seuraavasti: (4) r(ε) = ε ja (5) r(αa) = ar(α). Nyt voidaan osoittaa (6) r(a) = a seuraavasti: r(a) 1 = r(εa) 5 = ar(ε) 4 = aε 2 = a. Osoita käyttäen kaavoja (1)-(6) ja induktio-oletusta (io), että (7) r(αβ) = r(β)r(α). Merkitse käyttämäsi kaava tai induktio-oletus =-merkin yläpuolelle yo. esimerkin mukaisesti. IP: r(αε)? =...? = r(ε)r(α). IO: r(αβ) = r(β)r(α), missä β 0. IA: r(α(βa))? =...
24 OHJ-2100 laskuharjoituksia 24. toukokuuta Tehtäväryhmä Oletetaan tehtävän 42 käsitteet ja kaavat annetuiksi. (Voit siis tehdä tämän tehtävän, vaikka et olisikaan ratkaissut tehtävää 42.) Annetaan vielä kaavat (8) α 0 = ε, (9) α k = α k 1 α ja (10) α k = αα k 1, kun k 0. Osoita käyttäen kaavoja (1)-(10) ja tämän tehtävän induktio-oletusta, että (11) r(α n ) = r(α) n, kun n 0. IP: IO: IA: 44. Anna spesifikaatiot seuraaville tehtäville. (a) Etsi suurimman alkion paikka taulukossa A[1... n]. (b) Aseta x:lle taulukon A[1... n] suurin arvo. (c) Etsi ensimmäinen paikka, jossa on taulukon A[1... n] suurin alkio. (d) Viimeisen kohdan, jossa taulukossa A[1... n] on suurin arvo, arvoksi asetetaan x. 45. Piirrä lausekkeen lausekepuu ja laske sen arvo, kun + on infix-operaattori ja sekä prefix- että infix-operaattori, mutta infix-operaattoreille pätee (a) + ja sitovat yhtä voimakkaasti (b) + sitoo voimakkaammin kuin (c) sitoo voimakkaammin kuin + (d) Tee kohdat (a) (c) myös lausekkeeelle 4 +(3 2) On annettu oheinen DFA D. D c b q 0 a q 1 b q 2 c q 3 c q 4 a b (a) Luettele D:n Q, Σ, δ, ˆq ja F. δ lienee kätevintä ilmaista taulukkona, jonka rivejä indeksoivat tilat ja sarakkeita aakkoset. (b) Päteekö ε L(D)? (c) Entä cc L(D)? (d) Mikä on lyhin D:n hyväksymä merkkijono, jossa ei ole merkkiä c? (e) Voiko D hyväksyä merkkijonon, jossa on kaksi a:ta peräkkäin? (f) Voiko D hyväksyä merkkijonon, jossa on kaksi b:ta peräkkäin, mutta ei kolmea b:tä? Muista perustella vastauksesi.
25 OHJ-2100 laskuharjoituksia 24. toukokuuta Mitkä seuraavista kohdista eivät ole säännöllisiä lausekkeita? Esitä ne säännöllisinä lausekkeina ja piirrä DFA:t, jotka hyväksyvät kyseiset kielet. (a) abbac (b) (a b) 2 b (b c) (c) (a c ) 2 bc 3 a (d) a + b c + (e) a + (a b c) b (f) (a + ) Paljonko on seuraavien säännöllisten lausekkeiden tai niitä vastaavien säännöllisten lausekkeiden pituudet. Anna lisäksi merkkijonon r pituudelle alaraja ja yläraja, kun se kuuluu ko. kohtien määrittelemiin kieliin. (a) a (b) a 0 (c) ε (d) a aa aaa (e) aa (f) a + (g) (a a) + b + (h) a(a b) 5 (i) (a(ab c) 3 ) 2
26 OHJ-2100 laskuharjoituksia 24. toukokuuta Tehtäväryhmä Piirrä DFA:t, jotka hyväksyvät seuraavat kielet sekä kirjoita kohtia (a), (b) ja (c) vastaavat säännölliset lausekkeet. Tarpeettomia etunollia ei hyväksytä. (a) parittomat luonnolliset luvut 2-järjestelmässä, (b) 4:llä jaolliset luonnolliset luvut 2-järjestelmässä, (c) parilliset luonnolliset luvut 10-järjestelmässä ja (d) kolmella jaolliset luonnolliset luvut 10-järjestelmässä. 50. Muodosta seuraaville DFA:ille vastaavan kielen määrittelevät säännölliset lausekkeet vaiheittain niinkuin prujussa luvussa 5.4 Epädeterministiset äärelliset automaatit neuvotaan. Valmistaudu näyttämään taululla nämä vaiheet. D 1 a D 2 a D 3 a b a a b b a b 51. Määrittele operaatio nlc, joka poistaa DFA:sta mahdollisimman monta tilaa siten, että hyväksytty kieli ei muutu. Voit olettaa, että DFA:ssa ei ole saavuttamattomia tiloja. Mitä operaatiosi tekee, jos lopputilojen joukko on tyhjä? Muista tarkistaa, että lopputulos on DFA. 52. Piirrä DFA:t, jotka hyväksyvat seuraavat kielet (a) (0 1) Kerro sanallisesti kielen intuitiivinen merkitys. (b) Jossain kohdin syötettä on merkkijono (c) Syötteessä ei ole merkkijonoa (d) Merkkijono esiintyy syötteessä tasan kerran. 53. Piirrä pienin DFA, joka hyväksyy saman kielen kuin tehtävän 46 DFA. Tee minimointi algoritmilla. 54. Piirrä DFA:t D 1 ja D 2 siten, että kummassakin on ainakin yksi saavuttamaton tila, [[D 1 ]]:ssä on ainakin yksi saavuttamaton tila, ja [[D 2 ]]:ssa ei ole saavuttamattomia tiloja.
27 OHJ-2100 laskuharjoituksia 24. toukokuuta Tehtäväryhmä Olkoon Σ = {1,2,...,n}. (a) Piirrä mahdollisimman pieni DFA D 5, jolle L(D n ) = {12 n} (nyt 123 ei tarkoita satakaksikymmentäkolme, vaan jonoa 1, 2, 3 ). (b) Piirrä compl(d 5 ). (c) Osoita, ettei compl(d 5 ):ia voi pienentää. (d) Vertaa D n :n ja compl(d n ):n solmujen määriä. Vertaa myös kaarten määriä. 56. (a) Laske prujun luvussa 5.3. DFA:n operaatioita loppuosassa olevan päänsärkyesimerkin ensimmäisen ja neljännen automaatin tulo (= ne, joiden aakkostoon särky kuuluu eli sivun 176 viimeinen ja sivun 177 kolme ensimmäistä), ja poista siitä turhat tilat ja tilasiirtymät. (b) Lisää tuloon loput kaksi automaattia miten helpoiten onnistut, ja poista lopputuloksesta turhat tilat ja tilasiirtymät. Onko tulos sama kuin prujussa? 57. Luonnollinen luku 10-järjestelmässä on neljällä jaollinen, jos ja vain jos se on 0, 4 tai 8, jos viimeinen numero on 0, 4 tai 8, ja edellinen on parillinen, tai viimeinen numero on 2 tai 6, ja edellinen on pariton. (a) Tee säännöllinen lauseke, joka hyväksyy neljällä jaolliset luonnolliset luvut (b) Muodosta NFA, joka hyväksyy täsmälleen (a)-kohdan kielen Tämä NFA on helppo muodostaa esimerkiksi niin, että alkutilasta haaraudutaan siten, että hyväksytään erikseen yhden merkin mittaiset hyväksyttävät syötteet ja ε:lla haaraudutaan tutkimaan pidemmät syötteet. (c) Determisoi (b)-kohdan NFA käyttäen prujun determisointialgoritmia (d) Minimoi (c)-kohdan algoritmi käyttäen prujun minimointialgoritmia 58. (a) Tee NFA, joka hyväksyy kielen (12) ((2 11)(21) (1 22)(12) ). (b) Determisoi tekemäsi NFA käyttäen prujun algoritmia. (c) Minimoi näin saamasi DFA käyttäen prujun algoritmia. 59. OlkootN 1 jan 2 NFA:ita, joilla ei ole yhteisiä tiloja. Näiden avulla on määritelty seuraavat kielet. (a) { αβ α L(N1 ) β L(N 2 ) } (b) L(N 1 ) (c) (L(N 1 ) L(N 2 ) (d) L(N 1 ) L(N 2 ) (e) (L(N 1 ) L(N 2 )) Jokaisessa kohdassa kerro sanallisesti, mitä nämä määritelmät tarkoittavat, ja suunnittele yksinkertainen ja tehokas algoritmi, joka tuottaa NFA:n, jonka hyväksymä kieli on ko. kohdassa määritelty kieli. Käytä hyväksesi temppua, joka ei toimi DFA:lle. Riittää, että hahmotat algoritmiesi toiminnan piirroksilla.
28 OHJ-2100 laskuharjoituksia 24. toukokuuta (a) Piirrä äärellinen automaatti (saa olla epädeterministinen), jonka hyväksymä kieli on kuvan äärellisen automaatin hyväksymät merkkijonot takaperin. Vinkki: automaatin tulee siis toimia takaperin. a a c b a (b) Määrittele operaatio Takaperin, joka tekee (a)-kohdan muunnoksen. Operaatio Takaperin ottaa siis parametrikseen NFA:n ja tuottaa NFA:n, jonka hyväksymä kieli on alkuperäisen NFA:n hyväksymät merkkijonot takaperin. Tuottaahan se (a)- kohtaan saman vastauksen kuin itse sait.
29 OHJ-2100 laskuharjoituksia 24. toukokuuta Tehtäväryhmä Määrittele operaatio uusi(n, id), joka nimeää uudelleen NFA:n N tilat ja tilasiirtymät, niin, että tilasta q tulee pari (q, id) ja L(uusi(N, id)) = L(N). Tarkista, että operaation tulos on NFA. 62. Olkoon Σ aakkosto. Tee BNF ++ -määritelmä kielelle, joka koostuu vähintään yhdestä virkkeestä. Virke koostuu vähintään yhdestä lauseesta, joiden välissä on pilkku, ja päättyy pisteeseen.. Lause koostuu vähintään yhdestä sanasta, joiden välissä on vähintään yksi välilyönti. Sana voi olla luku tai merkkijono. Luku koostuu vähintään yhdestä numerosta 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Merkkijonon alussa ja lopussa on yksinkertainen lainausmerkki eli hipsu, ja välissä nolla tai useampi dekoodattu merkki. Dekoodattu merkki on joko \\ (dekoodattu pakomerkki), \ (dekoodattu hipsu) tai tavallinen merkki. Tavallinen merkki kuuluu joukkoon Σ {, \ }. Jokaisen, paitsi viimeisen, virkkeen lopettavan pisteen ja jokaisen lauseen lopettavan pilkun jälkeen on oltava vähintään yksi välilyönti. 63. Anna BNF ++ -määritelmät seuraaville kielille, kun Σ = {a,b,c}. (a) Tee BNF ++ -määritelmä kielelle palindromit, joiden pituus on parillinen. Palindromi tarkoittaa merkkijonoa, joka on sama luettuna etuperin ja takaperin. (b) Tee BNF ++ -määritelmä kielelle palindromit. (c) { α joka toinen α:n merkki on a }, (d) Taulukon alkioon viittaaminen kurssin pseudokoodissa, esimerkiksi A[1, 2x]. Oleta välisymbolien Taulukko (taulukon nimi) ja Lauseke olevan annetut. (e) Kvanttorin käyttö predikaattilogiikassa, esimerkiksi i;1 i < n : A[i] = 0, i,j;i j : i j = i+j tai i : 1 i < n A[i] = 0. Oleta välisymbolien Muuttuja ja Ehto olevan annetut. 64. Anna BNF ++ -määritelmät seuraaville kielille, kun Σ = {a,b,c}. (a) { α α on sulkulauseke, missä a on sulut auki, b on sulut kiinni, c ei esiinny ja jossa alku- ja loppusulut täsmäävät }. Esimerkiksi suluilla ilmaistuina (), ()() ja (()()())((())()) kuuluvat tähän kieleen. (b) { α jokainen α:n alkuosa sisältää ainakin yhtä paljon a-kirjaimia kuin b-kirjaimia } (merkkijonon a 1 a 2 a n alkuosa on mikä tahansa merkkijonon alusta erotettu osajono eli a 1 a 2 a k, missä k n). (c) { α α:ssa on tasan kaksi kertaa niin monta a-kirjainta kuin siinä on b-kirjaimia }. 65. Anna BNF ++ -määritelmät kielille { a 1 a 2 a n {a,b} ϕ(a 1 a 2 a n ) }, missä ϕ(a 1 a 2 a n ) on (a) n 2 a 2 = a, (b) { i 1 i n ai = b } mod 2 = 0 (c) i;1 i n : a i = b ( j;1 j < i : a j = a) j;1 j i : a j = a n+1 j, (d) i;1 i < n : a i+1 a i.
MAT-71506 Program Verification (Ohjelmien todistaminen) merkintöjen selityksiä
MAT-71506 Program Verification (Ohjelmien todistaminen) merkintöjen selityksiä Antti Valmari & Antero Kangas Tampereen teknillinen yliopisto Matematiikan laitos 20. elokuuta 2013 Merkkien selityksiä Tähän
Talousmatematiikan perusteet, L2 Kertaus Aiheet
Talousmatematiikan perusteet, L2 Kertaus 1 Laskutoimitukset tehdään seuraavassa järjestyksessä 1. Sulkujen sisällä olevat lausekkeet (alkaen sisältä ulospäin) 2. potenssit ja juurilausekkeet 3. kerto-
Talousmatematiikan perusteet, L2 Kertaus Aiheet
Talousmatematiikan perusteet, L2 Kertaus 1 Laskutoimitukset tehdään seuraavassa järjestyksessä 1. Sulkujen sisällä olevat lausekkeet (alkaen sisältä ulospäin) 2. potenssit ja juurilausekkeet 3. kerto-
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
Talousmatematiikan perusteet, L2
Talousmatematiikan perusteet, L2 orms.1030 EPKY / kevät 2011 Toisen Laskutoimitukset tehdään seuraavassa järjestyksessä 1. Sulkujen sisällä olevat (alkaen sisältä ulospäin) 2. potenssit ja juuri 3. kerto-
Word Taulukko-ominaisuus
Word Taulukko-ominaisuus Koulutusmateriaalin tiivistelmä 17.3.2014 JAO Seuranen Valtteri Valtteri Seuranen Tehtävä 1[1] Sisällys Taulukon luominen Word-ohjelmalla... 2 Taulukon muokkaaminen... 7 Rakenne
Hahmon etsiminen syotteesta (johdatteleva esimerkki)
Hahmon etsiminen syotteesta (johdatteleva esimerkki) Unix-komennolla grep hahmo [ tiedosto ] voidaan etsia hahmon esiintymia tiedostosta (tai syotevirrasta): $ grep Kisaveikot SM-tulokset.txt $ ps aux
3. Kirjoita seuraavat joukot luettelemalla niiden alkiot, jos mahdollista. Onko jokin joukoista tyhjä joukko?
HY / Avoin yliopisto Johdatus yliopistomatematiikkaan, kesä 2015 Harjoitus 1 Ratkaisuehdotuksia Tehtäväsarja I Seuraavat tehtävät liittyvät luentokalvoihin 1 14. Erityisesti esimerkistä 4 ja esimerkin
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
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ä
TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015
ja ja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho NFA:ksi TIETOTEKNIIKAN LAITOS 16. marraskuuta 2015 Sisällys ja NFA:ksi NFA:ksi Kohti säännöllisiä lausekkeita ja Nämä tiedetään:
Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja
582206 Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja 1. Esitä tilakaaviona NFA N = (Q, Σ, δ, q 0, F ), missä Q = { q 0, q 1, q 2, q 3, q 4, q 5, q 6, q 7 }, Σ = { a, b, c }, F = { q 4 } ja δ on
Tehtäväsarja I Seuraavissa tehtävissä harjoitellaan erilaisia todistustekniikoita. Luentokalvoista 11, sekä voi olla apua.
HY / Avoin yliopisto Johdatus yliopistomatematiikkaan, kesä 2015 Harjoitus 2 Ratkaisuehdotuksia Tehtäväsarja I Seuraavissa tehtävissä harjoitellaan erilaisia todistustekniikoita. Luentokalvoista 11, 15-17
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
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
TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013
TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 29. toukokuuta 2013 Sisällys Chomskyn hierarkia (ja muutakin) kieli LL(k) LR(1) kontekstiton kontekstinen rekursiivisesti
TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 19. syyskuuta 2016
TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. syyskuuta 2016 Sisällys Neuvoja opintoihin tee joka päivä ainakin vähän uskalla mennä epämukavuusalueelle en
Matematiikan tukikurssi, kurssikerta 1
Matematiikan tukikurssi, kurssikerta 1 1 Joukko-oppia Matematiikassa joukko on mikä tahansa kokoelma objekteja. Esimerkiksi joukkoa A, jonka jäseniä ovat numerot 1, 2 ja 5 merkitään A = {1, 2, 5}. Joukon
815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava
Säännöllisten kielten sulkeumaominaisuudet
Säännöllisten kielten sulkeumaominaisuudet Osoitamme nyt, että säännöllisten kielten joukko on suljettu yhdisteen, konkatenaation ja tähtioperaation suhteen. Toisin sanoen jos A ja B ovat säännöllisiä,
811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2016-2017 4. Joukot, relaatiot ja funktiot Osa 1: Joukot 4.1 Joukot Matemaattisesti joukko on mikä tahansa hyvin määritelty kokoelma objekteja, joita kutsutaan joukon alkioiksi
Kurssikoe on maanantaina Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla.
HY / Avoin ylioisto Johdatus yliopistomatematiikkaan, kesä 05 Harjoitus 6 Ratkaisut palautettava viimeistään tiistaina.6.05 klo 6.5. Huom! Luennot ovat salissa CK maanantaista 5.6. lähtien. Kurssikoe on
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
TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015
TIEA24 Automaatit ja kieliopit, syksy 205 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 5. marraskuuta 205 Sisällys Käsiteanalyysiä Tarkastellaan koodilukkoa äärellisenä automaattina. Deterministinen äärellinen
T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )
T-79144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet 11-22) 26 29102004 1 Ilmaise seuraavat lauseet predikaattilogiikalla: a) Jokin porteista on viallinen
Approbatur 3, demo 1, ratkaisut A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat.
Approbatur 3, demo 1, ratkaisut 1.1. A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat. Käydään kaikki vaihtoehdot läpi. Jos A on rehti, niin B on retku, koska muuten
Tietotekniikan valintakoe
Jyväskylän yliopisto Tietotekniikan laitos Tietotekniikan valintakoe 2..22 Vastaa kahteen seuraavista kolmesta tehtävästä. Kukin tehtävä arvostellaan kokonaislukuasteikolla - 25. Jos vastaat useampaan
Automaatit. Muodolliset kielet
Automaatit Automaatit ovat teoreettisia koneita, jotka käsittelevät muodollisia sanoja. Automaatti lukee muodollisen sanan kirjain kerrallaan, vasemmalta oikealle, ja joko hyväksyy tai hylkää sanan. Täten
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
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
Äärellisten automaattien ja säännöllisten kielten ekvivalenssi
Äärellisten automaattien ja säännöllisten kielten ekvivalenssi Osoitamme seuraavan keskeisen tuloksen: Lause 1.8: [Sipser Thm. 1.54] Kieli on säännöllinen, jos ja vain jos jokin säännöllinen lauseke esittää
T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut
T-79.148 Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S tuottama
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
Johdatus matemaattiseen päättelyyn (5 op)
Johdatus matemaattiseen päättelyyn (5 op) Tero Vedenjuoksu Oulun yliopisto Matemaattisten tieteiden laitos 2014 Johdatus matemaattiseen päättelyyn 2014 Yhteystiedot: Tero Vedenjuoksu tero.vedenjuoksu@oulu.fi
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
S BAB ABA A aas bba B bbs c
T-79.148 Kevät 2003 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S) tuottama
Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja
582206 Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja 1. Tarkastellaan yhteydetöntä kielioppia S SAB ε A aa a B bb ε Esitä merkkijonolle aa kaksi erilaista jäsennyspuuta ja kummallekin siitä vastaava
TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012
TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. tammikuuta 2012 Sisällys Sisällys Äärellisiä automaatteja PUSH ON PUSH OFF Q T Q J C C H S C,Q C,Q 0 50s 1e
Johdatus matematiikkaan
Johdatus matematiikkaan Luento 6 Mikko Salo 6.9.2017 Sisältö 1. Kompleksitaso 2. Joukko-oppia Kompleksiluvut Edellisellä luennolla huomattiin, että toisen asteen yhtälö ratkeaa aina, jos ratkaisujen annetaan
Luonnolliset vs. muodolliset kielet
Luonnolliset vs. muodolliset kielet Luonnollisia kieliä ovat esim. 1. englanti, 2. suomi, 3. ranska. Muodollisia kieliä ovat esim. 1. lauselogiikan kieli (ilmaisut p, p q jne.), 2. C++, FORTRAN, 3. bittijonokokoelma
TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012
TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. tammikuuta 2012 Sisällys Sisällys Muistathan A B -konstruktion 0 k 1 i 2 s 3 s 4 a 5 0 k 1 o 2 i 3 r 4
MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I
MS-A040 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I G. Gripenberg Aalto-yliopisto. maaliskuuta 05 G. Gripenberg (Aalto-yliopisto) MS-A040 Diskreetin matematiikan perusteet Esimerkkejä. ym.,
Reaalilukuvälit, leikkaus ja unioni (1/2)
Luvut Luonnolliset luvut N = {0, 1, 2, 3,... } Kokonaisluvut Z = {..., 2, 1, 0, 1, 2,... } Rationaaliluvut (jaksolliset desimaaliluvut) Q = {m/n m, n Z, n 0} Irrationaaliluvut eli jaksottomat desimaaliluvut
Johdatus matemaattiseen päättelyyn
Johdatus matemaattiseen päättelyyn Maarit Järvenpää Oulun yliopisto Matemaattisten tieteiden laitos Syyslukukausi 2015 1 Merkintöjä 2 Todistamisesta 2 3 Joukko-oppia Tässä luvussa tarkastellaan joukko-opin
Logiikan kertausta. TIE303 Formaalit menetelmät, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos.
TIE303 Formaalit menetelmät, kevät 2005 Logiikan kertausta Antti-Juhani Kaijanaho antkaij@mit.jyu.fi Jyväskylän yliopisto Tietotekniikan laitos TIE303 Formaalit mentetelmät, 2005-01-27 p. 1/17 Luento2Luentomoniste
Ratkaisu: a) Kahden joukon yhdisteseen poimitaan kaikki alkiot jotka ovat jommassakummassa joukossa (eikä mitään muuta).
Matematiikan laitos Johdatus Diskreettiin Matematiikaan Harjoitus 1 03.11.2010 Ratkaisuehdotuksia Aleksandr Nuija 1. Tarkastellaan joukkoja A = {1,3,4}, B = {2,3,7,9} ja C = {2, 5, 7}. Määritä joukot (a)
ITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat
(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,
T Syksy 2005 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet )
T-79.144 Syksy 2005 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet 2.3-3.4) 2 5.11.2005 1. Olkoon R kaksipaikkainen predikaattisymboli, jonka tulkintana on relaatio R A
(2n 1) = n 2
3.5 Induktiotodistus Induktiota käyttäen voidaan todistaa luonnollisia lukuja koskevia väitteitä, jotka ovat muotoa väite P (n) on totta kaikille n =0, 1, 2,... Tässä väite P (n) riippuu n:n arvosta. Todistuksessa
TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. marraskuuta 2015
TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. marraskuuta 2015 Sisällys Muistathan A B -konstruktion 0 k 1 i 2 s 3 s 4 a 5 0 k 1 o 2 i 3 r 4 a 5 00 k 11 i
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
Matriisit, kertausta. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi
Matriisit, kertausta Merkintöjä 1 Matriisi on suorakulmainen lukukaavio. Matriiseja ovat esimerkiksi: ( 2 0.4 8 0 2 1 ) ( 0, 4 ), ( ) ( 1 4 2, a 11 a 12 a 21 a 22 ) Kaavio kirjoitetaan kaarisulkujen väliin
Nimitys Symboli Merkitys Negaatio ei Konjuktio ja Disjunktio tai Implikaatio jos..., niin... Ekvivalenssi... jos ja vain jos...
2 Logiikkaa Tässä luvussa tutustutaan joihinkin logiikan käsitteisiin ja merkintöihin. Lisätietoja ja tarkennuksia löytyy esimerkiksi Jouko Väänäsen kirjasta Logiikka I 2.1 Loogiset konnektiivit Väitelauseen
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
T Syksy 2006 Tietojenkäsittelyteorian perusteet T Harjoitus 7 Demonstraatiotehtävien ratkaisut
T-79.1001 Syksy 2006 Tietojenkäsittelyteorian perusteet T Harjoitus 7 Demonstraatiotehtävien ratkaisut Lemma (Säännöllisten kielten pumppauslemma). Olkoon A säännöllinen kieli. Tällöin on olemassa n 1
MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I
MS-A040 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I G. Gripenberg Aalto-yliopisto. maaliskuuta 05 G. Gripenberg (Aalto-yliopisto) MS-A040 Diskreetin matematiikan perusteet Esimerkkejä. ym.,
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
Kertausta 1. kurssikokeeseen
Kertausta. kurssikokeeseen. kurssikoe on to 22.0. klo 9 2 salissa A (tai CK2). Koealueena johdanto ja säännölliset kielet luentokalvot 3 ja nämä kertauskalvot harjoitukset 6 Sipser, luvut 0 ja Edellisvuosien.
T Kevät 2006 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet )
T-79.3001 Kevät 2006 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet 2.3 3.4) 21. 24.3.2006 1. Olkoon R kaksipaikkainen predikaattisymboli, jonka tulkintana on relaatio
4 Matemaattinen induktio
4 Matemaattinen induktio Joidenkin väitteiden todistamiseksi pitää näyttää, että kaikilla luonnollisilla luvuilla on jokin ominaisuus P. Esimerkkejä tällaisista väitteistä ovat vaikkapa seuraavat: kaikilla
1 Lineaariavaruus eli Vektoriavaruus
1 Lineaariavaruus eli Vektoriavaruus 1.1 Määritelmä ja esimerkkejä Olkoon K kunta, jonka nolla-alkio on 0 ja ykkösalkio on 1 sekä V epätyhjä joukko. Oletetaan, että joukossa V on määritelty laskutoimitus
MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I
MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I G. Gripenberg Aalto-yliopisto 3. huhtikuuta 2014 G. Gripenberg (Aalto-yliopisto) MS-A0402 Diskreetin matematiikan perusteetesimerkkejä,
Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.
Tehtävä. Tämä tehtävä on aineistotehtävä, jossa esitetään ensin tehtävän teoria. Sen jälkeen esitetään neljä kysymystä, joissa tätä teoriaa pitää soveltaa. Mitään aikaisempaa tehtävän aihepiirin tuntemusta
TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. maaliskuuta 2011
TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 16. maaliskuuta 2011 Sisällys Sisällys Väitelauseet lause (tai virke), joka sanoo jonkin asian pitävän paikkaansa
MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I
MS-A040 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I G. Gripenberg Aalto-yliopisto 3. huhtikuuta 014 G. Gripenberg (Aalto-yliopisto) MS-A040 Diskreetin matematiikan perusteetesimerkkejä,
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
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
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ä.
f(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n))
Määritelmä: on O(g(n)), jos on olemassa vakioarvot n 0 > 0 ja c > 0 siten, että c g(n) kun n > n 0 O eli iso-o tai ordo ilmaisee asymptoottisen ylärajan resurssivaatimusten kasvun suuruusluokalle Samankaltaisia
w + x + y + z =4, wx + wy + wz + xy + xz + yz =2, wxy + wxz + wyz + xyz = 4, wxyz = 1.
Kotitehtävät, tammikuu 2011 Vaikeampi sarja 1. Ratkaise yhtälöryhmä w + x + y + z =4, wx + wy + wz + xy + xz + yz =2, wxy + wxz + wyz + xyz = 4, wxyz = 1. Ratkaisu. Yhtälöryhmän ratkaisut (w, x, y, z)
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ää
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
TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 26. tammikuuta 2012
TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 26. tammikuuta 2012 Sisällys Luennon pähkinä Millä tavalla voidaan rakentaa tietokoneohjelma (tai kirjasto), joka
Diskreetin matematiikan perusteet Malliratkaisut 2 / vko 38
Diskreetin matematiikan perusteet Malliratkaisut 2 / vko 38 Tuntitehtävät 11-12 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 15-16 loppuviikon harjoituksissa. Kotitehtävät 13-14 tarkastetaan loppuviikon
Matematiikan tukikurssi
Matematiikan tukikurssi Kurssikerta 1 Määrittelyjoukoista Tarkastellaan funktiota, jonka määrittelevä yhtälö on f(x) = x. Jos funktion lähtöjoukoksi määrittelee vaikkapa suljetun välin [0, 1], on funktio
Ratkaisut Summa on nolla, sillä luvut muodostavat vastalukuparit: ( 10) + 10 = 0, ( 9) + 9 = 0,...
Ratkaisut 1 1. Summa on nolla, sillä luvut muodostavat vastalukuparit: ( 10) + 10 = 0, ( 9) + 9 = 0,.... Nolla, koska kerrotaan nollalla. 3. 16 15 50 = ( 8) 15 50 = (8 15) ( 50) = 1000 500 = 500 000. 4.
c) 22a 21b x + a 2 3a x 1 = a,
Tehtäviä on kahdella sivulla; kuusi ensimmäistä tehtävää on monivalintatehtäviä, joissa on 0 4 oikeata vastausta. 1. Lukion A ja lukion B oppilasmäärien suhde oli a/b vuoden 2017 lopussa. Vuoden 2017 aikana
Onko kuvaukset injektioita? Ovatko ne surjektioita? Bijektioita?
Matematiikkaa kaikille, kesä 2017 Avoin yliopisto Luentojen 2,4 ja 6 tehtäviä Päivittyy kurssin aikana 1. Olkoon A = {0, 1, 2}, B = {1, 2, 3} ja C = {2, 3, 4}. Luettele joukkojen A B, A B, A B ja (A B)
Salausmenetelmät. Veikko Keränen, Jouko Teeriaho (RAMK, 2006)
Salausmenetelmät Veikko Keränen, Jouko Teeriaho (RAMK, 2006) LUKUTEORIAA JA ALGORITMEJA 3. Kongruenssit à 3.1 Jakojäännös ja kongruenssi Määritelmä 3.1 Kaksi lukua a ja b ovat keskenään kongruentteja (tai
Äärellisten mallien teoria
Äärellisten mallien teoria Harjoituksen 7 ratkaisut (Hannu Niemistö) Tehtävä 1 Olkoot G ja H äärellisiä verkkoja, joilla kummallakin on l yhtenäistä komponenttia Olkoot G i, i {0,,l 1}, verkon G ja H i,
T Kevät 2009 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (Predikaattilogiikka )
T-79.3001 Kevät 2009 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (Predikaattilogiikka 10.3. 11.4) 26. 30.3. 2009 Ratkaisuja demotehtäviin Tehtävä 10.5 Allaolevat kolme graafia pyrkivät selventämään
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.
Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna
Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna. q 0 x solmuina laskennan mahdolliset tilanteet juurena alkutilanne lehtinä tilanteet joista ei siirtymää,
a) Mitkä seuraavista ovat samassa ekvivalenssiluokassa kuin (3, 8), eli kuuluvat joukkoon
Matematiikan johdantokurssi, syksy 08 Harjoitus 3, ratkaisuista. Kokonaisluvut määriteltiin luonnollisten lukujen avulla ekvivalenssiluokkina [a, b], jotka määrää (jo demoissa ekvivalenssirelaatioksi osoitettu)
13. Loogiset operaatiot 13.1
13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.
MS-A0402 Diskreetin matematiikan perusteet
MS-A040 Diskreetin matematiikan perusteet Osa : Relaatiot ja funktiot Riikka Kangaslampi 017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Relaatiot Relaatio Määritelmä 1 Relaatio joukosta A
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
Sekalaiset tehtävät, 11. syyskuuta 2005, sivu 1 / 13. Tehtäviä
Sekalaiset tehtävät, 11. syyskuuta 005, sivu 1 / 13 Tehtäviä Tehtävä 1. Johda toiseen asteen yhtälön ax + bx + c = 0, a 0 ratkaisukaava. Tehtävä. Määrittele joukon A R pienin yläraja sup A ja suurin alaraja
MAT-41150 Algebra I (s) periodilla IV 2012 Esko Turunen
MAT-41150 Algebra I (s) periodilla IV 2012 Esko Turunen Tehtävä 1. Onko joukon X potenssijoukon P(X) laskutoimitus distributiivinen laskutoimituksen suhteen? Onko laskutoimitus distributiivinen laskutoimituksen
1. Mikä on lukujen 10, 9, 8,..., 9, 10 summa? 2. Mikä on lukujen 10, 9, 8,..., 9, 10 tulo? =?
Tehtävät 1 1. Mikä on lukujen 10, 9, 8,..., 9, 10 summa? 2. Mikä on lukujen 10, 9, 8,..., 9, 10 tulo? 3. 16 125 250 =? 4. Kirjoita lausekkeeseen sulut siten, että tulos on nolla. 2 + 2 2 2 : 2 + 2 2 2
uv n, v 1, ja uv i w A kaikilla
2.8 Säännöllisten kielten rajoituksista Kardinaliteettisyistä on oltava olemassa (paljon) ei-säännöllisiä kieliä: kieliä on ylinumeroituva määrä, säännöllisiä lausekkeita vain numeroituvasti. Voidaanko
Matriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi
Matriisit, L20 Merkintöjä 1 Matriisi on suorakulmainen lukukaavio. Matriiseja ovat esimerkiksi: ( 2 0.4 8 0 2 1 ) ( 0, 4 ), ( ) ( 1 4 2, a 11 a 12 a 21 a 22 ) Merkintöjä 1 Matriisi on suorakulmainen lukukaavio.
Jokaisen parittoman kokonaisluvun toinen potenssi on pariton.
3 Todistustekniikkaa 3.1 Väitteen kumoaminen vastaesimerkillä Monissa tilanteissa kohdataan väitteitä, jotka koskevat esimerkiksi kaikkia kokonaislukuja, kaikkia reaalilukuja tai kaikkia joukkoja. Esimerkkejä
ICS-C2000 Tietojenkäsittelyteoria Kevät 2016
ICS-C2000 Tietojenkäsittelyteoria Kevät 206 Kierros 0, 2. 24. maaliskuuta Huom! Perjantaina 25. maaliskuuta ei ole laskareita (pitkäperjantai), käykää vapaasti valitsemassanne ryhmässä aiemmin viikolla.
a b 1 c b n c n
Algebra Syksy 2007 Harjoitukset 1. Olkoon a Z. Totea, että aina a 0, 1 a, a a ja a a. 2. Olkoot a, b, c, d Z. Todista implikaatiot: a) a b ja c d ac bd, b) a b ja b c a c. 3. Olkoon a b i kaikilla i =
Luonnollisten lukujen ja kokonaislukujen määritteleminen
Luonnollisten lukujen ja kokonaislukujen määritteleminen LuK-tutkielma Jussi Piippo Matemaattisten tieteiden yksikkö Oulun yliopisto Kevät 2017 Sisältö 1 Johdanto 2 2 Esitietoja 3 2.1 Joukko-opin perusaksioomat...................
1. Esitä rekursiivinen määritelmä lukujonolle
Matematiikan laitos Johdatus Diskrettiin Matematiikkaan Harjoitus 4 24.11.2011 Ratkaisuehdotuksia Aleksandr Pasharin 1. Esitä rekursiivinen määritelmä lukujonolle (a) f(n) = (2 0, 2 1, 2 2, 2 3, 2 4,...)
TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 22. toukokuuta 2013
TIEA24 Automaatit ja kieliopit, kesä 3 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 22. toukokuuta 3 Sisällys Äärellisiä automaatteja ON PUSH PUSH OFF Q T J Q C C H S C,Q C,Q 0 40 60 80 00, 70 90 Deterministinen
Injektio (1/3) Funktio f on injektio, joss. f (x 1 ) = f (x 2 ) x 1 = x 2 x 1, x 2 D(f )
Injektio (1/3) Määritelmä Funktio f on injektio, joss f (x 1 ) = f (x 2 ) x 1 = x 2 x 1, x 2 D(f ) Seurauksia: Jatkuva injektio on siis aina joko aidosti kasvava tai aidosti vähenevä Injektiolla on enintään