Ketvirtas uždavinys: Hafmano kodai
|
Skaitytojas Tomas atsiuntė dar vieną uždavinį. Šįkart su Hafmano kodais. Uždavinys: Naudojant Hafmano (Huffman) kodus nupieškite medį. Atsakymus su sprendimais rašykite straipsnio komentaruose. Nepamirškite sudalyvauti konkurse! Naujus uždavinius talpinkite čia: Trečiojo uždavinio sprendimo aprašymas (pateikė uždavinio sumanytojas). Šiam uždaviniui prireiks kompiuterio pagalbos, dėl to jį ir parinkau. Mes esame informacinė visuomenė, naudojamės technologijomis ir šis uždavinys kaip tik yra tas, kuris yra pakankamai sudėtingas.
Uždavinio sprendimo etapai: 1. Reikia rasti n-tąjį narį (jis yra 15485867). Norint rasti n-tąjį pirminį skaičių, reikia visus skaičius iš eilės tikrinti, ar skaičius yra pirminis ar ne, t.y. pilnai perrinkti. Jei jis dalinasi tik iš savęs ir vieneto, vadinasi jis pirminis, jei dalinasi iš bet kokio kito sveiko skaičiaus - ne. Šitam skaičiui rasti galima pasinaudoti įvairiomis paieškomis, internete net galime rasti pirminių skaičių radimo programėlę. 2. Kai jau žinome n-tąjį narį, reikia sužinoti taip pat kiekvieną narį sekoje, kuris yra pirminis, taigi reikia kiekviena narį tikrinti ir pasižymėti, ar jis pirminis, ar ne. Žmogus niekaip negalės patikrinti visų skaičių, nes jų yra labai daug. Bet galima pasitelkti programavimo kalbas (kad ir excel makro komandą parašyti) ir per kelias sekundes gauti atsakymą. Vienas iš tokių pavyzdžių kaip pasirašyti excel funkciją yra čia. Išsirašius visą šią seką galime nesunkiai suskaičiuoti, kiek yra pirminių narių. 3. Kai turėsime pirminių narių skaičių, jį padalinę iš 15485867 ir padauginę iš 100 gausime 6.458% Konkurso taisykles rasite čia. | ||||||||
| ||||||||