{"id":2777,"date":"2026-04-01T15:22:45","date_gmt":"2026-04-01T12:22:45","guid":{"rendered":"https:\/\/blog.edu.turku.fi\/allu\/?page_id=2777"},"modified":"2026-04-01T16:52:56","modified_gmt":"2026-04-01T13:52:56","slug":"yo-tehtavat","status":"publish","type":"page","link":"https:\/\/blog.edu.turku.fi\/allu\/sivu-1\/yo-tehtavat\/","title":{"rendered":"YO-teht\u00e4v\u00e4t"},"content":{"rendered":"\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-black-color has-text-color has-background has-link-color wp-element-button\" href=\"https:\/\/blog.edu.turku.fi\/allu\/sivu-1\/\" style=\"background-color:#d6d6ff\">Palaa takaisin<\/a><\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Matematiikka<\/p>\n\n\n\n<p>Teht\u00e4v\u00e4 1. Ison luvun jaollisuus S2023, B1<\/p>\n\n\n\n<p>a) M\u00e4\u00e4rit\u00e4 suurin luku k \u2208 N, jolle 1023 \u2261 -1 (mod 2^k). 3p.<\/p>\n\n\n\n<p>b) Todista, ett\u00e4 2^12345678910 -1 on jaollinen luvulla 1023. 9p.<\/p>\n\n\n\n<div data-wp-context=\"{ &quot;autoclose&quot;: false, &quot;accordionItems&quot;: [] }\" data-wp-interactive=\"core\/accordion\" role=\"group\" class=\"wp-block-accordion is-layout-flow wp-block-accordion-is-layout-flow\">\n<div data-wp-class--is-open=\"state.isOpen\" data-wp-context=\"{ &quot;id&quot;: &quot;accordion-item-1&quot;, &quot;openByDefault&quot;: false }\" data-wp-init=\"callbacks.initAccordionItems\" data-wp-on-window--hashchange=\"callbacks.hashChange\" class=\"wp-block-accordion-item is-layout-flow wp-block-accordion-item-is-layout-flow\">\n<h3 class=\"wp-block-accordion-heading has-black-color has-text-color has-background has-link-color has-medium-font-size wp-elements-ed6e16bdc7dbeea6c30febe1443151fa\" style=\"background-color:#d6d6ff\"><button aria-expanded=\"false\" aria-controls=\"accordion-item-1-panel\" data-wp-bind--aria-expanded=\"state.isOpen\" data-wp-on--click=\"actions.toggle\" data-wp-on--keydown=\"actions.handleKeyDown\" id=\"accordion-item-1\" type=\"button\" class=\"wp-block-accordion-heading__toggle\"><span class=\"wp-block-accordion-heading__toggle-title\">Vastaus<\/span><span class=\"wp-block-accordion-heading__toggle-icon\" aria-hidden=\"true\">+<\/span><\/button><\/h3>\n\n\n\n<div inert aria-labelledby=\"accordion-item-1\" data-wp-bind--inert=\"!state.isOpen\" id=\"accordion-item-1-panel\" role=\"region\" class=\"wp-block-accordion-panel is-layout-flow wp-block-accordion-panel-is-layout-flow\">\n<p>Hyv\u00e4n vastauksen piirteet:<\/p>\n\n\n\n<p>Annettu ehto on yht\u00e4pit\u00e4v\u00e4 sen kanssa, ett\u00e4 1023 + 1 \u2261 0 (mod 2^k) TAI 1024 \u2261 0 (mod 2^k). 1 p.<br>riippumaton Koska 1024 = 2^10, niin kongruenssi toteutuu, kun k = 10. 1 p.<br>Perusteltu, miksi k = 10 on suurin mahdollinen luvun k arvo. (esimerkiksi 1024\/2^k ei ole kokonaisluku, kun k <em>\u2265&nbsp;<\/em> 11.) 1 p.<br>Osateht\u00e4v\u00e4kohtaiset erillisohjeet<br>Siirrytty kongruenssista yht\u00e4l\u00f6\u00f6n 1024 = 2^k ilman selityst\u00e4 -1 p.<br>riippumaton 2^x &#8211; 1 on jaollinen luvulla 1023 t\u00e4sm\u00e4lleen silloin, kun 2^x&nbsp; \u2261 1 (mod 1023) TAI 2^x &#8211; 1 \u2261 0 (mod 1023).<br>Koska 2^10 \u2261 1 (mod 1023), niin 2^12345678910 = (2^10)^1234567891 \u2261 1^1234567891 = 1 (mod 1023).<br>(2 p.\/yht\u00e4suuruus tai kongruenssi)<br><br>Osateht\u00e4v\u00e4kohtaiset erillisohjeet<br>Ohjelmointiratkaisu mahdollinen.<\/p>\n\n\n\n<p>Hyv\u00e4n vastauksen kuva:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"634\" src=\"https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/jaollisuus_2023-1024x634.png\" alt=\"\" class=\"wp-image-2781\" srcset=\"https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/jaollisuus_2023-1024x634.png 1024w, https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/jaollisuus_2023-300x186.png 300w, https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/jaollisuus_2023-768x475.png 768w, https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/jaollisuus_2023.png 1037w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p>Teht\u00e4v\u00e4 2. Eukleideen algoritmi S2025, B1<\/p>\n\n\n\n<p>M\u00e4\u00e4rit\u00e4 Eukleideen algoritmilla lukujen 121110987654321 ja 123456789101112 suurin yhteinen tekij\u00e4. Voit k\u00e4ytt\u00e4\u00e4 ohjelmistoa, kunhan algoritmin v\u00e4livaiheet n\u00e4kyv\u00e4t ratkaisussa.<\/p>\n\n\n\n<div data-wp-context=\"{ &quot;autoclose&quot;: false, &quot;accordionItems&quot;: [] }\" data-wp-interactive=\"core\/accordion\" role=\"group\" class=\"wp-block-accordion is-layout-flow wp-block-accordion-is-layout-flow\">\n<div data-wp-class--is-open=\"state.isOpen\" data-wp-context=\"{ &quot;id&quot;: &quot;accordion-item-2&quot;, &quot;openByDefault&quot;: false }\" data-wp-init=\"callbacks.initAccordionItems\" data-wp-on-window--hashchange=\"callbacks.hashChange\" class=\"wp-block-accordion-item is-layout-flow wp-block-accordion-item-is-layout-flow\">\n<h3 class=\"wp-block-accordion-heading has-black-color has-text-color has-background has-link-color has-medium-font-size wp-elements-ed6e16bdc7dbeea6c30febe1443151fa\" style=\"background-color:#d6d6ff\"><button aria-expanded=\"false\" aria-controls=\"accordion-item-2-panel\" data-wp-bind--aria-expanded=\"state.isOpen\" data-wp-on--click=\"actions.toggle\" data-wp-on--keydown=\"actions.handleKeyDown\" id=\"accordion-item-2\" type=\"button\" class=\"wp-block-accordion-heading__toggle\"><span class=\"wp-block-accordion-heading__toggle-title\">Vastaus<\/span><span class=\"wp-block-accordion-heading__toggle-icon\" aria-hidden=\"true\">+<\/span><\/button><\/h3>\n\n\n\n<div inert aria-labelledby=\"accordion-item-2\" data-wp-bind--inert=\"!state.isOpen\" id=\"accordion-item-2-panel\" role=\"region\" class=\"wp-block-accordion-panel is-layout-flow wp-block-accordion-panel-is-layout-flow\">\n<p>Hyv\u00e4n vastauksen piirteet:<\/p>\n\n\n\n<p>Teht\u00e4v\u00e4n voi ratkaista esimerkiksi k\u00e4sin tai Pythonilla tai taulukkolaskennalla.<br>Laskettu oikeiden lukujen osam\u00e4\u00e4r\u00e4 TAI l\u00f6ydetty oikea kerroin (q1 = 1). (1 p.)<br>L\u00f6ydetty oikea jakoj\u00e4\u00e4nn\u00f6s (r1 = 2345801446791). (2 p.)<br>Jatkettu vastaavasti. (1 p.)<br>Ensimm\u00e4iset kaksi jakoj\u00e4\u00e4nn\u00f6st\u00e4 oikein (B2\u2013B3). (2 p.)<br>N\u00e4kyviss\u00e4 rivi, josta voi p\u00e4\u00e4tell\u00e4 vastauksen. (2 p.)<br>Johtop\u00e4\u00e4t\u00f6ksen\u00e4: Suurin yhteinen tekij\u00e4 on siis 3. (2 p.)<br>Laskut dokumentoitu: kaikki laskut (a = q_nb+r_n) n\u00e4kyviss\u00e4 TAI kaikki (mod)\/remain-rivit n\u00e4kyviss\u00e4 TAI<br>taulukkolaskennassa solujen kaavat n\u00e4kyviss\u00e4. (2 p.)<br><\/p>\n\n\n\n<p>T\u00e4h\u00e4n ratkaisuun liittyv\u00e4t erillisohjeet:<br>Pienet lasku- ja kopiointivirheet rivist\u00e4 5 alkaen (-1 p.\/virhe)<br>Jos virheet lyhent\u00e4v\u00e4t ratkaisua 5\/10\/15 rivi\u00e4, niin lis\u00e4ksi v\u00e4hennys [-1\/2\/3 p.]<br>Pienet laskuvirheet eiv\u00e4t nollaa Johtop\u00e4\u00e4t\u00f6ksen\u00e4-rivin pisteit\u00e4.<br>Pelkk\u00e4 taulukko\/luvut ilman komentoja tai laskuja, ei dokumentoitu TAI ei kaikkia laskuja n\u00e4kyviss\u00e4. (1+2+1+2+2+2+0)<br>(max 10 p.)<br>Osam\u00e4\u00e4ri\u00e4 ei laskettu eli q = 1 jokaisessa askeleessa. (1+2+1+0+0+0+0+0). (max 4 p.)<br>Jaettu alkuper\u00e4iset luvut kolmella, laskut oikein, saatu suurin yhteinen tekij\u00e4 kerrotaan kolmella. (max 12 p.)<\/p>\n\n\n\n<p>TAI Koodiratkaisu<\/p>\n\n\n\n<p><br>Esitetty koodi ohjelmointikielell\u00e4, miss\u00e4:<br>Koodissa ensimm\u00e4iset luvut on alustettu algoritmiin oikein. (1 p.)<br>Koodi laskee seuraavat luvut oikein ja ne sijoitetaan muuttujiin oikein. (2 p.)<br>Koodissa on iteraatioehto oikein. (3 p.)<br>Koodi tulostaa lopussa oikean muuttujan arvon TAI algoritmin kaikki v\u00e4livaiheet jossakin muodossa (esimerkiksi<br>jakoj\u00e4\u00e4nn\u00f6kset). (1 p.)<br>Ratkaisussa n\u00e4kyy kokonainen ajettava koodi (esimerkiksi kuvakaappaus). (2 p.)<br>Ratkaisussa n\u00e4kyy rivin 4 mukainen oikea tuloste. (1 p.)<br>Suurin yhteinen tekij\u00e4 on siis (2 p.)<br>T\u00e4h\u00e4n teht\u00e4v\u00e4\u00e4n liittyv\u00e4t erillisohjeet<br>Pelk\u00e4t laskut (selityksi\u00e4 ei vaadita) TAI oikea Python-koodi ja tuloste. (max 12 p.)<br>K\u00e4ytetty syt-komentoa laskimessa tai math.gcd Pythonissa. (+0 p.)<br>Ratkaisu pythonilla<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Koodi:\n\na=123456789101112\nb=121110987654321\nwhile(b&gt;0):\n    c=a-(a\/\/b)*b\n    a=b\n    b=c\nprint(a)<\/code><\/pre>\n\n\n\n<p>V\u00e4livaiheet tulostava ratkaisu pythonilla:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Koodi v\u00e4livaihein:\n\na=123456789101112\nb=121110987654321\nwhile(b&gt;0):\n    c=a%b\n    q=a\/\/b\n    print(f'{a} = {q} * {b} + {c}')\n    a=b\n    b=c\nprint(f'suurin yhteinen tekij\u00e4 on {a}')<\/code><\/pre>\n\n\n\n<p>Ratkaisut n\u00e4ytt\u00f6kuvina, ensin perinteinen ratkaisu, sitten Python-ratkaisut ja lis\u00e4ksi taulukkolaskennalla saatu ratkaisu.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"832\" height=\"690\" src=\"https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/eukleides_s2025_1.png\" alt=\"\" class=\"wp-image-2782\" srcset=\"https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/eukleides_s2025_1.png 832w, https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/eukleides_s2025_1-300x249.png 300w, https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/eukleides_s2025_1-768x637.png 768w\" sizes=\"auto, (max-width: 832px) 100vw, 832px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"793\" height=\"1004\" src=\"https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/eukleides_s2025_2.png\" alt=\"\" class=\"wp-image-2783\" srcset=\"https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/eukleides_s2025_2.png 793w, https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/eukleides_s2025_2-237x300.png 237w, https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/eukleides_s2025_2-768x972.png 768w\" sizes=\"auto, (max-width: 793px) 100vw, 793px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"638\" height=\"646\" src=\"https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/excelratkaisu.png\" alt=\"\" class=\"wp-image-2784\" srcset=\"https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/excelratkaisu.png 638w, https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/excelratkaisu-296x300.png 296w\" sizes=\"auto, (max-width: 638px) 100vw, 638px\" \/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p>Teht\u00e4v\u00e4 3. Eukleideen algoritmi K2025, A<\/p>\n\n\n\n<p>M\u00e4\u00e4rit\u00e4 Eukleideen algoritmilla lukujen 5322 ja 342 suurin yhteinen tekij\u00e4.<\/p>\n\n\n\n<div data-wp-context=\"{ &quot;autoclose&quot;: false, &quot;accordionItems&quot;: [] }\" data-wp-interactive=\"core\/accordion\" role=\"group\" class=\"wp-block-accordion is-layout-flow wp-block-accordion-is-layout-flow\">\n<div data-wp-class--is-open=\"state.isOpen\" data-wp-context=\"{ &quot;id&quot;: &quot;accordion-item-3&quot;, &quot;openByDefault&quot;: false }\" data-wp-init=\"callbacks.initAccordionItems\" data-wp-on-window--hashchange=\"callbacks.hashChange\" class=\"wp-block-accordion-item is-layout-flow wp-block-accordion-item-is-layout-flow\">\n<h3 class=\"wp-block-accordion-heading has-black-color has-text-color has-background has-link-color has-medium-font-size wp-elements-ed6e16bdc7dbeea6c30febe1443151fa\" style=\"background-color:#d6d6ff\"><button aria-expanded=\"false\" aria-controls=\"accordion-item-3-panel\" data-wp-bind--aria-expanded=\"state.isOpen\" data-wp-on--click=\"actions.toggle\" data-wp-on--keydown=\"actions.handleKeyDown\" id=\"accordion-item-3\" type=\"button\" class=\"wp-block-accordion-heading__toggle\"><span class=\"wp-block-accordion-heading__toggle-title\">Vastaus<\/span><span class=\"wp-block-accordion-heading__toggle-icon\" aria-hidden=\"true\">+<\/span><\/button><\/h3>\n\n\n\n<div inert aria-labelledby=\"accordion-item-3\" data-wp-bind--inert=\"!state.isOpen\" id=\"accordion-item-3-panel\" role=\"region\" class=\"wp-block-accordion-panel is-layout-flow wp-block-accordion-panel-is-layout-flow\">\n<p>Hyv\u00e4n vastauksen piirteet<\/p>\n\n\n\n<p>Laskettu 5322\/342 ~ 15,6 TAI 5322 = 15*342 + r1 TAI idea 5322 = q1 *342 + r1 [1 p.]<br>5322 = 15 * 342 + 192 TAI 5322 \u2261 192 (mod 342). (2 p.)<br>Jatketaan samaa luvuille 342 ja 192. [1 p.]<br>342 = 1 * 192 + 150 TAI 342 \u2261 150 (mod 192). (1 p.)<br>192 = 1 * 150 + 42 TAI 192 \u2261 42 (mod 150). (1 p.)<br>150 = 3 * 42 + 24 TAI 150 \u2261 24 (mod 42). (1 p.)<br>42 = 1 * 24 + 18 TAI 42 \u2261 18 (mod 24). (1 p.)<br>24 = 1 * 18 + 6 TAI 24 \u2261 6 (mod 18). (1 p.)<br>18 = 3 * 6(+0) TAI 18 \u2261 0 (mod 6). (1 p.)<br>Vastattu suurimpana yhteisen\u00e4 tekij\u00e4n\u00e4 omasta laskusta viimeinen nollasta eroava jakoj\u00e4\u00e4nn\u00f6s. (1 p.)<br>Suurin yhteinen tekij\u00e4 on siis t\u00e4sm\u00e4lleen 6. (1 p.)<br><br>Teht\u00e4v\u00e4kohtaiset erillisohjeet<br>Alkupiste: Perusteltu oikea vastaus esimerkiksi SpeedCrunchin gcd komennolla tai pythonin math.gcd &#8211;<br>komennolla. \/ L\u00f6ydetty kaikki alkutekij\u00e4t tai kaikki positiiviset tekij\u00e4t. (1 p.)<br>N\u00e4ytetty vain, ett\u00e4 6 on yhteinen tekij\u00e4. (0 p.)<br>Laskuvirhett\u00e4 kohden v\u00e4hennet\u00e4\u00e4n 1 p. (ja lis\u00e4ksi vastausrivilt\u00e4), ja lis\u00e4ksi tehd\u00e4\u00e4n v\u00e4hennys, jos virheen<br>seurauksena algoritmissa on<br>1 rivi v\u00e4hemm\u00e4n (-0 p.)<br>2\u20133 rivi\u00e4 v\u00e4hemm\u00e4n (-1 p.)<br>4\u2013 rivi\u00e4 v\u00e4hemm\u00e4n (-3 p.)<\/p>\n\n\n\n<p>Hyv\u00e4n vastauksen kuva<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"745\" height=\"721\" src=\"https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/eukleides_k2025.png\" alt=\"\" class=\"wp-image-2785\" srcset=\"https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/eukleides_k2025.png 745w, https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/eukleides_k2025-300x290.png 300w\" sizes=\"auto, (max-width: 745px) 100vw, 745px\" \/><\/figure>\n\n\n\n<p><\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p>Teht\u00e4v\u00e4 4. Collatzin lukujono<\/p>\n\n\n\n<p><em>Collatzin jono<\/em> on rekursiivinen lukujono, jonka j\u00e4senet ovat positiivisia kokonaislukuja. Jonon seuraava j\u00e4sen a_n+1 saadaan edellisest\u00e4 j\u00e4senest\u00e4 a_n seuraavalla tavalla:<br>&#8211; Jos a_n on parillinen, niin a_n+1 = 1\/2 a_n<br>&#8211; Jos a_n on pariton ja suurempi kuin 1, niin a_n+1 = 3a_n + 1<br>&#8211; Jos a_n = 1 niin jono p\u00e4\u00e4ttyy.<br>Esimerkiksi luvusta a1 = 20 alkava Collatzin jono on 20, 10, 5, 16, 8, 4, 2, 1. Saksalainen Lothar Collatz esitti vuonna 1937 konjektuurin (eli v\u00e4itt\u00e4m\u00e4n, jota ei kyennyt todistamaan), jonka mukaan mist\u00e4 tahansa alkuarvosta alkava Collatzin jono on \u00e4\u00e4rellinen. T\u00e4h\u00e4n p\u00e4iv\u00e4\u00e4n menness\u00e4 kukaan ei ole kyennyt todistamaan sit\u00e4 oikeaksi tai v\u00e4\u00e4r\u00e4ksi.<br><br>a) M\u00e4\u00e4rit\u00e4 Collatzin lukujono alkuarvolla a1 = 23. (3 p.)<br>b) Selvit\u00e4 ohjelmiston avulla, mik\u00e4 alkuarvo v\u00e4lill\u00e4 2-100 johtaa pisimp\u00e4\u00e4n Collatzin jonoon. Voit kirjoittaa koodisi esimerkiksi Pythonilla tai taulukkolaskentaohjelmalla. Anna vastauksena koodisi, koodin selitys ja taulukko, jossa n\u00e4kyv\u00e4t ainakin ne alkuarvot, jotka tuottavat viisi pisint\u00e4 jonoa, sek\u00e4 n\u00e4iden jonojen pituudet. (9 p.)<\/p>\n\n\n\n<div data-wp-context=\"{ &quot;autoclose&quot;: false, &quot;accordionItems&quot;: [] }\" data-wp-interactive=\"core\/accordion\" role=\"group\" class=\"wp-block-accordion is-layout-flow wp-block-accordion-is-layout-flow\">\n<div data-wp-class--is-open=\"state.isOpen\" data-wp-context=\"{ &quot;id&quot;: &quot;accordion-item-4&quot;, &quot;openByDefault&quot;: false }\" data-wp-init=\"callbacks.initAccordionItems\" data-wp-on-window--hashchange=\"callbacks.hashChange\" class=\"wp-block-accordion-item is-layout-flow wp-block-accordion-item-is-layout-flow\">\n<h3 class=\"wp-block-accordion-heading has-black-color has-text-color has-background has-link-color has-medium-font-size wp-elements-ed6e16bdc7dbeea6c30febe1443151fa\" style=\"background-color:#d6d6ff\"><button aria-expanded=\"false\" aria-controls=\"accordion-item-4-panel\" data-wp-bind--aria-expanded=\"state.isOpen\" data-wp-on--click=\"actions.toggle\" data-wp-on--keydown=\"actions.handleKeyDown\" id=\"accordion-item-4\" type=\"button\" class=\"wp-block-accordion-heading__toggle\"><span class=\"wp-block-accordion-heading__toggle-title\">Vastaus<\/span><span class=\"wp-block-accordion-heading__toggle-icon\" aria-hidden=\"true\">+<\/span><\/button><\/h3>\n\n\n\n<div inert aria-labelledby=\"accordion-item-4\" data-wp-bind--inert=\"!state.isOpen\" id=\"accordion-item-4-panel\" role=\"region\" class=\"wp-block-accordion-panel is-layout-flow wp-block-accordion-panel-is-layout-flow\">\n<p>Hyv\u00e4n vastauksen piirteet<\/p>\n\n\n\n<p>a) 23&nbsp;\u2192 3 * 23&nbsp;+ 1 = 70&nbsp;\u2192&nbsp;70\/2 = 35 \u2192&nbsp;106 \u2192&nbsp;53 \u2192&nbsp;160 \u2192&nbsp;80 \u2192&nbsp;40 \u2192&nbsp;20 \u2192&nbsp;10&nbsp;\u2192&nbsp;5 \u2192&nbsp;16 \u2192&nbsp;8 \u2192&nbsp;4 \u2192&nbsp;2 \u2192&nbsp;1 (3 p.)<br>b) Ohjelmakoodin voi toteuttaa esimerkiksi seuraavasti: M\u00e4\u00e4ritet\u00e4\u00e4n ensin vektori pituudet, joka laskee v\u00e4livaiheiden m\u00e4\u00e4r\u00e4\u00e4. T\u00e4m\u00e4n j\u00e4lkeen jokaisella 2 <em>\u2264<\/em> l <em>\u2264<\/em> 100 lasketaan siit\u00e4 l\u00e4htev\u00e4 jono, ja joka kierroksella kasvatetaan pituuden arvoa yhdell\u00e4. T\u00e4m\u00e4 tehd\u00e4\u00e4n while-silmukassa. Silmukka py\u00f6rii, kunnes lukujonon arvoksi tulee 1.<br>Lopulta tulostetaan kaikki ne pituudet ja lukujen l arvot, joilla jonossa on yli 100 v\u00e4livaihetta. (2 p.)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Koodi:\n\nimport math\npituudet = &#091;0 for k in range(0, 101)]\nfor l in range(2, 101):\n    s = l\n    while s &gt; 1:\n        if s % 2 == 0:\n            s = s \/ 2\n        else:\n            s = 3 * s + 1\n        pituudet&#091;l] = pituudet&#091;l]+1\nfor l in range(2, 101):\n    if pituudet&#091;l] &gt; 100:\n        print(l, pituudet&#091;l])<\/code><\/pre>\n\n\n\n<p>(3 p.)<\/p>\n\n\n\n<p>Hyv\u00e4n vastauksen kuvat<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"857\" height=\"505\" src=\"https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/collatz_k2026.png\" alt=\"\" class=\"wp-image-2786\" srcset=\"https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/collatz_k2026.png 857w, https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/collatz_k2026-300x177.png 300w, https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/collatz_k2026-768x453.png 768w\" sizes=\"auto, (max-width: 857px) 100vw, 857px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"797\" height=\"609\" src=\"https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/collatz_k2026_2.png\" alt=\"\" class=\"wp-image-2787\" srcset=\"https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/collatz_k2026_2.png 797w, https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/collatz_k2026_2-300x229.png 300w, https:\/\/blog.edu.turku.fi\/allu\/files\/2026\/04\/collatz_k2026_2-768x587.png 768w\" sizes=\"auto, (max-width: 797px) 100vw, 797px\" \/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p>Teht\u00e4v\u00e4 5. Integraalialgoritmi<\/p>\n\n\n\n<p>Tekstiss\u00e4 XX on esitetty pseudokoodilla kirjoitettu algoritmi.<br>1. Mink\u00e4 tuloksen algorimi antaa, kun a = 0, b = 1 ja n = 5?&nbsp;&nbsp; <strong>(2 p.)<\/strong><br>2. Tee taulukkolaskenta- tai ohjelmointitoteutus algoritmille, kun a = -1,&nbsp; a B=-&nbsp; b=2b = 2 ja n = 100. =1000. Mink\u00e4 tuloksen se t\u00e4ss\u00e4 tapauksessa antaa? <strong>(4&nbsp;p.)<\/strong><br>3.&nbsp; Mit\u00e4 integraalia algoritmi approksimoi? Selit\u00e4 muuttujien a, b, n, h, r, k ja f roolit algoritmissa. <strong>(6&nbsp;p.)<\/strong><\/p>\n\n\n\n<div data-wp-context=\"{ &quot;autoclose&quot;: false, &quot;accordionItems&quot;: [] }\" data-wp-interactive=\"core\/accordion\" role=\"group\" class=\"wp-block-accordion is-layout-flow wp-block-accordion-is-layout-flow\">\n<div data-wp-class--is-open=\"state.isOpen\" data-wp-context=\"{ &quot;id&quot;: &quot;accordion-item-5&quot;, &quot;openByDefault&quot;: false }\" data-wp-init=\"callbacks.initAccordionItems\" data-wp-on-window--hashchange=\"callbacks.hashChange\" class=\"wp-block-accordion-item is-layout-flow wp-block-accordion-item-is-layout-flow\">\n<h3 class=\"wp-block-accordion-heading has-black-color has-text-color has-background has-link-color has-medium-font-size wp-elements-ed6e16bdc7dbeea6c30febe1443151fa\" style=\"background-color:#d6d6ff\"><button aria-expanded=\"false\" aria-controls=\"accordion-item-5-panel\" data-wp-bind--aria-expanded=\"state.isOpen\" data-wp-on--click=\"actions.toggle\" data-wp-on--keydown=\"actions.handleKeyDown\" id=\"accordion-item-5\" type=\"button\" class=\"wp-block-accordion-heading__toggle\"><span class=\"wp-block-accordion-heading__toggle-title\">Vastaus<\/span><span class=\"wp-block-accordion-heading__toggle-icon\" aria-hidden=\"true\">+<\/span><\/button><\/h3>\n\n\n\n<div inert aria-labelledby=\"accordion-item-5\" data-wp-bind--inert=\"!state.isOpen\" id=\"accordion-item-5-panel\" role=\"region\" class=\"wp-block-accordion-panel is-layout-flow wp-block-accordion-panel-is-layout-flow\">\n<pre class=\"wp-block-code\"><code>Pseudokoodi:\n\nintegraali(a, b, n):\n  h = (b-a)\/n\n  r = 0\n  toista arvoilla k = 1, 2, ..., n\n    f = (a+k*h)^2 + 1\n    r = r + f*h\n  palauta r<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p>Teht\u00e4v\u00e4 6. Ohjelmakoodi ja tekij\u00e4t<\/p>\n\n\n\n<p>Papu yritti selvitt\u00e4\u00e4 positiivisen kokonaisluvun alkutekij\u00e4t. T\u00e4h\u00e4n tarkoitukseen h\u00e4n kirjoitti Python-koodin, joka on esitetty oheisessa koodikent\u00e4ss\u00e4. Koodissa #-merkki\u00e4 seuraava teksti on kommentti, joka ei vaikuta ohjelman toimintaan. Papu ajoi ohjelman muuttujan n eri alkuarvoilla. H\u00e4n huomasi, ett\u00e4 toisinaan ohjelma toimi virheett\u00f6m\u00e4sti ja tulosti luvun n alkutekij\u00e4t, toisinaan se tulosti muitakin lukuja.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Koodi:\n\nn=x                         # korvaa x tutkittavalla luvulla\nm=n\nwhile n&gt;1:                  #toista niin kauan kuin n&gt;1\n    for a in range(2,m+1):  # a k\u00e4y l\u00e4pi arvot 2, 3,..., m\n        if n%a==0:          # jos n modulo a on nolla\n            print(a)        # tulosta luvun a arvo\n            n=n\/a<\/code><\/pre>\n\n\n\n<p>a) ja b) -kohtien vastauksista t\u00e4ytyy ilmet\u00e4 k\u00e4ytetty alkuarvo ja ohjelman tuloste.<\/p>\n\n\n\n<p>a) Anna esimerkki luvun n alkuarvosta, jolle ohjelma tulostaa listan, joka sis\u00e4lt\u00e4\u00e4 vain luvun n alkutekij\u00f6it\u00e4. <strong>(3\u00a0p.)<\/strong><\/p>\n\n\n\n<p>b) Anna esimerkki luvun n alkuarvosta, jolle ohjelma tulostaa muitakin kuin luvun n alkutekij\u00f6it\u00e4. <strong>(3\u00a0p.)<\/strong><\/p>\n\n\n\n<p>c) Selit\u00e4, miksi ohjelma ei aina toimi niin kuin Papu oli tarkoittanut. <strong>(6\u00a0p.)<\/strong><\/p>\n\n\n\n<p>Huomaa, ett\u00e4 teht\u00e4v\u00e4ss\u00e4 annettua ohjelmakoodia voi ajaa koeymp\u00e4rist\u00f6n ohjeiden Ohjelmointi-v\u00e4lilehdell\u00e4. Siell\u00e4 on my\u00f6s Python-kielen k\u00e4skyjen selityksi\u00e4.<\/p>\n\n\n\n<div data-wp-context=\"{ &quot;autoclose&quot;: false, &quot;accordionItems&quot;: [] }\" data-wp-interactive=\"core\/accordion\" role=\"group\" class=\"wp-block-accordion is-layout-flow wp-block-accordion-is-layout-flow\">\n<div data-wp-class--is-open=\"state.isOpen\" data-wp-context=\"{ &quot;id&quot;: &quot;accordion-item-6&quot;, &quot;openByDefault&quot;: false }\" data-wp-init=\"callbacks.initAccordionItems\" data-wp-on-window--hashchange=\"callbacks.hashChange\" class=\"wp-block-accordion-item is-layout-flow wp-block-accordion-item-is-layout-flow\">\n<h3 class=\"wp-block-accordion-heading has-black-color has-text-color has-background has-link-color has-medium-font-size wp-elements-ed6e16bdc7dbeea6c30febe1443151fa\" style=\"background-color:#d6d6ff\"><button aria-expanded=\"false\" aria-controls=\"accordion-item-6-panel\" data-wp-bind--aria-expanded=\"state.isOpen\" data-wp-on--click=\"actions.toggle\" data-wp-on--keydown=\"actions.handleKeyDown\" id=\"accordion-item-6\" type=\"button\" class=\"wp-block-accordion-heading__toggle\"><span class=\"wp-block-accordion-heading__toggle-title\">Vastaus<\/span><span class=\"wp-block-accordion-heading__toggle-icon\" aria-hidden=\"true\">+<\/span><\/button><\/h3>\n\n\n\n<div inert aria-labelledby=\"accordion-item-6\" data-wp-bind--inert=\"!state.isOpen\" id=\"accordion-item-6-panel\" role=\"region\" class=\"wp-block-accordion-panel is-layout-flow wp-block-accordion-panel-is-layout-flow\">\n<p>Hyv\u00e4n vastauksen piirteet:<\/p>\n\n\n\n<p>Ohjelma tuottaa oikean tulosteen esimerkiksi arvolla x = 35, sill\u00e4 t\u00e4ll\u00f6in se tulostaa luvut 5 ja 7. (3 p.)<br>Ohjelma ei tuota oikea tulostetta esimerkiksi arvolla x = 16, sill\u00e4 t\u00e4ll\u00f6in se tulostaa luvut 2, 4 ja 2. Luku 4 ei ole luvun 16 alkutekij\u00e4. (3 p.)<br>Pistejako: Yleinen selitys ongelmasta 3 pistett\u00e4, ja perustelu sille, miksi n\u00e4in joskus k\u00e4y (esim. esimerkin<br>avulla) 3 pistett\u00e4. (6 p.)<\/p>\n\n\n\n<p>Esimerkki kuuden pisteen vastauksesta:<br>Ohjelman for-rakenteen sis\u00e4ll\u00e4 tulostetaan kaikki ne luvut a1 &lt; a2 &lt; \u2026, jotka toteuttavat ehdot n\/a1 , n\/a1a2 , \u2026 on kokonaisluku. Miss\u00e4\u00e4n ei ole kontrollia sille, onko l\u00f6ydetty luku a_i alkuluku. Jos esimerkiksi n\/a1 on jaollinen jollain luvulla, joka on suurempi kuin a1, mutta pienempi kuin seuraava alkuluku, jolla n\/a1 on jaollinen, niin a2 ei ole alkuluku. N\u00e4in k\u00e4y esimerkiksi luvun 16 kanssa, sill\u00e4 t\u00e4ll\u00f6in ensin l\u00f6ydet\u00e4\u00e4n alkutekij\u00e4 2. Sitten tarkastellaan lukua 16\/2 = 8, jolle 2:ta suurempi pienin tekij\u00e4 on 4, eli ohjelma tulostaa sen seuraavaksi.<\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Matematiikka Teht\u00e4v\u00e4 1. Ison luvun jaollisuus S2023, B1 a) M\u00e4\u00e4rit\u00e4 suurin luku k \u2208 N, jolle 1023 \u2261 -1 (mod 2^k). 3p. b) Todista, ett\u00e4 2^12345678910 -1 on jaollinen luvulla 1023. 9p. Teht\u00e4v\u00e4 2. Eukleideen algoritmi S2025, B1 M\u00e4\u00e4rit\u00e4 Eukleideen<\/p>\n","protected":false},"author":3743,"featured_media":0,"parent":4,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2777","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/pages\/2777","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/users\/3743"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/comments?post=2777"}],"version-history":[{"count":5,"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/pages\/2777\/revisions"}],"predecessor-version":[{"id":2806,"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/pages\/2777\/revisions\/2806"}],"up":[{"embeddable":true,"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/pages\/4"}],"wp:attachment":[{"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/media?parent=2777"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}