Diskreetin ateatiikan perusteet Esierkkiratkaisut 5 / vko 1 Tuntitehtävät 51-5 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 55-56 loppuviikon harjoituksissa. Kotitehtävät 53-54 tarkastetaan loppuviikon harjoituksissa. Kotitehtävät 57-59 tulee palauttaa seuraavan alkuviikon harjoituksiin paperilla tai pdf-uodossa kurssin MyCourses-sivuille tiistaihin klo 16.00 ennessä. Saa kellonaika on yös viikoittaisten verkkotehtävien dl, joskin verkkotehtävät kannattaa tehdä ennen palautettavia kotitehtäviä. Haastetehtävä on vapaaehtoinen lisätehtävä. Sen voi halutessaan palauttaa MyCoursesiin ti klo 16 ennessä luennoitsijan tarkastettavaksi. Alkuviikko: kobinatoriikka, jaollisuus Tuntitehtävä 51: Määritä Eukleideen algoritilla lukujen 16 ja 35 suurin yhteinen tekijä ja sen esitys lukujen 16 ja 35 lineaarikobinaationa. Kertaa tarvittaessa Eukleideen algoriti ensin vaikkapa Wikipediasta. Eukleideen algoritia käyttäen 16 3 35 + 1 35 1 1 + 14 1 1 14 + 7 14 7 + 0 saae suuriaksi yhteiseksi tekijäksi 7. Kootaan luvun 7 lineaarikobinaatio kulkealla saat yhtälöt alhaalta ylös: 7 1 14 1 (35 1) 1 35 (16 3 35) 35 16 7 35 Tuntitehtävä 5: Olkoon annettuna seitseän eri positiivista kokonaislukua. Miksi niiden joukosta löytyy kaksi lukua, joiden sua tai erotus on kyenellä jaollinen? (Voit käyttää tietoa: jos luku loppuu nollaan, se on kyenellä jaollinen.) Kahden kokonaisluvun sua on jaollinen kyenellä jos viieisten lukujen sua on jaollinen kyenellä. Esierkiksi 434 + 6 on jaollinen kyenellä, koska 4 + 6 on jaollinen 1
kyenellä. Saa tapahtuu erotuksilla. Eli riittää tutkia vain näiden lukujen viieisiä nueroita. Jos A {a 1,, a 7 } on joukko, jossa on 7 eri kokonaislukua, erkitään viieisten nueroiden joukkoa sybolilla I {n 1, n,, n 7 }. Tutkitaan kahta ahdollista tapausta: i) Seitseän luvun joukko A sisältää kaksi sellaista lukua, joiden viieinen nuero on saa. Tällöin näiden kahden erotus on kyenellä jaollinen. ii) Seitseän luvun joukko A ei sisällä kahta sellaista lukua, joiden viieinen nuero on saa. Toisin sanoen, joukko I sisältää 7 eri alkiota. Määritellään joukot A 0 {0} A 1 {1, 9} A {, 8} A 3 {3, 7} A 4 {4, 6} A 5 {5}. Nähdään, että joukkojen A 1,..., A 4 alkioiden sua on 10. Lisäksi joukko I sisältää vähintään 5 alkiota joukoista A 1, A, A 3, A 4. Laatikkoperiaatteen ukaan I sisältää oleat alkiot jostain joukosta A 1, A, A 3, tai A 4. Toisin sanoen A i I jollekin i 1,, 3, 4. Eli löytyy kaksi alkiota, joiden sua on 10. Kotitehtävä 53: Kuinka onta suorakuliota on n-kokoisella shakkilaudalla? Esierkiksi -kokoisella laudalla on yhdeksän suorakuliota. Tarkista vastauksesi laskealla ahdollisten suorakulioiden äärä 3 3-kokoisella shakkilaudalla. Tapa 1: Ajatellaan, että n-laudan leveys on ruutua ja korkeus n ruutua, eli ainitaan aina leveys ensin. Olkoon x, y N, issä x ja y n. Tällöin x y kokoisen suorakulion voi asettaa n-kokoiselle laudalle N(x, y) : ( x + 1)(n y + 1) tavalla (x-levyisen ja y- korkuisen suorakulion vasen reuna voi olla ( x + 1) eri pystyrivillä ja alareuna (n y + 1) eri vaakarivillä). Suorakulioiden kokonaisäärä saadaan suaaalla eri kokoiset yhteen: ( ) ( ) 1 ( x + 1) (n y + 1) x1 y1 ( x1 y1 ) ( x + n x1 ) ( + ( + ( ) ( ) + n + n 1 4 ( + )(n + n). ) y + n y1 n n + n ) + n
Tapa : Jokaisella suorakuliolla on vasen reuna ja oikea reuna, eli valitaan leveyssuunnan ruutuun jakavista + 1 reunaviivasta kaksi. Jokaisella suorakuliolla on ylä- ja alalaita, joten valitaan korkeussuunnan n ruutuun jakavista n + 1 reunaviivasta saoin kaksi. Eri vaihtoehtoja suorakulioiksi ja siis suorakulioiden kokonaisääräksi saadaan näin ollen ( )( ) + 1 n + 1 Tarkistus: 3 3-laudalle ahtuu ( + 1)! (n + 1)!!( 1)!!(n 1)! 9 eri kohtaan 1 1-suorakulio ( + 1)n(n + 1) 4 1 4 ( + )(n + n). 1-suorakulio kullekin riville kahteen kohtaan, eli yhteensä 6 kohtaan. Saoin 1 - suorakulio sopii 6 eri kohtaan -suorakulio neljään kohtaan 3 1-suorakulio ja 1 3-suorakulio kupikin koleen kohtaan 3 -suorakulio ja 3-suorakulio kupikin kahteen kohtaan 3 3-suorakulio täsälleen yhdellä tavalla Yhteensä 9+6+6+4+3+3+++1 36. Tarkistetaan: 1 4 (3 +3)(3 +3) 1 4 1 3 1 36. Kotitehtävä 54: On oleassa n k erilaista k-pituista erkkijonoa, jossa erkit valitaan joukosta {1,,..., n}. Jos k n, niin onessako eri jonossa esiintyy kaikki n erkkiä? Ratkaise käyttäen seulayhtälöä. Merkitään x n k, joka on kaikkien k-pituisten erkkijonojen äärä. Vastaus saadaan vähentäällä tästä äärästä kaikki k-pituiset erkkijonot, joista puuttuu yksikin käytössä olevista erkeistä {1,,..., n}. Merkitään A i :lla sitä k-pituisten erkkijonojen joukkoa, jossa ei ole käytetty erkkiä i. Joukon A i erkkijonot voidaan uodostaa n 1:stä erkistä, joten A i (n 1) k. Saoin voidaan laskea tälläisten joukkojen leikkausten koko: joukko A i A j, jossa i j, koostuu erkkijonoista, joissa ei ole käytetty kupaakaan erkkiä i tai j. Tään joukon erkkijonot siis uodostetaan (n ):sta erkistä, joten A i A j (n ) k. Saalla tavalla voidaan päätellä kaikkien leikkauksien koot: jos B on joukon {1,..., n} osajoukko, jolle B, on i B A i (n ) k. Joukko k-pituisista erkkijonoista, joista puuttuu vähintään yksi käytössä olevista erkeistä on A 1 A... A n. Tään joukon koon ratkaiseiseksi tarvitaan seulayhtälöä. Ratkaistaan ensin S, kun uistetaan, että n-kokoisesta joukosta löytyy -kokoisia osajoukkoja ( n ) kappaletta. 3
S B i B A i B (n ) k (n ) k Tää voidaan sijoittaa seulayhtälöön, jolloin ratkaisuksi saadaan x A 1... A n n k ( 1) 1 S n k ( 1) 1 (n ) k 1 1 n k + ( 1) (n ) k ( 1) (n ) k. 1 Jossa ensin on vaihdettu suan erkki (huoaa 1:sen potenssin uutos) ja lopuksi huoattu, että teri n k saadaan suan indeksillä 0. 0 Loppuviikko: odulaariaritetiikka Tuntitehtävä 55: Tenttivalvojan professori Luupäälle palkanaksua varten toiittaassa henkilötietoloakkeessa henkilötunnus oli kirjoitettu hyvin suttuisesti, toisesta nuerosta ei saanut selvää. Tiedetään vain, että tunnus on uotoa x1189 31W. Mikä nuero x on? Vihje: Tarkistuserkki W tarkoittaa, että kun tarkistuserkkiä edeltävien nueroiden uodostaa luku jaetaan luvulla 31, niin jakojäännös on 8. Kysyyksen löytyy tietenkin ratkaisu kokeilealla, utta nyt on tarkoitus uodostaa yhtälö, josta voi ratkaista x:n. Voit käyttää hyväksi tietoa, että 01 189 31 3 od 31, 10 000 000 0 od 31 ja [0] 1 31 [14] 31. Koska voie kirjoittaa luvun x1 189 31 uodossa 01 189 31 + x 10 000 000 niin saae yhtälön [8] 31 [01 189 31 + x 10 000 000] 31 [01 189 31] 31 + [x] 31 [10 000 000] 31. Annettujen tietojen perusteella tiedäe, että [01 189 31] 31 [3] 31 ja [10 000 000] 31 [0] 31 joten yhtälöksi tulee [8] 31 [3] 31 + [x] 31 [0] 31, ja saae ratkaisuksi [x] 31 [0] 1 31 [8 3] 31 [14] 31 [5] 31 [350] 31 [9] 31, josta seuraa, että x 9, koska x {0, 1,..., 9}. 4
Tuntitehtävä 56: a) Määrittele kokonaisluvun a Z käänteisluku odulo, issä Z +. b) Miten a-kohdan käänteisluku lasketaan, jos syt(a, ) 1? c) Etsi luvun 7 käänteisluku odulo 19. d) Miten käänteisluvun avulla ratkaistaan kongruenssiyhtälö ax b (od ), jos syt(a, ) 1? e) Ratkaise kongruenssiyhtälö 7x 13 (od 19). a) Alkion a Z käänteisalkio od on sellainen alkio b {0, 1,..., 1}, jolle ab 1 ( od ). b) Esitetään 1 alkioiden a ja lineaarikobinaationa saalla tapaa kuin tuntitehtävässä 31. Tää voidaan tehdä Eukleideen algoritin avulla. Nyt 1 xa+y xa (od ), eli x on etsiäe käänteisalkio. Mikäli x ei kuulu joukkoon {0,..., 1}, voidaan tulosta siirtää lisääällä tai vähentäällä sopivasti lukua. c) Euklideen algoriti: 19 7 + 5 7 5 + 5 + 1 1 5 5 (7 5) 3 5 7 3 (19 7) 7 3 19 8 7 Eli luvun 7 käänteisluku od 19 on sen kerroin 8. Haluae kuitenkin luvun joukosta {0,..., 18}, ja koska 8 11 (od 19), on vastaus 11. d) Kerrotaan oleat puolet a:n käänteisalkiolla (jonka löytäisen kuvailie kohdassa b), jolloin saadaan a 1 ax a 1 b( od ) x a 1 b( od ). e) Kerrotaan yhtälön oleat puolet luvun 7 käänteisalkiolla od 19, eli luvulla 11: 11 7x 11 13( od 19) 77x 143( od 19) x 10 Kotitehtävä 57: a) Etsi jäännösluokkarenkaan Z 1 kääntyvät alkiot ja niiden käänteisalkiot. b) Ratkaise x, kun 7x 3 od 1 tai perustele, iksi ratkaisua ei ole. a) Alkiot, joiden suurin yhteinen tekijä luvun 1 kanssa on 1, ovat kääntyviä, eli 1,5,7,11. Näiden käänteisalkiot (saassa järjestyksessä) ovat 1,5,7,11 eli luvut itse. Se nähdään esi. kertolaskutaulukosta tai vain kokeilealla, ikä kääntyvistä alkiosta kerrottuna toisella kääntyvällä alkiolla antaa arvoksi 1 od 1. 5
b) 7x 3 od 1 7 1 7x 7 1 3 od 1 7 7x 7 3 od 1 eli vastaus on x 9 od 1. 1 x 1 od 1 Kotitehtävä 58: Jos lasketaan od (13 1, 9) ja od (13, 9) Matlabilla (versio R017a) niin tulokset ovat 7 ja 4. a) Miksi oleat eivät voi olla oikein? b) Mistä virhe johtuu? a) Jos od (13 1, 9) 7, niin od (13, 9) od (7 13, 9) od (91, 9) 1 4 ja tästä nähdään että joko od (13 1, 9) 7 tai od (13, 9) 4 (tosiasiassa ne ovat 1 ja 4 eli jälkiäinen sattuu oleaan oikein). b) Virhe johtuu siitä, että Matlab käyttää laskeiseen liukulukuja, joiden tarkkuus on äärellinen. Se laskee ensin 13 1 tai 13, pyöristää luvut, ja sitten vasta laskee jakojäännöksen. Pyöristyksen takia jakojäännös ei välttäättä ene oikein. Kotitehtävä 59: Selvitä auki lasketun luvun 3 018 viieinen nuero sekä luvun 7 018 kaksi viieistä nueroa. Luvun 3 018 viieinen nuero saadaan laskealla 3 018 Tiedetään, että 9 od 10 1, joten Tästä seuraa 3 018 3 ( 1009) (3 ) 1009 9 1009. 9 1009 ( 1) 1009 1 od 10. 3 018 1 9 od 10, joten viieinen nuero on 9. Luvun 7 018 kaksi viieistä nueroa saadaan selville laskealla 7 018 7 4 401, eli 7 4 1 od 100, joten koska saadaan 7 018 7 7 4 504 49 (7 4 ) 504, 7 018 49 (7 4 ) 504 49 1 504 49 od 100, joten luvun 7 018 toiseksi viieinen nuero on 4 ja viieinen 9. 6 od 10. Nyt od 100. Huoataan, että
Haastetehtävä 60: a) Selvitä, ikä on kiinalainen jäännöslause (Chinese reainder theore). b) Ratkaise yhtälöryhä x 1 (od 3) x 4 (od 5). x 6 (od 7) Jos käytät ratkaisussasi kiinalaista jäännöslausetta, todista se ensin. Verkkotehtävät 5: Muistathan yös verkkotehtävät! Viides tehtäväsarja sulkeutuu ti 7.3. klo 16.00. 7