infoarena

Comunitate - feedback, proiecte si distractie => Off topic => Subiect creat de: Alexandru Pana din Iunie 12, 2009, 10:13:40



Titlul: Ce este un algoritm?
Scris de: Alexandru Pana din Iunie 12, 2009, 10:13:40
Nu voi da citate de pe wiki, ci doar linkurile catre paginile din limba romana / engleza:

Romana: http://ro.wikipedia.org/wiki/Algoritm (http://ro.wikipedia.org/wiki/Algoritm)
Engleza: http://en.wikipedia.org/wiki/Algorithm (http://en.wikipedia.org/wiki/Algorithm)

Eu consider ca nu exista program ( de consola, cu GUI, applet sau script ) care sa nu fie algoritm, deoarece toate programele contin o succesiune de instructiuni ce se vor repeta finit pentru a rezolva o problema. Nu conteaza cat de practice, eficiente sau atractive visual sunt ele.

Voi ce spuneti ?


Titlul: Răspuns: Ce este un algoritm?
Scris de: Tataranu Vlad din Iunie 12, 2009, 10:19:59
Teoretic ai dreptate, practic, aia sunt algoritmi triviali care poate sa-i scrie orice tamplar.


Titlul: Răspuns: Ce este un algoritm?
Scris de: Alexandru Pana din Iunie 12, 2009, 10:40:13
Tot algoritmi se numesc. Si ceea ce face tamplarul cu un lemn se numeste algoritm. Definita algoritmului nu include o limita de complexitate.


Titlul: Răspuns: Ce este un algoritm?
Scris de: alexandru din Iunie 12, 2009, 11:38:29
Orice program  este construit pe baza unui algoritm .
Prin definitie un algoritm este o multime ordonta si finita pe pasi care prin executare dau un anumit rezultat la o anumita problema. Deci indiferent ce facem: adunam 2 numere, construim un nou os, ...etc mereum vom respecta sau construi un anumit algoritm  :D


Titlul: Răspuns: Ce este un algoritm?
Scris de: A Cosmina - vechi din Iunie 12, 2009, 14:19:22
Un algoritm reprezinta o succesiune de instructiuni care o data parcurse,duc la rezolvarea unei probleme.
Ma gandesc ca daca vrei sa faci orice fel de program,indiferenta ca iti verifica daca o matrice este simetrica fata de diagonala principala,sau ca iti afiseaza cate zile mai ai de trait, la baza lui sta neaparat un algoritm. Asa-i?  :)


Titlul: Răspuns: Ce este un algoritm?
Scris de: Alexandru Pana din Iunie 12, 2009, 17:30:23
Un algoritm reprezinta o succesiune de insructiuni care o data parcurse,duc la rezolvarea unei probleme.
Ma gandesc ca daca vrei sa faci orice fel de program,indiferenta ca iti verifica daca o matrice este dimetrica fata de diagonala principala,sau ca iti afiseaza cate zile mai ai de trait, la baza lui sta neaparat un algoritm. Asa-i?  :)

Exact asta sustin eu.


Titlul: Răspuns: Ce este un algoritm?
Scris de: alexandru din Iunie 12, 2009, 19:03:30
Exact asta sustin eu.
Asta toti am sustinut prin  mesajele postate anterior, eu is curios sa posteze cineva care sustine ca nu toate programele contin algoritmi , sa fie o diversitate :D


Titlul: Răspuns: Ce este un algoritm?
Scris de: A Cosmina - vechi din Iunie 12, 2009, 19:35:51
Un fel de polemica,a?  :weightlift:

Pai nu vad ce ar sta la baza unui program,inafra de un algoritm...


Titlul: Răspuns: Ce este un algoritm?
Scris de: Andrei Grigorean din Iunie 12, 2009, 20:09:29
Si cu programele facute sa ruleze la infinit ce faci?


Titlul: Răspuns: Ce este un algoritm?
Scris de: A Cosmina - vechi din Iunie 12, 2009, 20:24:46
Pai ma gandesc, ca un program sa fie bun trebuie mai intai sa aiba un algoritm facut bine,cu temei. Care sa faca ceva ! Ca nu poti sa numesti algoritm,ceva care iti ruleaza acelasi lucru la infinit,gen:

