Diskreetit rakenteet 811120P 5 op Syksy 2016 Harjoitustehtävät Tähdellä merkityt tehtävät ovat keskimääräistä vaativampia Algoritmeista 1. Kirjoita algoritmi, joka saa syötteenä ajan, joka on ilmoitettu tunteina, minuutteina ja sekunteina ja tulostaa tämän ajan sekunteina. 2. Konstruoi algoritmi, joka saa syötteenä kaksi reaalilukua ja tulostaa niiden keskiarvon. 3. Laadi algoritmi, joka ottaa syötteenä luonnollisen luvun n, laskee lausekkeen s n = 1 2 + 2 2 +... + n 2 arvon ja lopuksi tulostaa sen. 4. Suunnittele algoritmi, joka saa syötteenä äärellisen reaalilukutaulukon ja tulostaa taulukon alkioiden arvoista toiseksi pienimmän silloin, kun sellainen on olemassa ja asianmukaisen viestin, mikäli taulukossa ei ole kahta erisuurta alkiota. 5. Laadi algoritmi, joka ottaa syötteenä äärellisen reaalilukutaulukon ja testaa ovatko sen alkiot nousevassa suuruusjärjestyksessä; tulostuksena on asianmukainen viesti. Suunnittele algoritmi siten, että se keskeyttää toimintansa heti, kun vastaus tiedetään. 6. Seuraava algoritmi laskee positiivisen kokonaisluvun 'digitaalisen juuren'. Input: Positiivinen kokonaisluku n Output: Luvun n digitaalinen juuri DIG_JUURI(n) 1. d = luvun n numeromerkkien lukumäärä 2. while d > 1 do 3. n = luvun n numeromerkkien summa 4. d = luvun n numeromerkkien lukumäärä 5. return n a) Tutki algoritmin toimintaa syötteellä 8678. b) Listaa algoritmin kaikki mahdolliset tulosteet. 1
7. Laadi (pseudokoodi)käskyjono, joka vaihtaa keskenään kahden numeerisen muuttujan arvot. Algoritmi ei saa sisältää apumuuttujia, mutta voi sisältää alkuperäisiä muuttujia koskevia peruslaskutoimituksia. 8. Tarkastellaan seuraavaa käskyjonoa. Input: Ei-negatiivinen kokonaisluku n Output:? TOIMINTO(n) 1. i = 0 2. while n on parillinen do 3. n = n/2 4. i = i+1 5. return i a) Mikä on tuloste, kun syöte on 12? b) Mikä on tuloste, kun n on pariton? c) Mikä tapahtuu, kun syöte on 0? d) Muodostaako käskyjono algoritmin? Perustelut. 9. Tarkastellaan seuraavaa käskyjonoa. Input: Positiivinen kokonaisluku n Output:? TOIMINTO(n) 1. vast = n 2. while n > 1 do 3. n = n-1 4. vast = vast*n 5. return vast a) Tutki käskyjonon toimintaa syötteellä 4. b) Muodostaako käskyjono algoritmin? Perustelut. 10. a) Mitkä ovat mielestäsi neljä tärkeintä algoritmin ominaisuutta? b) Kirjoita (luentomonisteessa esiteltyä pseudokoodia käyttäen) algoritmi, joka A. ottaa syötteenä luvun n N + ja bittijonon b 1 b 2 b n, missä b i {0, 1}, kun i = 1, 2,..., n; ja B. antaa tulosteena merkkijonon c 1 c 2 c n, missä kullakin j {1, 2,..., n} (i) c j = b j silloin, kun jonossa b 1 b 2 b n ei ennen bittiä b j esiinny ykköstä ja (ii) c j = 1 b j silloin, kun jonossa b 1 b 2 b n esiintyy ykkönen ennen bittiä b j. 2
Huom. Olkoon j {1, 2,..., n}. Bittijonossa b 1 b 2 b n ei ennen bittiä b j esiinny ykköstä, jos bitit b 1, b 2,..., b j 1 ovat kaikki nollia. Siten bittijonossa b 1 b 2 b n esiintyy ykkönen ennen bittiä b j, jos jollakin i {1, 2,..., j 1} on voimassa b i = 1. 11. Laadi algoritmi, joka ottaa syötteenä merkkijonon ja testaa, onko se kaarisulkeiden '(' ja ')' suhteen hyvin muodostettu ilmaisu. Tämä tarkoittaa sitä, että - oikean- ja vasemmanpuoleisia kaarisulkeita on sama määrä; - jokaisella vasemmanpuoleisella sulkeella '(' on myöhemmin merkkijonossa esiintyvä oikeanpuoleinen vastinpari ')'; ja - oikeanpuoleisen sulkumerkin ja sen vasemmanpuoleisen vastinparin välissä on aina kaarisulkeiden suhteen hyvin muodostettu ilmaisu. Huom. Merkkijono on kaarisulkeiden suhteen hyvin muodostettu ilmaisu, jos jokaisessa merkkijonon alkuosassa vasemmanpuoleisten sulkeiden lukumäärän ja oikeanpuoleisten sulkeiden lukumäärän erotus on ei-negatiivinen ja koko merkkijonossa nolla. 12. Olkoon n positiivinen kokonaisluku ja S 1, S 2,..., S n pseudokoodilausekkeita. Kirjoita rakenteen for i = 1 to n do S i korvaava pseudokoodikäskyjono, jossa käytetään vain sijoituslausekkeita, lausekkeita S 1, S 2,..., S n sekä while - do rakennetta. Apumuuttujien käyttö on sallittua. 13. Tarkastellaan seuraavan algoritmin toimintaa. Input: Positiivinen kokonaisluku n Output:? ALGORITMI(n) 1. Varaa kokonaislukutaulukko A[1,..n] 2. for i=1 to n do 3. A[i] = 0 4. for i=1 to n do 5. for j=1 to n do 6. if (i j) then // i on j:n tekijä 7. A[j] = 1-A[j] 8. for i = 1 to n do 9. print A[i] 10.return 3
a) Listaa taulukon A arvot A[1], A[2],..., A[n] arvot ulomman forsilmukan (askeleen 3) lopussa, kun n = 10. b) Voiko taulukon A arvoja A[1], A[2],..., A[n] määrittää oikein mielivaltaisella n:n arvolla käymättä läpi kaikkia algoritmin askelia? Perustele vastauksesi. Lukujärjestelmät ja niiden muunnokset 14. Kirjoita auki (eli laajennetussa muodossa ) kymmenjärjestelmän luku 394.27 10. 15. Muunna seuraavat binaariluvut kymmenjärjestelmään kirjoittamalla ne aluksi auki. (a) 1100101 2 (b) 1010111.1011 2. 16. Muunna seuraavat luvut kymmenjärjestelmästä binaarijärjestelmään. (a) 826 10 (b) 0.32177 10 (c) 1704.1878 10 [desimaalipisteen jälkeen 16 numeroa (bittiä)] (d) 473.55 10 17. Muunna seuraavat luvut kymmenjärjestelmästä binaarijärjestelmään siten, että desimaalipisteen jälkeen tulee viisi numeroa (bittiä). (a) 0.2 10 (b) 13.47 10 18. Muunna seuraavat 8- ja 16-järjestelmien luvut kymmenjärjestelmään. (a) 4716 8 (b) 603.25 8 (c) C6E 16 (d) 2FA.8 16 19. Muunna seuraavat kymmenjärjestelmän luvut kahdeksanjärjestelmään. (a) 3842 10 (b) 291.9375 10 20. Muunna seuraavat kymmenjärjestelmän luvut kuusitoistajärjestelmään. (a) 29803 10 (b) 6962.578125 10 21. Tee seuraavat lukujärjestelmämuunnokset. (a) 1110100110 2 ja 11000101.00111 2 sekä oktaali- että heksadesimaalijärjestelmään; ja (b) 247 8, 31.63 8 93B 16 ja AD.1C 16 binaarijärjestelmään. 22. Etsi binaariluvun a) 11010100 2 (b) 01101001 2 8-bittinen kakkosen komplementti kolmella eri tavalla: (1) binäärilukujen vähennyslaskua käyttäen; (2) lisäämällä luvun ykkösen komplementtiin binääriluku 1 2 ; ja (3) luennolla esitettyä algoritmia soveltaen. 4
23. Suorita seuraavat laskutoimenpiteet binaariaritmetiikassa. (a) 1101101 2 + 1011110 2 (b) 1100010 2 1010111 2 (c) 10011 2 1101 2 (d) 10110 2 11 2 (kolme numeroa desimaalipisteen jälkeen). 24. Laadi (pseudokoodilla kirjoitettu) algoritmi, joka ottaa syötteenä positiivisen binaariluvun ja laskee sen k-bittisen kakkosen komplementin, kun k on binaariluvun pituus bitteinä. 25. Etsi seuraavien kokonaislukujen 16-bittinen tietokone-esitys. a) 29803 (b) 8155 26. Esitä binaariluku 1101110100.1001 2 normalisoidussa binaarisessa eksponenttimuodossa. Etsi sen 32-bittinen tietokone-esitys, kun karakteristikalle on varattu kahdeksan bittiä (ja eksponenttipoikkeama on 2 7 1). 27. Määritä seuraavien desimaalilukujen merkitsevien numeroiden lukumäärä a) 398030 b) 0.005270 c) 08155.00. 28. Etsi seuraavien reaalilukujen 32-bittinen tietokone-esitys, kun karakteristikalle on varattu kahdeksan bittiä. a) 5894.376 (b) 0.0387 29. Arvioi niiden kymmenjärjestelmän lukujen suuruutta, jotka voidaan esittää 64 bitillä, kun karakteristikaan voidaan käyttää 11 bittiä ja eksponenttipoikkeama on siten 2 10 1. 30. Suorita seuraavat kymmenjärjestelmän laskutoimenpiteet neljän merkitsevän numeron tarkkuudella. (a) 0.8463 10 6 + 0.7012 10 8 (b) (0.3315 10 5 ) (0.2089 10 9 ) (c) (0.5160 10 3 ) (0.1329 10 4 ) (0.3816 10 0 ) 5
Logiikka 31. Kirjoita seuraavat propositiot symbolisessa muodossa. a) 'Joko Laura opiskelee tietojenkäsittelyä tai Toni ei opiskele matematiikkaa, tai Toni opiskelee matematiikkaa.' b) 'Ei ole totta, että jos aurinko paistaa, minulla on mukana sateenvarjo' c) 'Ohjelmaa pysähtyy jos ja vain jos syöte ei ole numeerisessa muodossa tai esc-nappia painetaan.' d) 'Jos x = 7 ja y 4 ja z = 2, niin jos ei ole totta, että joko y = 4 tai z 2, niin x = 7 tai z = 2'. (Oletamme tässä, että muuttujille on annettu arvot, joten kyse on aidosta propositiosta.) 32. Olkoon p propositio: 'sataa lunta' ja q propositio: 'lähden hiihtämään'. Kirjoita seuraavat propositiot suomen kielellä. a) p q b) p q c) q p d) (p q) p. 33. Konstruoi totuustaulut seuraaville loogisille ilmaisuille. Ilmoita, kun kyse on tautologiasta tai ristiriidasta. a) (p q) p b) [p (p q)] q c) (p q) ( p q) d) [(p r) (q r)] (p q). 34. Osoita totuustaulujen avulla, että distributiivisuussääntö on voimassa. p (q r) (p q) (p r) 35. Logiikan lakien avulla yksinkertaista niin pitkälle kuin mahdollista seuraavat loogiset ilmaisut. a) (p q) (p q) b) [p (p q)] c) [p (q p)] d) [(p q) (r p)] (r q). 36. Kirjoita seuraavat metakielen lauseet muodossa, jossa ei esiinny ehtoa. (a) Jos on kylmä, Pekka käyttää hattua. (b) Palkat nousevat vain jos tuottavuus lisääntyy. 37. Osoita, että päättely p q, r q, r p on loogisesti oikea. 38. Osoita, että päättely p q, p q ei ole loogisesti oikea. 6
39. Esitä seuraavat päättelyt symbolisessa muodossa ja arvioi niiden oikeellisuutta. (i) 'Jos tänään on maanantai, minulla on joko tietokantojen tai ohjelmoinnin koe. Jos ohjelmoinnin opettaja on sairas, minulla ei ole ohjelmoinnin koetta. Tänään on maanantai ja ohjelmoinnin opettaja on sairas. Siispä minulla on tietokantojen koe.' (ii) 'Tiina opiskelee tietojenkäsittelyä tai Tiina ei opiskele biokemiaa. Jos Tiina opiskelee biokemiaa, hän ei opiskele tietojenkäsittelyä. Siispä Tiina opiskelee tietojenkäsittelyä.' 40. Onko seuraava päättely oikein suoritettu? 'Jos kolmion kaksi kylkeä a ja b ovat yhtä pitkät, niiden vastaiset kulmat α ja β ovat yhtäsuuret. Kolmion kaksi kylkeä a ja b eivät ole yhtä pitkät. Siispä kulmat α ja β eivät ole yhtäsuuret.' 41. Looginen operaatio eija eli Scheerin viiva (nand, Scheer's stroke), jota merkitään symbolilla, määritellään seuraavasti. p q p q T T F T F T F T T F F T Määritä ilmaisu, joka on loogisesti ekvivalentti ilmaisun (a) p (b) p q (c) p q kanssa, mutta jossa käytetään vain Scheerin viivaa. 42. Kirjoita seuraavat propositiot symbolisessa muodossa. Ovatko ne tosia? a) 'on olemassa sellainen reaaliluku x, että x 2 3x + 2 = 0' b) 'jokaista reaalilukua y kohden on olemassa sellainen reaaliluku x että y = x 2 ' 43. Kirjoita edellisen tehtävän propositioiden negaatiot ja esitä ne suomen kielellä. 44. Kirjoita lauseke (a) { x y [p(x, y) q(x, y)]} (b) { x y [(p(x, y) q(x, y)]} muodossa, jossa negaatio ei esiinny lausekkeen edessä. 7
45. Olkoon A = {1, 2, 3, 4, 5}. Määritä seuraavien lausekkeiden totuusarvo. (a) x A : x + 3 = 10 (b) x A : x + 3 < 10 (c) x A : x + 3 < 5 (d) x A : x + 3 7 46. Suunnittelet kirjaston lainausjärjestelmää ja käytät predikaattia B(h, k): 'henkilö h on lainannut kirjan k' ja predikaattia M(k): 'kirja k on myöhässä'. Kirjoita seuraavat propositiot symbolisessa muodossa. a) 'henkilö h 0 on lainannut (ainakin) yhden kirjan' b) 'kirja k 0 on lainattu' c) 'kirja k 0 on (kirjaston) hyllyssä' d) 'henkilö h 0 on lainannut ainakin kaksi kirjaa' e) 'ainoatakaan kirjaa ei ole lainannut useampi kuin yksi henkilö' f) 'myöhässä olevia kirjoja ei ole' g) 'jos kirja on myöhässä, joku on lainannut sen' h) 'henkilöllä h 0 on (ainakin yksi) myöhässä oleva kirja' 47. Osoita oikeaksi kukin seuraavista väittämistä. (a) Parillisen ja parittoman kokonaisluvun summa on pariton. (b) Kahden parittoman kokonaisluvun tulo on pariton. (c) Olkoot x ja y reaalilukuja. Jos x + y < 2, niin joko x < 1 tai y < 1. (d) Viiden peräkkäisen kokonaisluvun summa on tasan jaollinen viidellä. (e) Jos n on kokonaisluku, on n 2 + n parillinen. (f) Jos n on pariton kokonaisluku, on n 2 1 tasan jaollinen luvulla 4. 48. * Osoita, että 2 on irrationaaliluku. Ohje: Käytä epäsuoraa todistusta. 8
49. Osoita seuraavat väittämät vääriksi etsimällä kullekin vastaesimerkki. (a) Jokainen kokonaisluku, joka on tasan jaollinen sekä luvulla 4 että luvulla 6, on tasan jaollinen myös luvulla 24. (b) Jos n on positiivinen kokonaisluku, niin n 4 + 4 on tasan jaollinen luvulla 5. (c) Jokainen luonnollinen luku voidaan esittää muodossa x 2 +y 2 + z 2, missä x, y ja z ovat luonnollisia lukuja. (d) Aina, kun n on luonnollinen luku, on n 3 2 n 1. 50. Tarkastellaan seuraavaa itseensä viittavaa väittämää. 'Tässä lauseessa on viisi sanaa.' (b) Kirjoita väittämän ne- (a) Mikä on väittämän totuusarvo? gaatio. Mikä on sen totuusarvo? 51. Kortin etupuolelle on kirjoitettu lause. 'Tämän kortin toiselle puolelle kirjoitettu lause on tosi.' Kortin takapuolelle on kirjoitettu lause 'Tämän kortin toiselle puolelle kirjoitettu lause on epätosi.' Selitä, miten tämä tilanne johtaa paradoksiin. 52. Kirjoita seuraavien metakielen väitteiden negaatiot. (a) 'Kaikki opiskelijat asuvat opiskelija-asuntoloissa.' (b) 'Kaikki teoreettisen fysiikan pääaineopiskelijat ovat miehiä.' (c) 'Jotkut opiskelijat ovat kaksikymmentäviisivuotiaita tai vanhempia.' 53. Neljä henkilöä Emilia, Lauri, Kati ja Iikka käyttävät tietokonetta tietokonelaboratoriossa. Tiedät, että Emilia on opiskelija ja että Lauri ei ole, mutta et tiedä, käyttävätkö he verkkosoftaa. Tiedät, että Kati käyttää verkkosoftaa ja että Iikka ei sitä käytä, mutta et tiedä ovatko he opiskelijoita. Olet labran hoitaja, ja sinun täytyy valvoa sääntöä, jonka mukaan ainoastaan opiskelijat voivat käyttää verkkosoftaa. Haluat tietää onko sääntöä noudatettu esittämällä kahdelle henkilölle yhden kysymyksen kummallekin. Keneltä kysyt ja mitä? 54. Todista (intuitiivisesti), että (a) (b) x P (x) x Q(x) x[(p (x) Q(x)] x[(p (x) Q(x)] x P (x) x Q(x) 9
Joukot, relaatiot ja funktiot 55. Olkoon A = {1, {1}, {2}, 3}. Mitkä seuraavista väitteistä ovat tosia? a) 1 A b) 1 A c) {1} A d) {1} A e) {{1}} A f) 2 A g) {2} A h) {2} A i) {3} A j) {3} A 56. Olkoon E = {n N + n 15 } perusjoukko, A = {n n pariton}, B = {n n > 7} sekä C = {n n on tasan jaollinen kolmella}. Kuvaa joukkoja graasesti. Määritä seuraavat joukot luettelumuodossa. a) A B b) B C c) A c d) (A B c ) C e) (A C) c C c 57. Joukkoopin lakeja hyväksikäyttäen osoita, että (A c B) c = A B c. Miten joukkojen unioni voidaan esittää leikkausta ja komplementtia käyttäen? 58. Olkoot A = {a, b, c} ja B = {p, q}. Määritä joukot a) A B b) A 2 c) B 3. 59. Olkoot E = {0, 1, 2,..., 15}. a) Mikä on joukon {2, 4, 5, 7, 11, 14} bittijonoesitys? b) Mitä joukkoa edustaa bittijono 1010011011101001. 60. Olkoon A = {1, 2, 3, 4, 5}. Määritellään joukon A binaarirelaatio R seuraavasti: R = {(1, 3), (1, 4), (2, 1), (2, 2), (2, 4), (3, 5), (5, 2), (5, 5)} Esitä R a) graasesti; ja b) matriisimuodossa. 61. Olkoon R joukon {a, b, c, d} binaarirelaatio, jonka matriisi on a b c d a T F T F b F T T F c F T T F d F F F T a) Piirrä R:n graanen esitys. b) Tarkastele R:n reeksiivisyyttä, symmetrisyyttä ja transitiivisyyttä. 10
62. Mitkä seuraavista relaatioista ovat reeksiivisiä, irreeksiivisiä, symmetrisiä, antisymmetrisiä tai transitiivisia? a) 'a ja b ovat sisaruksia' (a ja b ihmisiä) b) 'a on b:n poika' (a ja b ihmisiä) c) 'a on suurempi tai yhtäsuuri kuin b' (a ja b reaalilukuja) d) '(a, b) kuuluu relaatioon R täsmälleen silloin, kun a 2 = b 2 ' (a ja b reaalilukuja) e) 'a:lla on sama kokonaisosa kuin b:llä' (a ja b reaalilukuja) f) 'a on b:n monikerta' (a ja b positiivisia kokonaislukuja) 63. Mitkä edellisen tehtävän relaatioista ovat a) ekvivalensseja, b) osittaisia järjestyksiä? Ekvivalenssien kohdalla määritä ekvivalenssiluokat. 64. Tietokoneohjelma koostuu viidestä moduulista: M 1, M 2, M 3, M 4 ja M 5. Määrittelemme moduulien joukossa relaation R seuraavasti: M i R M j jos M i on moduulin M j kutsumisjonossa Relaation R matriisi on M 1 M 2 M 3 M 4 M 5 M 1 T F T T F M 2 F T T F F M 3 F F T F F M 4 F F T T F M 5 F F T T T a) Osoita, että R on reeksiivinen, transitiivinen ja antisymmetrinen b) Mikä moduuli on pääohjelma? 65. Mitkä seuraavista funktioista R R ovat injektioita ja mitkä surjektioita? a) f(x) = 2x + 3, b) g(x) = x 2 1, c) h(x) = x 3 + 1. 11
66. Mitkä kohdissa ae annetuista funktioista ovat injektioita ja mitkä surjektioita? a) Olkoon A aakkosto ja A + aakkoston A kaikkien (epä-tyhjien) sanojen joukko. Olkoon rev : A + A + funktio, jolle rev(a 1 a 2 a n ) = a n a n 1 a 2 a 1 aina, kun n N + ja a 1, a 2..., a n A. b) f : R R R, f(x, y) = x + y c) s : N N, s(n) = n + 1 d) h : A + A, h(w) on sanan w ensimmäinen kirjain. e) bin : N B +, bin(n) on luvun n binaariesitys ilman (turhia) etunollia. 67. Virheiden havaitsemiseksi useat numeeriset koodit (kuten monissa maissa henkilötunnukset) sisältävät 'tarkistusnumeron'. Oletetaan, että D = {0, 1, 2,..., 9} ja cd : D 9 D 10 on funktio jolle cd(d 1 d 2 d 9 ) = d 1 d 2 d 9 d 10 missä d 1, d 2,..., d 9, d 10 D ja d 10 on kymmenjärjestelmän luvun d 1 + 2 d 2 + 3 d 3 + + 9 d 9 viimeinen nuimero. Siten cd liittää jokaiseen yhdeksän numeron jonoon tarkistusnumeron. a) Osoita, että 2516238674 on validi koodi eli 2516238674 cd(d 9 ). b) Onko cd injektio? Entä surjektio? c) Mieti miksi funktiota cd voidaan käyttää virheiden havaitsemiseen. 68. Määritellään funktiot f, g ja h seuraavasti. f : R R f(x) = 4x 3 g : R R g(x) = { x 2 + 1 1 jos x 0 h : R R h(x) = 0 jos x < 0 Määritä seuraavat funktiot: a) f f b) f g c) g f d) f h e) h f f) g h g) h g 12
69. Etsi seuraavien funktioiden käänteisfunktiot silloin, kun ne ovat olemassa. Esitä perustelut tilanteessa, jossa käänteisfunktiota ei ole olemassa. a) f : R R f(x) = 3x + 3 b) abs : R R abs(x) = { x c) g : N + N + g(n) = n + 1 jos n on pariton n 1 jos n on parillinen d) A aakkosto, h : A + A + h(a) = a ja h(wa) = aw aina, kun w A + ja a A. 70. Olkoon X opiskelijoiden nimien muodostama joukko yliopiston ylläpitämässä tietokannassa. Oletetaan, että kahta samannimistä opiskelijaa ei yliopistossa ole. Olkoon Y opiskelijoiden sosiaaliturvatunnusten muodostama joukko. Määritellään funktiot f : X Y ja g : Y N yhtälöillä f(x) = g(y) = opiskelijan x sosiaaliturvatunnus sen opiskelijan ikä (vuosissa), jonka sosiaaliturvatunnus on y a) Kuvaile funktioita g f ja f 1. b) Selitä, miksi funktiolla g ei ole käänteisfunktiota. Rekursio ja induktio 71. Kirjoita iteratiivinen algoritmi, joka syotteellä m N + tulostaa annetun jonon m ensimmäistä termiä. a) a 1 = 3, a n+1 = a n + 4 (n N + ) b) a 1 = 1, a n+1 = a n + n + 1 (n N + ). 72. Osoita induktiolla, että seuraavat väitteet ovat voimassa kaikille positiivisille kokonaisluvuille n. a) 1 + 3 + 5 + + (2n 1) = n 2 b) 1 2 + 2 2 + 3 2 + + n 2 = n(n+1)(2n+1) 6 73. Olkoon n 0 N +. Oletetaan, että pystymme osoittamaan väitteestä P (n) seuraavat seikat. 1. P (n 0 ) on tosi. 2. Jos P (k) on tosi, niin P (k + 1) on tosi aina, kun k N +. Millä n:n arvoilla P (n) on varmasti tosi? 74. Jonon ensimmäinen termi on 1. Jokainen seuraava termi saadaan kertomalla edellinen termi kahdella ja lisäämällä tulokseen 3. Kirjoita jonon rekursiivinen määritelmä. 13
75. Oletetaan, että rekursioyhtälön a n+2 = c 1 a n+1 + c 2 a n (n N + ) karakteristisella yhtälöllä on kaksi erisuurta reaalijuurta r 1 ja r 2. Osoita, että a n = A r n 1 + B r n 2 (n N + ) on em. rekursioyhtälön ratkaisu millä tahansa A:n ja B:n reaalilukuarvoilla. 76. Ratkaise rekursioyhtälöt a) a 1 = 2, a 2 = 1, a n+2 = 5 a n+1 4 a n (n N + ) b) a 1 = 1, a 2 = 0, a n+2 = 2 a n+1 + 8 a n (n N + ) c) a 1 = 1, a 2 = 4, a n+2 = 5 a n+1 6 a n (n N + ) 77. Bakteerien lukumäärä aineessa on 1000 ja se lisääntyy 250%:lla aina kahdessa tunnissa. Mikä on bakteerien lukumäärä 24 tunnin kuluttua? 78. Olkoon a n sellaisten joukon {1, 2,..., n} osajoukkojen lukumäärä, jotka eivät sisällä peräkkäisiä lukuja. Tässä n N +. Määritä a n :lle rekursioyhtälö ja ratkaise se. 79. Jokaisella n N +, olkoon q n aakkoston {a, b, c, d} sellaisten n:n pituisten sanojen lukumäärä, joissa on pariton määrä kirjainta b. Määritä q n :lle rekursioyhtälö ja ratkaise se. 80. Laadi rekursiiviset algoritmit seuraavien ongelmien ratkaisemiseksi: a) Etsi annetun lukujonon pienin alkio. b) Selvitä, koostuuko annettu bittijono yksinomaan nollista. 81. Laadi rekursiivinen algoritmi, joka laskee kuinka monta kertaa symboli a esiintyy annetussa merkkijonossa. (Voimme olettaa tässä, että symboli a kuuluu kiinteään aakkostoon A ja merkkijono on tämän aakkoston sana.) 82. * Olkoon A : N N N Ackermannin funktio: A(0, n) = n + 1, A(m + 1, 0) = A(m, 1), A(m + 1, n + 1) = A(m, A(m + 1, n)) aina, kun m, n N. Määrirä A(2, 3). 14
Alkeislukuteoria 83. Olkoon n > 1 kokonaisluku. Selitä miksi jokainen luku jonossa n! + 2, n! + 3,..., n! + n on yhdistetty luku. 84. Olkoon n > 1. Kaikkien korkeintaan n:n suuruisten alkulukujen lista voidaan generoida seuraavasti. Aloitetaan tyhjällä listalla. Annetaan i:n saada arvot i = 2, 3,..., n tässsä järjestyksessä ja testataan onko i tasan jaollinen jollakin listassa jo olevalla luvulla. Jos näin ei ole, lisätään i listaan. Kirjoita tämä menetelmä algoritmiksi. 85. Haluamme testata, onko kokonaisluku n > 1 alkuluku. Miksi riittää tarkistaa onko mikään kokonaisluku väliltä [2, n] luvun n tekijä? 86. Eukleideen algoritmia käyttäen etsi seuravien lukuparien suurin yhteinen tekijä. a) 572, 297 b) 1384, 1144 c) 1076, 2985 87. Eukleideen algoritmia käyttäen esitä seuraaavat rationaaliluvut supistetussa muodossa. a) 10881 2067 b) 2623 4171 88. Onko seuraavilla yhtälöillä kokonaislukuratkaisuja. Myönteisessä tapauksessa määritä jokin ratkaisu. a) 4571 x + 5726 y = 21 b) 2783 x + 2046 y = 10 a) 4002 x + 2091 y = 3 89. Laadi yhteen- ja kertolaskutaulut ekvivalenssiluokille modulo 5. 90. * Olkoot a, b, c, d Z ja m N +. Osoita, että 1. Jos a b(mod m) ja c d(mod m), niin a + c b + d(mod m). 2. Jos a b(mod m) ja c d(mod m), niin a c b d(mod m). 3. Jos a b(mod m) ja c d(mod m), niin a c b d(mod m). 4. Jos a c b c(mod m), niin a b(mod m syt(m,c) ). 91. Ratkaise seuraavat kongruenssiyhtälöt. Esitä ratkaisu muodossa x a(mod m), missä x N on mahdollisimman pieni. (a) 7 x 24 mod 19 (b) 35 x + 14 23 mod 27. 15
92. Generoi lineaarista kongruenssimenetelmää käyttäen jono pseudosatunnaislukuja modulo 16, kun a = 7, c = 11 ja siemenluku on 1. 93. Generoi lineaarista kongruenssimenetelmää käyttäen jono pseudosatunnaislukuja modulo 16, kun a = 9, c = 11 ja siemenluku on 1. 94. Voidaan osoittaa, että seuraavat ehdot (1) (3) ovat välttämättömät ja riittävät, jotta lineaarinen kongruenssimenetelmä generoisi kaikki kokonaisluvut joukossa {0, 1, 2,..., m 1}. (1) Lukujen c ja m suurin yhteinen tekijä on yksi. (2) Luku a 1 on tasan jaollinen jokaisella m:n alkulukutekijällä. (3) Jos 4 m, niin 4 a 1. Todenna, että em. ehdot ovat voimassa kahdessa edellisessä tehtävässä. 95. Oletetaan, että lineaarisessa kongruenssimenetelmässä lukujen c ja m syt on yksi ja a = 1. Osoita, että nämä parametrinarvot toteuttavat edellisen tehtävän kolme ehtoa. Miksi menetelmä ei ole kelvollinen pseudosatunnaislukugeneraattori? Kombinatoriikka 96. Sari on lähdössä lomamatkalle Kreetalle tai Rhodokselle. Hän haluaa lentää kohteeseen korkeintaan yhtä välilaskua käyttäen. Suoria lentoja Oulusta Kreetalle on tarjolla kaksi ja Rhodokselle kolme kappaletta. Lisäksi viidellä lennolla Kreetalle on ensin lennettävä Helsinkiin, jossa matka jatkuu suoralla yhteydellä määränpäähän. Pulu Ykkönen tarjoaa yhden sellaisen yhteyden Rhodokselle, jossa välilasku tehdään Riikassa. Kuinka monella tavalla Sari voi matkansa Oulusta määränpäähän (joko Kreetalle tai Rhodokselle) valita? 97. Luokan 34 opiskelijasta 12 puhuu ruotsia ja 5 saksaa. Jos 2 opiskelijaa puhuu molempia kieliä, kuinka moni ei puhu kumpaakaan? 16
98. Myynnissä olevista autoista otettiin 25 auton satunnaisotos. Tutkittiin, mitkä ominaisuuksista ilmastointi (I), navigaattori (N) ja vakionopeudensäädin (V ) oli kussakin otoksen autossa vakiovarusteena. Saatiin seuraavat tulokset. 15 autossa oli I 4 autossa oli N ja V 12 autossa oli N 3 autossa oli I, N ja V 5 autossa oli I ja V 2 autossa ei ollut ainoatakaan 9 autossa oli I ja N Kuinka monessa autossa oli (a) vain V (b) vain I (c) vain N (d) N ja V, mutta ei I (e) I ja N, mutta ei V (f) vain yksi kolmesta ominaisuudesta. 99. Erään alueen puhelinnumerot koostuvat kahdeksasta (kymmenjärjestelmän) numerosta. Ensimmäinen numero ei voi olla nolla eikä ykkönen. Muille numeroille ei ole rajoitteita. (a) Kuinka paljon puhelinnumeroja on kaikkiaan? (b) Kuinka moni puhelinnumero ei sisällä yhtään nollaa? (c) Kuinka moni puhelinnumero sisältää ainakin yhden nollan? 100. Äärellisen joukon kaikki permutaatiot generoivaa ohjelmaa ajetaan tietokoneella, joka tulostaa permutaatiot tiedostoon nopeudella 10000 permutaatiota sekunnissa. Kuinka kauan kestää sellaisen joukon kaikkien permutaatioiden tulostaminen, jonka koko on (a) 10 alkiota (b) 15 alkiota? 101. Arvioi lukujen (a) P (10, 6) (b) P (12, 8) (c) C(13, 5) ( ) 15 (d) 11 suuruutta. 102. Yhdistyksessä on 45 jäsentä, joiden joukosta valitaan puheenjohtaja, varapuheenjohtaja, sihteeri ja rahastonhoitaja. Kuinka monella tavalla tämä voidaan tehdä, kun yksi henkilö voi pitää hallussaan korkeintaan yhtä vakanssia. 103. Luokan kahdentoista oppilaan koepisteet ovat 15, 13, 18, 15, 7, 12, 10, 13, 9, 5, 15, 17. Pistemäärät syötetään tilastollista analyysia suorittavaan tietokoneohjelmaan mielivaltaisessa järjestyksessä. Kuinka monella tavalla tämä voidaan tehdä? 17
104. Eräässä yliopiston yksikössä työskentelee 23 naista ja 18 miestä. Yksiköstä valitaan kuusi henkilöä tiedekunnan pääsykoetyöryhmään. (a) Kuinka monella tavalla valinta voidaan tehdä? (b) Kuinka monella tavalla valinta voidaan tehdä, jos valituista täsmälleen neljän tulee olla naisia? 105. Tietoturva-kurssin probleemapankista valitaan kuhunkin luentokokeeseen viisi kysymystä. Kuinka monta kysymystä tulee probleemapankin sisältää, jotta koevaihtoehtoja on ainakin tuhat? 106. Osoita, ( että ) ( n (a) r = n 1 ) ( r 1 + n 1 ) r (b) P (n, r) = n P (n 1, r 1) 107. Selitä miksi joukossa, joka koostuu n:stä eri alkiosta on (a) n yhden alkion osajoukkoa; (b) n osajoukkoa, joista jokainen sisältää n 1 alkiota; ja (c) yhtä monta r:n alkion ja (n r):n alkion osajoukkoa, r {0, 1,..., n}. 108. * Osoita, että jos joukosta {1, 2,..., 200} poimitaan 101 eri lukua, on näiden joukossa sellaiset luvut (a) m ja n, joiden suurin yhteinen tekijä on yksi; ja (b) r ja s, että r jakaa tasan luvun s. 109. * Neljän viikon lomalla Juuso pelaa joka päivä ainakin yhden pelin tennistä, mutta koko loman aikana ei enempää kuin 40 peliä. Osoita, että löytyy sellainen jono peräkkäisiä päiviä, jolloin hän pelaa täsmälleen 15 peliä. 18
Verkkoteoria 110. Kuinka monta (olennaisesti) erilaista nelisolmuista yksinkertaista verkkoa löydät? Miten verkot poikkeavat toisistaan? 111. Osoita, että täydellisessä n:n solmun verkossa on n(n 1) 2 väliä käyttämällä tulosta, jonka mukaan verkon solmujen asteiden summa on kaksi kertaa välien lukumäärä. 112. Jos yksinkertaisessa viiden solmun verkossa on 4 väliä, kuinka monta väliä on verkon komplementissa? Yleistä tapaukseen, jossa yksinkertaisessa n:n solmun verkossa on m väliä, kuinka monta väliä tällöin on verkon komplementissa? 113. Piirrä verkko, jonka vierusmatriisi on (a) 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 (b) 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 1 1 0 114. Osoita, että Kuvassa 1 kohdan (a) verkot ja kohdan (b) verkot ovat isomorset. 115. * Sinulle on annettu kaksitoista samannäköistä rahaa, joista täsmälleen yksi on väärennös; se on eripainoinen kuin muut. Tasavarsivaakaa (3 asentoa) käyttäen etsi tämä väärennös määritä onko se toisia rahoja painavampi vai kevyempi. Montako punnitusta tarvitaan? Piirrä vastaava juurellinen puu. 116. Osoita, että Kuvassa 2 kohdan (a) verkot ja kohdan (b) verkot eivät ole isomorset. 117. (a) Piirrä Kuvan 3 verkon G komplementti G c ja osoita, että G ja G c ovat isomorset. (b) Voiko yksinkertainen kuuden solmun verkko olla isomornen komplementtinsa kanssa? Perustelut. 118. Onko Kuvan 4 verkoissa Eulerin polkua tai Eulerin piiriä? Perustelut. 119. * Onko Kuvan 4 verkoissa Hamiltonin polkua tai Hamiltonin piiriä? Perustelut. 19
A C B B A C D E (a) D E A B C A B C D D E F E F (b) Kuva 1: Isomorset verkot 20
A D B B A C C E (a) D E A B A B C D C D E F E F (b) Kuva 2: Epäisomorset verkot C B D A E Kuva 3: Verkon ja sen komplementin isomora 21
(a) (b) (c) (d) Kuva 4: 22