Pagini: [1] 2 3   În jos
  Imprimă  
Ajutor Subiect: 006 Evaluarea unei expresii  (Citit de 33844 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« : Februarie 28, 2008, 16:54:55 »

Aici puteţi discuta despre problema Evaluarea unei expresii.
Memorat
blasterz
Nu mai tace
*****

Karma: 92
Deconectat Deconectat

Mesaje: 255



Vezi Profilul
« Răspunde #1 : Februarie 28, 2008, 17:56:17 »

" De asemenea, o a treia metoda este explicata pe larg in aceasta sursa de 100 puncte. "

Dar ce bine e explicata in sursa...
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #2 : Februarie 28, 2008, 18:02:13 »

Sursa aia chiar merge?  Surprised E prea tare.  Shocked
Memorat

Am zis Mr. Green
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #3 : Februarie 28, 2008, 18:04:27 »

Da, e sursa mea de 100. Initial nu voiam sa o pun pe asta la "explicate" dar am fost incurajat ca e "scurta si la obiect"... daca e nevoie am sa scriu si un comment cu o explicatie in ea si o retrimit Smile

PS: fisierele ok nu au fost generate cu acea sursa Tongue

LE : acum am adaugat si o sursa mai bine explicata, sper ca se intelege ideea de rezolvare.
« Ultima modificare: Februarie 28, 2008, 19:29:24 de către Sima Cotizo » Memorat
recviem
Client obisnuit
**

Karma: -26
Deconectat Deconectat

Mesaje: 62



Vezi Profilul
« Răspunde #4 : Martie 01, 2008, 21:24:52 »

Uhm .. sursa asta mie nu imi da pe nici un test.. nici macar 1+2.. iar daca pun o paranteza imi crapa mingw..

L.E. Pe OpenSUSE cu gcc 4.2.1 merge. Imi scapa ceva .. ?
« Ultima modificare: Martie 01, 2008, 21:48:06 de către Alexandru Pana » Memorat
astronomy
Nu mai tace
*****

Karma: 204
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #5 : Martie 01, 2008, 23:50:32 »

Da. Pe infoarena nu se foloseste mingw si este posibil ca sursa sa se comporte diferit pe diferite compilatoare.
Memorat
plastik
Strain


Karma: -3
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #6 : Martie 12, 2008, 17:36:53 »

Am nevoie de putin ajutor la ultimele doua teste.

Pe evaluator iau TLE la ele. Cand am dat si eu testele alea de la atasamente cu time, a mers in 0.107 la unul si 0.115 la al doilea. Are cineva idee cum sa modific sursa asa incat sa ia 100?

Eu fac evaluarea in alt mod, impartind expresia in 2 subexpresii cand intalnesc operanzi sau paranteze. Am luat 100 cu metoda asta la OJI-ul de anul trecut de la a 10-a cu directoare - fun times. Mi se pare foarte usor de inteles.

O pot optimiza cumva, sau trebuie sa invat evaluarea prin recursivitate indirecta? 
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #7 : Martie 12, 2008, 18:34:23 »

Tu ai complexitatea O(N^2) daca nu ma insel Confused... Ar fi bine sa te uiti pe sursele celorlati si sa inveti cum sa rezolvi problema in O(N) folosind recursivitate indirecta Smile.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
plastik
Strain


Karma: -3
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #8 : Martie 12, 2008, 20:13:29 »

Da, acum merge mult mai rapid. Mersi Wef. Applause
Memorat
amadaeus
Client obisnuit
**

Karma: 28
Deconectat Deconectat

Mesaje: 93



Vezi Profilul
« Răspunde #9 : Aprilie 24, 2008, 15:12:24 »

Pe aceeasi idee se poate renunta si la recursivitatea indirecta, scurtand mai mult codul, si se poate adapta si pentru a construi un arbore de expresie (care, odata construit, va fi foarte util in anumite probleme). Smile
Memorat

"one of these days I'm going to cut you into little pieces..."
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #10 : Aprilie 24, 2008, 16:29:18 »

Foarte misto sursa Very Happy
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #11 : Aprilie 24, 2008, 18:11:03 »

Pe aceeasi idee se poate renunta si la recursivitatea indirecta, scurtand mai mult codul, si se poate adapta si pentru a construi un arbore de expresie (care, odata construit, va fi foarte util in anumite probleme). Smile


Cand am scris sursa mea, m-am gandit sa fie usor de inteles si am scos in afara functia de extragere a unui numar ca sa pastrez simplitatea procedurii de evaluare... imi pare rau ca nu am comentat-o Sad

Pe partea de arbori de expresii, este vreun loc in care acestia sunt mai utili decat evaluarea normala, cu recursivitate indirecta?
Oricum, sursa este draguta, cred ca daca o comentezi poate fi adaugata pe pagina problemei, nu ? Confused
« Ultima modificare: Aprilie 24, 2008, 19:36:44 de către Sima Cotizo » Memorat
amadaeus
Client obisnuit
**

Karma: 28
Deconectat Deconectat

Mesaje: 93



Vezi Profilul
« Răspunde #12 : Aprilie 24, 2008, 19:43:35 »

Am adaugat si cateva comentarii; sper sa fie usor de inteles - mie mi s-a parut ideea super  Thumb up si cred ca ar merita pusa in pagina cu problema (Sima, editeaza linkul din postul anterior, are de doua ori "http")

Referitor la arbori de expresii, eu ii foloseam cand apareau multe schimbari de variabile in expresii, cand trebuia sa transform in forma pre/postfixata expresia (cu arborele construit, asta devine o simpla parcurgere). Se mai pot face dinamici pe arborii de expresie (cate atribuiri valide a variabilelor exista pentru ca o anumita expresie logica sa fie tot timpul adevarata etc). Sigur ca toate problemele astea se pot rezolva si cu evaluari de genul recursivitate indirecta, insa algoritmii mi se par mult mai intuitivi pe arborii de expresie. Poate e doar o chestiune subiectiva...
Oricum, am comentat si sursa cu arborii - poate va fi utila cuiva Smile
Memorat

"one of these days I'm going to cut you into little pieces..."
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #13 : Aprilie 24, 2008, 19:58:50 »

 Thumb up iar eu am adaugat linkurile in pagina problemei. Cred ca asa ar fi frumos, sa se prezinte idei interesante pe marginea temelor propuse in arhiv. educationala. In ultima vreme am vazut ca au aparut comentarii foarte utile si pe topicul pt Algoritmul lui Dijkstra.

PS: Lucian, numele meu mic e Cotizo Tongue
Memorat
amadaeus
Client obisnuit
**

Karma: 28
Deconectat Deconectat

Mesaje: 93



Vezi Profilul
« Răspunde #14 : Aprilie 24, 2008, 20:42:15 »

Multumesc Smile  Intr-adevar, au aparut cateva idei interesante pe topicul referitor la algoritmul lui Dijkstra, poate cei care are drepturi de editare acolo le vor lua in considerare. S-ar putea face si o pagina despre Bellman-Ford - dar deja discutia devine off-topic.

In privinta numelui, imi pusesem si eu intrebarea, insa n-am insistat prea mult pentru a gasi un raspuns Tongue - scuze pentru confuzie  Embarassed
Memorat

"one of these days I'm going to cut you into little pieces..."
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #15 : Aprilie 24, 2008, 21:19:29 »

Am modificat pagina de la dijkstra Smile.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
Marius
Nu mai tace
*****

Karma: 154
Deconectat Deconectat

Mesaje: 572



Vezi Profilul
« Răspunde #16 : Aprilie 24, 2008, 22:53:54 »

Eu folosesc http://en.wikipedia.org/wiki/Shunting_yard_algorithm pentru evaluarea expresiilor. Cei care nu pricep recursivitatea indirecta (ca mine) il pot folosi pe acesta.
Memorat

Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
amadaeus
Client obisnuit
**

Karma: 28
Deconectat Deconectat

Mesaje: 93



Vezi Profilul
« Răspunde #17 : Aprilie 25, 2008, 10:00:52 »

Foloseam si eu asta la inceput, numai ca tot codul devine destul de stufos. Cu recursivitate, procedura are vreo 15 linii Tongue
Memorat

"one of these days I'm going to cut you into little pieces..."
jean
Strain


Karma: 2
Deconectat Deconectat

Mesaje: 10



Vezi Profilul
« Răspunde #18 : Februarie 13, 2009, 18:26:31 »

o intrebare : poate fi cv de genul 2-(-2) sau 2*(-2) ?  Confused
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #19 : Februarie 13, 2009, 18:55:40 »

Da.
Memorat

Am zis Mr. Green
alexandru92
Nu mai tace
*****

Karma: -191
Deconectat Deconectat

Mesaje: 496



Vezi Profilul
« Răspunde #20 : Martie 26, 2009, 11:41:07 »

Cum as putea sa mai obtimizez algoritmul ?? Ia 2 TLE, unu pestul 9, altul pe testul 10
Sursa este aici. Eu am implemetat Shunting-yard algortihm.
 
Memorat
AnDrEwBoY
Strain
*

Karma: 4
Deconectat Deconectat

Mesaje: 36



Vezi Profilul
« Răspunde #21 : Martie 26, 2009, 15:46:46 »

http://infoarena.ro/job_detail/185143?action=view-source
Am incercat sa folosesc pe sursa aceasta freopen si iau 10 puncte.exista vreo explicatie?Sad(
Memorat
rupra
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 6



Vezi Profilul
« Răspunde #22 : Martie 26, 2009, 17:18:22 »

fgets citeste si "\n"
Memorat
andrei-alpha
Client obisnuit
**

Karma: 103
Deconectat Deconectat

Mesaje: 91



Vezi Profilul
« Răspunde #23 : Martie 26, 2009, 21:17:20 »

Da
Memorat
rupra
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 6



Vezi Profilul
« Răspunde #24 : Martie 26, 2009, 22:05:17 »

ma bucur ca am suporteri   Yahoo!
Memorat
Pagini: [1] 2 3   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines