Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: 121 Expresii algebrice  (Citit de 5094 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
ditzone
Vizitator
« : Octombrie 23, 2005, 21:47:42 »

Aici puteţi discuta despre problema Expresii algebrice.
Memorat
PuMa
Strain


Karma: 3
Deconectat Deconectat

Mesaje: 12



Vezi Profilul
« Răspunde #1 : Martie 11, 2006, 22:10:52 »

Cat e rezultatul pentru testul "((1))" si ce conditii trebuie puse pentru ca expresia sa fie incorecta?? Eu am luat cazurile:
-"+)", "(+", "(*", "*)", "++", "**", "()", ")(". De asemenea verificam pentru fiecare prefix al expresiei ca numarul de paranteze ')' sa fie mai mic sau egal cu numarul de paranteze. '('  Embarassed
Memorat

Totul e relativ!
u-92
Vizitator
« Răspunde #2 : Martie 11, 2006, 22:14:42 »

pentru (((1))) imi da 1.. eu am verificat in timpul calculului daca e corecta.. ai folosit tipuri de date pe 64 biti ?
Memorat
PuMa
Strain


Karma: 3
Deconectat Deconectat

Mesaje: 12



Vezi Profilul
« Răspunde #3 : Martie 11, 2006, 22:33:46 »

hmmm. si mie tot atat imi da si am folosit long long.  Embarassed
Memorat

Totul e relativ!
u-92
Vizitator
« Răspunde #4 : Martie 11, 2006, 23:16:51 »

uite un test, poate te ajuta
Cod:
1
(1+2*(3+5*9+4)*3*4)*(2+3)*5*5*5*((5))+3+4+5+6*7

Cod:
5880
Memorat
PuMa
Strain


Karma: 3
Deconectat Deconectat

Mesaje: 12



Vezi Profilul
« Răspunde #5 : Martie 11, 2006, 23:47:47 »

Ms mult! testu m-a ajutat fff mult. Eu nu evaluam ultima parte a expresiei.  Brick wall
Memorat

Totul e relativ!
cypry
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #6 : Martie 07, 2007, 16:48:38 »

Am rezolvat problema, pe toate cazurile incercate imi da bine, dar cand trimit solutia, apare un singur test, la care scrie Incorect. Nu pot sa bag mana in foc ca am rezolvat corect, dar e normal sa aiba un singur test?
Memorat
astronomy
Nu mai tace
*****

Karma: 204
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #7 : Martie 07, 2007, 16:54:35 »

Da, problema a fost data la un concurs pe infoarena si toate problemele de atunci aveau un singur fisier de test.
Memorat
Marius
Nu mai tace
*****

Karma: 154
Deconectat Deconectat

Mesaje: 572



Vezi Profilul
« Răspunde #8 : Septembrie 02, 2007, 16:52:11 »

Vrea sa imi spuna cineva o idee ? Very Happy
Memorat

Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #9 : Septembrie 02, 2007, 18:41:07 »

Dinamica pe intervale. Pot sa mai detaliez daca vrei. Smile
Memorat

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

Karma: 154
Deconectat Deconectat

Mesaje: 572



Vezi Profilul
« Răspunde #10 : Septembrie 03, 2007, 11:58:05 »

Mai povesteste-mi. Very Happy
Memorat

Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #11 : Septembrie 03, 2007, 13:13:50 »

Tinem o dinamica C[p][q] = numarul de posibilitati de a evalua expresia pe intervalul p,q.
C[p][q]=C[p+1][q-1], daca A[p]='(' si A[q]=')'. Daca nu, cautam semnul cu prioritatea cea mai mica din interval (evident, care nu e inclus intr-o paranteza). Apoi parcurgem intervalul si de fiecare daca cand gasim semnul pe o pozitie k, adunam la C[p][q] produsul C[p][k-1]*C[k+1][q]. 
« Ultima modificare: Septembrie 03, 2007, 13:18:01 de către Paul-Dan Baltescu » Memorat

Am zis Mr. Green
danalex97
Vorbaret
****

Karma: 54
Deconectat Deconectat

Mesaje: 192



Vezi Profilul
« Răspunde #12 : Iulie 23, 2012, 16:48:02 »

Iau WA. Am rezolvat problema cu o dinamica si m-am uitat in solutia oficiala. Ideile coincid , deci ma gadesc ca ideea de baza e buna. (imi dau toate exemplele din enunt si cele date mai sus la comentarii).

La verificarea corectitudinii unei expresii eu verific sa nu am "(*" , "*)" , "(+" , "+)" , "()" , ")(" , "++" , "**" , "+*" , "*+" , ")0". Daca mi-a scapat ceva sa spuneti. De asemenea ma uit la perecile de paranteze sa fie puse corect.
 
Are idee cineva ce particularitati ar mai avea problema asta ?
Memorat
AlexandruValeanu
Vorbaret
****

Karma: 29
Deconectat Deconectat

Mesaje: 167



Vezi Profilul
« Răspunde #13 : Martie 09, 2014, 17:51:00 »

Cat ar trebui sa dea pe testul acesta:
Cod:
9
+3+2
3*(+2)
(2*3)*(3*(3+3)+2)+9+(2+3+(((3+2))))
2++3
+1
(3)*(1)+(1)*(2)+(3)
(+2)
3+(3+4+(1+1+1*(3+4)))+(8+0*(3+3))
(1+2*(3+5+9+4)*3*4)*(2+3)*5*5*5*((5))+3+4+5+6*7
Memorat
misino
Strain
*

Karma: 10
Deconectat Deconectat

Mesaje: 40



Vezi Profilul
« Răspunde #14 : Mai 15, 2014, 15:04:26 »

Mie imi da:

Numarul de arbori = 0.
Numarul de arbori = 0.
Numarul de arbori = 4.
Numarul de arbori = 0.
Numarul de arbori = 0.
Numarul de arbori = 2.
Numarul de arbori = 0.
Numarul de arbori = 8.
Numarul de arbori = 14700.

Imi da si mie cineva un test in care raspunsul sa depaseasca int?
Memorat
FlorinHaja
Strain
*

Karma: -8
Deconectat Deconectat

Mesaje: 29



Vezi Profilul
« Răspunde #15 : Noiembrie 06, 2016, 19:31:07 »

Raspunsurile depasesc unsigned long long-ul?

Ca pe testul
1
2*3*4*5*6*7*2*3*4*5*6*7*2*3*4*5*6*7*2*3

imi da 1, iar pe
1
2*3*4*5*6*7*2*3*4*5*6*7*2*3*4*5*6*7*2

477638700.
Memorat
klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #16 : Noiembrie 08, 2016, 23:46:44 »

Păi e parte din soluție să-ți răspunzi la asta. Sau în orice caz, îți îmbunătățește înțelegerea subiectului. Ți-ai găsit worst case-ul: toți operatorii au aceeași prioritate și orice arbore binar cu acel număr de noduri este corect. Cum poți număra câți arbori binari cu N noduri există? Cât dă pentru 24? (nu poți avea mai mulți operatori de atât). Dacă nu-ți iese număratul de arbori, e o chestie destul de cunoscută, o găsești ușor. Dar încearcă singur  Smile.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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