Cod:
i=2
do
   {
    cout<<"buna!";
    i++;
   }
while (i>0)


Sau gresesc?


Titlul: Răspuns: Ce este un algoritm?
Scris de: Sima Cotizo din Iunie 12, 2009, 20:37:34
Eu consider ca nu exista program ( de consola, cu GUI, applet sau script ) care sa nu fie algoritm [...] Nu conteaza cat de practice, eficiente sau atractive visual sunt ele.

Pai ma gandesc, ca un program sa fie bun trebuie mai intai sa aiba un algoritm facut bine,cu temei. Care sa faca ceva !

Si reamintesc din alt topic ca, dupa Alexandru Pana, si cartofii ii prajesti dupa un algoritm, ca si painea s.a.

Mi se pare mie sau nu va puneti de acord?

PS: iti dai seama ca exista programe facute sa ruleze la infinit si care chiar fac ceva. Bineinteles, nu trebuie neaparat ca acel program sa-ti returneze un raspuns la sfarsit.


Titlul: Răspuns: Ce este un algoritm?
Scris de: Andrei Misarca din Iunie 12, 2009, 20:51:57
Wefgef banui ca se referea la programele utile facute sa ruleze la infinit care folosesc diversi algoritmi (gen antivirusi, cred). Si chiar si programul tau reprezinta un algoritm(afisarea + incrementarea) facut sa se repete de o infinitate de ori.

Oricum, putem face teoria algoritmului la infinit (inca un algoritm care ruleaza la infinit :D ), pentru ca e interpretabila.

@sima_cotizo: Alex are dreptate, cartofii se prajesc dupa un algoritm (si inca unul foarte popular :D ), dar cum ziceam, putem dezbate la infinit chestia asta :)


Titlul: Răspuns: Ce este un algoritm?
Scris de: A Cosmina - vechi din Iunie 12, 2009, 21:04:20
Pai ca sa fie un algoritm,nu trebuie sa -mi dea un rezultat.Daca o problema imi cere un rezultat,eu construiesc algoritumul care sa-i dea acel rezultat.Daca nu am fost atenta si am creat ceva care ruleaza for ever,se cheama ca ma facut un algoritm,dar unul prost. Dar programul meu tot pe un algoritm sta.
Eu zic ca totul se face cu un anumit algoritm,pentru un anumit rezultat.Chiar si cartofii prajiti,chiar si buclele infinite.Tot la un rezultat ajung,in ambele situatii.La cartofii prajiti,obtin mancarea,la bucla infinita obtin o rulare infinita si niste nervi.

*Sa nu luam discutia in mod personal,aici doar ne sustinem parerile. :wink:


Titlul: Răspuns: Ce este un algoritm?
Scris de: Alexandru Pana din Iunie 12, 2009, 21:34:50
PS: iti dai seama ca exista programe facute sa ruleze la infinit si care chiar fac ceva. Bineinteles, nu trebuie neaparat ca acel program sa-ti returneze un raspuns la sfarsit.

Da, "finitatea" intra in definita algoritmului. Nu stiu nici un program care ruleaza la infinit, adica fara sfarsit. Intr-adevar, daca exista, el nu este un algoritm. Daca te referi la programe care contin loopuri infinite si care totusi contin o metoda de terminare ( un antivirus care scaneaza in permanenta poate fi inchis / terminat ), sunt destul de sigur ca ele au un return 0 in main pentru a te informa ca au terminat cu succes atunci cand tu le termini.

Si cu programele facute sa ruleze la infinit ce faci?

Pai, stiu un exemplu de program "facut sa ruleze la inifit": un joc. Acesta contine un loop infinit ( fiecare fps ). Dar iti dai seama ca la un moment dat dai quit si opresti programul. Si acest 'event' se afla undeva in algoritm, permitand utilizatorului sa opreasca programul.

Imi poti da exemplu de un program care intr-adevar ruleaza la infinit?

P.S.: sper ca aici nu mai e off-topic, dar eu am deschis initial subiectul pe topicul evaluatorului, program care nu este facut sa ruleze la infinit, si totusi autorul sustine ca nu a scris "algoritmica". Acolo era vorba despre "application development" si "algoritmica", nu despre programe care ruleaza la infinit.


