Probleme interesante
Problemele interesante de pe pbinfo sau de pe alte site nu sunt explicate aprope deloc. Nu exista idea explicarii pe intelesul tuturor a unor algoritmi interesanti, optimizati si eficienti.
In activitatea de programator, munca de creare a unor algoritmi cat mai eficienti este din ce in ce mai ceruta si mai greu de realizat.
In general, unii se multumesc cu a livra doar „un algoritm” fara a-si pune problema, ulterior, daca acel algoritm nu poate fi scris mai bine.
Imi propun sa creez aici o succesiune de articole in care sa prezint algoritmi interesanti, idei de rezolvare mai deosebite. Intelegerea unui algoritm nu este destinata numai elevilor. Multi programatori care se inscriu la concursuri de IT nu cunosc algoritmi de baza pe care poate ii cunoaste un student de 14-16 ani pasionat de programare.
Ce inseamna o problema interesanta?
Problemele interesante pot aparea de la cele mai simple probleme pana la probleme complicate, cu un nivel de dificultate sporit.
Sunt algoritmi care la prima vedere par extrem de simpli sau foarte cunoscuti. Sunt probleme care curg usor la prima vedere dupa un algoritm. Sunt o combinatie de algoritmi cunoscuti si exersati de multe ori. Problema apare cand rezolvarea este expediata pe site cu evaluator automat si punctajul obtinut nu este cel maxim.
Atunci apar intrebarile:
Ce ar trebui sa fac altfel? Cum ar trebui sa reduc numarul de pasi pe care ii face algoritmul?
Tehnicile sunt multe. Se reduc numarul de bucle pe care algoritmul trebuie sa le urmeze, se reduc numarul de variabile daca se poate acest lucru, etc.
„Reteta” cea mai buna pare sa fie rescrierea completa a algoritmului pe o alta cale.
Solutia optima este obtinerea unei relatii matematice cat mai compacte – daca acest lucru este posibil si poata rezolva liniar problema.
Vorbesc aici despre idei generale nu particulare. Particular si practic, vom vedea pe exemplele prezentate aici si pe canalul de Youtube unde va astept sa va ABONATI!