Edellispäivänä esittelin vuosilukukilpailun päättyvälle vuodelle. Kilpailun tavoitteena on muodostaa luvut yhdestä sataan käyttäen vuosiluvussa 2018 esiintyviä numeroita sekä peruslaskutoimitusten lisäksi joukkoa matemaattisia funktioita. Vaikka säännöt olivat melko väljät, jäi sadan luvun listalta lopulta yksi luku muodostamatta. Sääntöjen puitteissa luku 67 näyttäisi nimittäin olevan sen verran haasteellinen, ettei sitä tahdo pystyä muodostamaan annetuilla sääntötyökaluilla. Jonkin aikaa pyörittelin erilaisia ratkaisumalleja, kunnes jouduin lopulta toteamaan tämän luvun mahdottomaksi. Tänä vuonna luvut syntyivät suhteellisen helposti kahdessa illassa ja vain muutamia lukuja jouduin pohtimaan hieman pidempään.
Kilpailun sääntöjen mukaan sama luku voidaan ratkaista kuitenkin useilla eri tavoilla. Esimerkiksi luku 38 on esitettävissä lausekkeena 8 / .2 - 0! - 1, joka ensi alkuun näyttää turhan monimutkaiselta etenkin, kun saman luvun voi ilmaista myös lausekkeella 20 + 18, joka on jo huomattavasti yksinkertaisempi. Jälkimmäinen ratkaisumalli ei tosin ole kovin elegantti, koska siinä numerot 2 ja 0 sekä 1 ja 8 on yhdistetty. Ensiksi esitetyssä ratkaisussa tosin numerojen järjestys on vaihdettu, kun niitä vertaa vuosiluvun 2018 numerojen järjestykseen. Säännöt tosin sallivat tämänkaltaisen yhdistelyn ja järjestelyn. Mielestäni edellä esitetty monimutkaisempi ratkaisu kunnioittaa enemmän kilpailun henkeä, koska siinä kaikki numerot ovat itsenäisiä, vaikkakin lopputuloksena on hieman sotkuisen näköinen lauseke. Jälkimmäisen ratkaisun numerojen järjestys puolestaan kunnioittaa sääntöjen henkeä säilyttää numerot alkuperäisessä järjestyksessä. Vastausten pisteytys ei välttämättä ole helppoa. Etusijalla ovat ratkaisut, joissa numerot ovat vuosiluvun numerojen järjestyksessä. Toisaalta mitä yksinkertaisempi lauseke on, sitä paremmat pisteet se saa.
Esittelen tässä alla ratkaisuehdotukseni. Tarkistin ratkaisuni taulukkolaskentaohjelmalla, jossa muodostin kysytyn numeron kehittelemälläni lausekkeella. Käyttämässäni englanninkielisessä Google Docs -taulukkolaskentasovelluksessa kertomafunktiona käytin FACT()-funktiota. Kaksoiskertomaa (!!) varten sovelluksesta löytyy FACTDOUBLE()-funktio. Neliöjuurta varten käytin SQRT()-funktiota ja potenssiin korotin POW()-funktiolla. Potenssiin korotus on merkitty lausekkeissani ^-merkillä. Vastaavat funktiot löytyvät myös suositusta Excel-taulukkolaskentaohjelmasta. Ratkaisuilleni löytyy varmasti vieläkin yksinkertaisempia muotoja, mutta nämä ratkaisut ovat ne ensimmäiset, jotka tulivat mieleeni. Lisää erilaisia ratkaisumalleja löytyy The Math Forum -sivuston vuosilukukilpailun vastaussivulta.
Vuosilukukilpailun 2018 ratkaisuja
1 = 2 * 0 + 1^8 2 = 2 + 0 * 1 * 8 3 = 2 + 0 + 1^8 4 = 2 + 0! + 1^8 5 = -2 - 0 - 1 + 8 6 = -2 + 0 * 1 + 8 7 = 2 * 0 - 1 + 8 8 = 2 * 0 * 1 + 8 9 = 2 * 0 + 1 + 8 10 = 2 + 0 * 1 + 8 11 = 2 + 0 + 1 + 8 12 = 2 + 0! + 1 + 8 13 = (2 + 0!)! - 1 + 8 14 = (2 + 0 + 1)! + 8 15 = (2 + 0!)! + 1 + 8 16 = (2 + 0 * 1) * 8 17 = (2 + 0) * 8 + 1 18 = 2 * 8 + 0! + 1 19 = 2 / .1 - 8^0 20 = 2 / .1 + 0 * 8 21 = 2 / .1 + 8^0 22 = -0! - 1 + (8 / 2)! 23 = 0 - 1 + (8 / 2)! 24 = 0 * 1 + (8 / 2)! 25 = 0 + 1 + (8 / 2)! 26 = 0! + 1 + (8 / 2)! 27 = (2 + 0!) * (1 + 8) 28 = 2 / .1 + 0 + 8 29 = 2 / .1 + 0! + 8 30 = (-0! - 1 + 8) / .2 31 = 8!! / 12 - 0! 32 = (2 + 0! + 1) * 8 33 = .2^(-0! - 1) + 8 34 = (8 - 0!) / .2 - 1 35 = SQRT(SQRT(.2^ - 8)) + 0! / .1 36 = (8 - 0! - 1)^2 37 = 2 * 18 + 0! 38 = 8 / .2 - 0! - 1 39 = 8 / .2 + 0 - 1 40 = ((2 + 0!)! - 1) * 8 41 = 8 / .2 + 0 + 1 42 = 8 / .2 + 0! + 1 43 = (SQRT(8 + 1)!)!! - (0! / .2) 44 = (8 + 1) / .2 - 0! 45 = (8 + 1) / .2 + 0 46 = (8 + 1) / .2 + 0! 47 = (2 + 0!)! * 8 - 1 48 = (2 + 0 + 1)! * 8 49 = (2 + 0!)! * 8 + 1 50 = (8 - 2 - 0!) / .1 51 = SQRT(SQRT(.1^(-8))) / 2 + 0! 52 = (2 + 0!)! / .1 - 8 53 = ((8 - 0!)!! + 1) / 2 54 = -0! / .1 + 8^2 55 = 8! / ((2 + 0!)!)! - 1 56 = ((2 + 0!)! + 1) * 8 57 = 8! / ((2 + 0!)!)! + 1 58 = 0! / .2 / .1 + 8 59 = (8 - 2) / .1 - 0! 60 = (8 - 2 - 0) / .1 61 = (8 - 2) / .1 + 0! 62 = -0! - 1 + 8^2 63 = 0 - 1 + 8^2 64 = 0 * 1 + 8^2 65 = 0 + 1 + 8^2 66 = 0! + 1 + 8^2 67 = 68 = (2 + 0!)! / .1 + 8 69 = SQRT((8 - 0!)! + 1) - 2 70 = SQRT((8 - 2)!! + 0!) / .1 71 = (8 - 2)! * .1 - 0! 72 = (8 - 2)! * .1 + 0 73 = (8 - 2)! * .1 + 0! 74 = 0! / .1 + 8^2 75 = 8 / .1 - 0! / .2 76 = 81 - 0! / .2 77 = 8 / .1 - 2 - 0! 78 = 8 / .1 - 2 - 0 79 = (8 / 2)!! / .1 - 0! 80 = -0! + (1 + 8)^2 81 = 0 + (1 + 8)^2 82 = 0! + (1 + 8)^2 83 = 2 + 0! + 8 / .1 84 = 81 + 2 + 0! 85 = 8 / .1 + (0! / .2) 86 = 8 / .1 - (2 + 0!)! 87 = 81 + (2 + 0!)! 88 = (SQRT(.1^(-2)) + 0!) * 8 89 = 18 / .2 - 0! 90 = (8 + 2^0) / .1 91 = .1^(-2) - 0! - 8 92 = .1^(-2) + 0 - 8 93 = .1^(-2) + 0! - 8 94 = SQRT(SQRT(.1^(-8))) - (2 - 0!)! 95 = (0! / .2)!! + 8 / .1 96 = (8 - 0! - 1)!! * 2 97 = SQRT(SQRT(.1^(-8))) - 2 - 0! 98 = SQRT(SQRT(.1^(-8))) - 2 - 0 99 = .1^(-2) - 8^0 100 = .1^(-2) + 0 * 8