Eu zic ca totul se face cu un anumit algoritm,pentru un anumit rezultat.Chiar si cartofii prajiti,chiar si buclele infinite.Tot la un rezultat ajung,in ambele situatii.La cartofii prajiti,obtin mancarea,la bucla infinita obtin o rulare infinita si niste nervi.

Nu vreau sa fac diferenta dintre un algoritm si un program buguit ( care pe unele cazuri greseste sau ruleaza la infinit, nerespectand regulile unui algoritm ). Ci dintre 2 programe corecte.


Titlul: Răspuns: Ce este un algoritm?
Scris de: Sanduleac Dan din Iunie 12, 2009, 22:31:16
Wow, sunt mirat ca din ce am zis a iesit un intreg flame war. Nu am citit definitia de pe wiki a algoritmului inainte sa postez, insa nu mi se pare ca am gresit in ce am zis.
Here's why:
Cand m-am referit la algoritm (si implicit la algoritmica) ma refeream la un procedeu, o idee, care rezolva o problema generala, deci care este utilizabil in situatii variate (eu unul asa il vad). Nu am auzit pe nimeni sa se refere la cazul trivial de a afisa "Hello world!" pe ecran, drept "algoritmul de implementare a primului tau program intr-un anumit limbaj".
Algoritmul lui Dijkstra este de fapt implementarea (sau optimizarea) lui Dijkstra a "algoritmului care gaseste cea mai mica distanta de la un nod la altele", iar acest algoritm are aplicatii in mai multe zone. Cel mai simplu exemplu ar fi Google Maps, care il utilizeaza ca sa gaseasca cel mai scurt drum intre doua orase, sau GPS-ul. Insa dupa cum stim, sunt tone de probleme de informatica care nu cer explicit "cea mai mica distanta de la un nod la altul", dar a caror rezolvare necesita folosirea acestui algoritm. Un exemplu este binecunoscutul algoritm de determinare a fluxului maxim de cost minim.
All in all, ma bucur ca am zis ce am zis, ca altfel cineva ar putea crede ca utilizez si algoritmul de prajit cartofi copti in aplicatia mea.


Titlul: Răspuns: Ce este un algoritm?
Scris de: A Cosmina - vechi din Iunie 12, 2009, 22:39:49
Adica :"peace is here,war had failed" ?  :peacefingers: Sunetm cu totii de acors,ca un program este implementarea unui algoritm?


#Dan, cartofii care sunt prajiti nu pot fi copti.  :)


Titlul: Răspuns: Ce este un algoritm?
Scris de: Florian Marcu din Iunie 12, 2009, 22:42:44
#Dan, cartofii care sunt prajiti nu pot fi copti.  :)
Eu zic ca pot fi copti. Deschide un sondaj sa vedem ce zic si ceilalti...  :D  :P


Titlul: Răspuns: Ce este un algoritm?
Scris de: Sima Cotizo din Iunie 12, 2009, 22:47:06
#Dan, cartofii care sunt prajiti nu pot fi copti.  :)

Depinde ce algoritm folosesti :D


Titlul: Răspuns: Ce este un algoritm?
Scris de: Andrei Misarca din Iunie 12, 2009, 22:50:13
Depinde ce algoritm folosesti :D

Nu prea poti aplica algoritmul de prajit algoritmului de copt, ca da overflow si se fac praf cartofii :D


Titlul: Răspuns: Ce este un algoritm?
Scris de: A Cosmina - vechi din Iunie 12, 2009, 22:51:47
Hey,aici discutam probleme serioase  :D.

Si oricum,aici nu ma poate contrazice nimeni, cartofii prajiti sunt mai buni decat cei fierti sau copti. Ok? :roll:


Titlul: Răspuns: Ce este un algoritm?
Scris de: Andrei Misarca din Iunie 12, 2009, 22:54:21
Mai buni da, dar mai sanatosi nu. :)

P.S : Discutia a devenit offtopic rau de tot


Titlul: Răspuns: Ce este un algoritm?
Scris de: Alexandru Pana din Iunie 12, 2009, 23:00:10
All in all, ma bucur ca am zis ce am zis, ca altfel cineva ar putea crede ca utilizez si algoritmul de prajit cartofi copti in aplicatia mea.
Ma indoiesc ca cineva va crede asa ceva.

