Võistlusteemad * Algarvud Teatavasti nimetatakse algarvudeks arve, mis jaguvad vaid iseenese ja ühega. Tänapäeval kasutatakse neid mitmesuguste krüptoalgoritmide juures, kuid rakendusi leiab murdude taandamisel ja mujalgi. Gruppidele ülesanneteks: * Leida omakoostatud programmi abil võimalikult palju algarve alates algusest. Tulemus väljastada tekstifaili, üks arv real. * Võimalikud esitusviisid: koostada loodud arvude põhjal mitmesuguseid skeeme ja graafikuid, mis näitaksid algarvude jaotuse omadusi. Iga esituse juures põhjendada, millised selle head küljed on. * Kolm kappi Telemängus on kasutaja ees kolm suletud kappi, ühes neist paikneb auhind. Kasutaja valib ühe kapi. Järgnevalt teeb mängujuht lahti kapi ukse, mille taga ei ole auhinda. Kasutajal on õigus valitud kappi vahetada. * Koosta programm, kus mõttes paigutatakse aare juhuslikku kappi ning kasutaja avab juhusliku ukse. Teatatakse, kus oli auhind, millise ukse kasutaja avas, ning kas kasutaja leidis auhinna. * Lisaks eelmisele koosta programm, kus kasutaja valib kapi, mängujuht avab tühja kapi ning kasutaja vahetab valitud kapi. Teatatatakse, kus oli auhind, millise ukse valis kasutaja algul, millise avas mängujuht, millise kapi avas kasutaja lõpuks ning kas sealt leiti auhind. * Käivita kumbagi programmi sada korda ning leia, mitmel korral kummalgi juhul leiti auhind. * Leia katsete arv, kus vähemalt 90% juhtudest paistaks välja, milline valik on lahendajal kasulik teha. * Räsikood Räsikoodiks või sõnumilühendiks nimetatakse algandmete põhjal arvutatud väärtust, mille pikkus ei sõltu algandmetest, sisu aga muutub algandmete kasvõi väikesegi muutmise korral. Algandmete leidmine sõnumilühendi kaudu ei tohiks olla muul moel võimalik kui proovimise teel. Üheks levinud algoritmiks on MD5, mida saab rakendada näiteks PHP samanimelise funktsiooni abil. Gruppidele antakse mõistatada * Kahetäheline ühend. Selle punkti osas loetakse võitjaks grupp, kes täpse ühendi võimalikult ruttu leiab. * Ajakirjandusest leitud eestikeelne sõna. Samuti läheb arvesse esimene sõna leidja. * Pikem tekstilõik. Algne tekst: Avaldus. Soovime juhatuse tagasi astumist. eraldi kirjas teksti sõnumilühend. Püüa koostada tekst, mille algus oleks: Avaldus. Soovime juhatuse jätkamist. Järgnevat teksti koosta/kujunda/täienda nõnda, et selle sõnumilühendi algusest võimalikult palju baite oleks algse sõnumilühendiga samad ning ka tekst jätaks võimalikult tõetruu mulje. Ajavaru korral tasub proovida eraldi mõlemat võimalust: koostada võimalikult loetav tekst, mille sõnumilühendi vähemalt esimesed kaks tähte oleksid algsega samad; koostada tekst kus algsele teatele järgneva faili ilule rõhku ei pöörata, kuid kus oleks võimalikult pikk algus algse sõnumilühendiga sama. * Programmeerimiskeele loomine Programmeerimiskeeli leidub maailmas tuhandeid. Mõned neist kujutavad lihtsalt eritüübilise protsessori käsustikku, kuid päris mitmete rakendustarkvara pakettide juurde on loodud oma keel. Mõnel puhul saadakse hakkama olemasolevale keelele täienduste/teekide lisamisega. Teinekord aga osutub lihtsamaks oma käsustiku ja interpretaatori loomine. Loodud keeles on enamasti vajaliku oma rakenduse jaoks tarvilikud käsklused, üsna ruttu aga osutuvad vajalikuks ka alamprogrammid, tingimuslaused, kordused ning sisend-väljund. Siinseks ülesandeks on koostada interpretaator keelele, mille ülesandeks on inimestele ja gruppidele punktide andmine. Failides on kirjas inimeste nimed ning kellel kui palju punkte on. Samuti on eraldi failis kirjas gruppide nimed ning iga grupi juures kirjas kes sinna gruppi kuulub. Keeles realiseeritavad käsud: * Kasutajanimi ning taga punktide arv, palju talle lisada * Grupi nimi ning punktide arv, palju iga liikmele lisada * Kasutajanimi. Väljastatakse selle inimese punktide arv. Ajavaru korral: * Käskude loetelu, mis võiks punktide haldamisel veel kasuks tulla. * Tingimuslause: punkte lisada järgnevatele vaid juhul kui ... * Eksleja teekond Uuritakse, millest sõltub teekond juhuslikul liikumisel. Olgu siis tegemist eksinuga linnatänavail, uitajatega peosaalis, tasandil põrkavate kerakestega või gaasimolekulidega ruumis. Enamike nähtuste juures on võimalik koostada vähemalt mingilgi määral toimiv matemaatiline mudel, mille järgi hiljem võimalik tulevikus sarnaste süsteemide käitumist ennustada. Iga mudeli puhul tasub enne rakendamist uurida välja selle kehtivuse piirid ning eeldatava täpsuse. Siinsel korral on ülesandeks koostada mudel, mis püüab kirjeldada keha asukohta juhuslikul liikumisel sõltuvalt tehtud sammude arvust. Mudelini võib jõuda nii katsete kui arutluste teel. Kui mõlemal teel jõutakse ligikaudu samadele järeldustele, siis on juba rohkem loota, et koostatud mudel võiks usaldust äratada. Pole välistatud aga, et mõlemal juhul on tehtud samale poole kallutav viga ... Arutluse algandmetena tasuks luua tabel, kuis oleks kirjas * Keskmine kaugus sirgel 10, 100, 1000 viske järel. Sirgel juhuslikul liikumisel valitakse iga korra eel liikumise suund ning siis liigutakse selles suunas ühe sammu jagu. Valitakse taas suund ning liigutakse taas samm. Kuidas andmed saadakse, see on iga grupi oma otsustada. Kas kulli ja kirja visates, tabelarvutuse abil, omaloodud programmiga või mõnel muul moel. Ka 10, 100 ja 1000 ei ole kõrgemalt poolt määratud arvud. Kui õnnestub muude väärtuste kaudu parem seos koostada, siis miks ka mitte. Järgmisel tasandil tasuks arvutada * Kaugus tasandil 10, 100, 1000, 10000 korra järel. Ning edasi tuleks siis püüda kokku panna valem, mis näitaks * Kauguse sõltuvust kordade arvust Sõltuvust võiks näidata küllalt selgena * (Sobiv) graafik Ning nagu ikka mudelite koostamise puhul, nii ka siin tuleks läbi mõelda ja proovida * Arvutuse usaldusväärsus Saadud tulemuste järele siis koostab iga grupp esitluse ning kannab selle ette. Edasine selgub juba ühise arutelu käigus. 4. MADU 25 punkti 10 sekundit Koobastikku, kuhu on peidetud mingi hulk porgandeid, roomab lõpmatu pikkusega madu, kes tahab kõik need porgandid ära süüa ja siis koopast lahkuda. Leida maole sobiv liikumisplaan, kui on teada, et madu saab roomata ainult ühe ühiku kaupa edasi ja pöörata täisnurga all vasakule või paremale ning ei tohi põrgata kokku ei koopa seina ega iseendaga. Sisend. Tekstifaili MADU.SIS esimesel real on kaks täisarvu M ja N – koobastiku laius ja kõrgus (3M40, 3N20) ja järgmisel N real igaühel täpselt M sümbolit: koopa kaart, millel punkt tähistab käiku, hüüumärk porgandi asukohta ja trellimärk koopa seina. Koopa serval (veerus 1 või M või reas 1 või N) asuv mitteseinaruut on nii sisse- kui ka väljapääs. On teada, et koobastiku mistahes 3x3 blokis on vähemalt üks seinaruut. Väljund. Tekstifaili MADU.VAL esimesele reale väljastada selle sissepääsu koordinaadid, kust madu koopasse siseneb (kaardi vasaku alumise nurga koordinaadid on 1 1 ja parema ülemise nurga koordinaadid M N). Faili teisele reale väljastada roomamisplaan – jada sümbolitest N, S, E, W (vastavalt põhi, lõuna, ida, lääs). Mao pea peab läbima kõigi porgandite asukohad ja lõppseisus asuma koopa väljapääsul. Kui leidub mitu roomamisplaani, väljastada ükskõik milline neist. On teada, et leidub vähemalt üks edukas roomamisplaan. Näide. MADU.SIS MADU.VAL 5 4 2 1 ##### NNEESS #!.!# #.#.# #.#.#