Cand m-am referit la algoritm (si implicit la algoritmica) ma refeream la un procedeu, o idee, care rezolva o problema generala, deci care este utilizabil in situatii variate (eu unul asa il vad). Nu am auzit pe nimeni sa se refere la cazul trivial de a afisa "Hello world!" pe ecran, drept "algoritmul de implementare a primului tau program intr-un anumit limbaj".
Acum, de ce nu s-ar aplica termenul de algoritm aplicatiei tale? "Hello world" de ce nu ar fi un algoritm? Si inca ceva, tu cand vezi o definite, ai nevoie de cate o persoana care "sa se refere" la fiecare element din extensiunea termenului definit? ( aici am facut putin flame, dar subliniez prima intrebare ).

Deschide un sondaj sa vedem ce zic si ceilalti...  :D  :P
Pe el nu l-a dat nimeni afara sustinand ca e off-topic. Dar se pare ca tu ai fi.

Wow, sunt mirat ca din ce am zis a iesit un intreg flame war.
Am incercat prin exprimare cel putin sa nu iasa asa ceva. Se pare ca nu toti au avut aceeasi atitudine.

P.S : Discutia a devenit offtopic rau de tot
Unde este Sima Cotizo sa va stearga mesajele?  :angry:


Titlul: Răspuns: Ce este un algoritm?
Scris de: Andrei Misarca din Iunie 12, 2009, 23:14:18
Nu cred ca trebuie toata chestia asta transformata intr-un 'flame war'. Majoritatea lumii a postat la caterinca (cel putin asa mi s-a parut), si nu trebuie luata personal treaba asta :)


Titlul: Răspuns: Ce este un algoritm?
Scris de: Savin Tiberiu din Iunie 13, 2009, 03:52:00
Da, "finitatea" intra in definita algoritmului. Nu stiu nici un program care ruleaza la infinit, adica fara sfarsit. Intr-adevar, daca exista, el nu este un algoritm.

Hai sa iti dau un exemplu, evalul infoarena :). Odata la o secunda verifica daca s-a mai trimis sau nu o sursa noua, si daca da, atunci o ia pe cea mai veche care nu a fost evaluata inca si o proceseaza. Acest program (pentru ca aparent nu este  un algoritm) a fost conceput cu ideea de a rula la infinit (ca mai da el rateuri din cand in cand e altceva), dar el teoretic ar trebui sa ruleze la infinit.


Titlul: Răspuns: Ce este un algoritm?
Scris de: Alexandru Pana din Iunie 13, 2009, 09:14:20
Acest program (pentru ca aparent nu este  un algoritm) a fost conceput cu ideea de a rula la infinit (ca mai da el rateuri din cand in cand e altceva), dar el teoretic ar trebui sa ruleze la infinit.

Ok, am inteles. Sunt de acord, evaluatorul infoarena nu este un algoritm.


Titlul: Răspuns: Ce este un algoritm?
Scris de: Florian Marcu din Iunie 13, 2009, 09:50:01
Odata la o secunda verifica daca s-a mai trimis sau nu o sursa noua, si daca da, atunci o ia pe cea mai veche care nu a fost evaluata inca si o proceseaza.
Mie imi suna a algoritm. Algoritmul este tocmai sirul acela de instructiuni care se executa la pornirea programului, si inceteaza cu oprirea lui [ indiferent cum ]. Un program, ori de cate ori l-ai deschide, iti face mereu acelasi lucru [ chiar si cele randomizate ], pentru acelasi set de date de intrare. Ar fi o mica exceptie cu output-ul pt cele randomizate, insa instructiunea " aleg X random " confirma statutul de algoritm. Iata ce zice DEX (http://dexonline.ro/search.php?cuv=algoritm) - ul. Deci, eu sustin cu tarie: Programul este implementarea unui algoritm!  :)


Titlul: Răspuns: Ce este un algoritm?
Scris de: A Cosmina - vechi din Iunie 13, 2009, 09:54:08
That's my point too.


La urma urmei,evaluatorul de pe infoarena ca sa ruleze are nevoie de niste instructiuni (care se repeta la nesfarsit ).Ei bine,tocmai acele instructiuni reprezinta algoritmul... :wink:


Titlul: Răspuns: Ce este un algoritm?
Scris de: Alexandru Pana din Iunie 13, 2009, 11:00:38
Desi in cazul evaluatorului, acesta in sine nu este un algoritm, ceea ce el face la fiecare sursa verificata este un algoritm. Deci foloseste algoritmi, desi el in sine nu este unul.

Sunt totusi uimit ca domnul Sima Cotizo a avut tupeul sa mute topicul dupa ce el insusi a facut off-topic. Un moderator ar trebui sa aiba grija de forum, nu sa-si bata joc de topicuri.


Titlul: Răspuns: Ce este un algoritm?
Scris de: A Cosmina - vechi din Iunie 13, 2009, 11:11:19
Deci evaluatorul este o imbinare de algoritmi,dar nu un algoritm in sine? :-k Poti sa mai imi dai exemplu de un program ca asta?

Sau nu cumva, pentru a rula imbinarea acelor algoritmi,evaluatorul are nevoie de un algoritm,care sa stie pe care sa-l ruleze mai intai?


Titlul: Răspuns: Ce este un algoritm?
Scris de: Alexandru Pana din Iunie 13, 2009, 11:49:36
Un algoritm este un sir finit de instructiuni care rezolva o problema. El trebuie sa fie clar si general ( aceleasi surse, aceleasi rezultate ). Evaluatorul infoarena nu este un algoritm deoarece nu este finit. Dar functiile pe care le foloseste pentru a evalua o sursa, pentru a calcula scorul, etc. sunt finite. Ele sunt algoritmi.


Titlul: Răspuns: Ce este un algoritm?
Scris de: A Cosmina - vechi din Iunie 13, 2009, 12:18:28
Am priceput acum.  :wink:


Titlul: Răspuns: Ce este un algoritm?
Scris de: Florian Marcu din Iunie 13, 2009, 13:06:35
Sir finit de instructiuni != ruleaza la infinit. De exemplu

Citat
while(1)
{
 printf("Asta e algoritm!");
}

Algoritmul asta are 2 instructiuni, deci e sir finit. Dar programul ruleaza la infinit. Asadar, orice program reprezinta implementarea unui algoritm.  :) Inclusiv evaluatorul infoarena.
In plus, "clar si general" inseamna un algoritm bun. Unul neclar e tot algoritm, dar prost.

ps: Nu vad cum ai putea sa generezi un sir infinit de instructiuni, pe care sa-l si rulezi apoi.  :P


Titlul: Răspuns: Ce este un algoritm?
Scris de: Alexandru Pana din Iunie 13, 2009, 13:19:19
Sir finit de instructiuni != ruleaza la infinit. De exemplu

Citat
while(1)
{
 printf("Asta e algoritm!");
}

Algoritmul asta are 2 instructiuni, deci e sir finit. Dar programul ruleaza la infinit. Asadar, orice program reprezinta implementarea unui algoritm.  :) Inclusiv evaluatorul infoarena.

Umh.. good point.


Titlul: Răspuns: Ce este un algoritm?
Scris de: A Cosmina - vechi din Iunie 13, 2009, 13:50:35
Citat
Nu vad cum ai putea sa generezi un sir infinit de instructiuni, pe care sa-l si rulezi apoi.

Asa-i,m-am exprimat eu gresit.Ma refeream la faptul ca se intampla acelasi lucuru la infinit,fara vreun rezultat vizibil.

No ideea,am inteles ce ai vrut sa zici. :mrgreen:


Titlul: Răspuns: Ce este un algoritm?
Scris de: Andrei Grigorean din Iunie 13, 2009, 15:58:56
Citat
While there is no generally accepted formal definition of "algorithm", an informal definition could be "a process that performs some sequence of operations." For some people, a program is only an algorithm if it stops eventually. For others, a program is only an algorithm if it stops before a given number of calculation steps.

Cred ca orice definitie am da cuvantului "algoritm" am putea gasi in lumea reala aplicatii care sa nu se incadreze perfect in limitele acelei definitii.

Inteleg ca sunteti inflacarati si vreti sa demonstrati ca aveti dreptate, dar v-as sugera sa aveti mai multa grija la tonul pe care il folositi. :peacefingers: