Pagini: 1 [2] 3 4   În jos
  Imprimă  
Ajutor Subiect: 002 Algoritmul lui Euclid extins  (Citit de 40414 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #25 : Februarie 18, 2009, 16:32:39 »

Cred ca e de la citire Tongue. Citeste direct cu readln. Eu cand am rezolvat asta am facut citirea in felul urmator:

Cod:
 
begin 
     assign(stdin,'euclid2.in');reset(stdin); 
     assign(stdout,'euclid2.out');rewrite(stdout); 
     readln(stdin,t); 
     for i:=1 to t do begin 
         readln(stdin,a,b); 
         writeln(stdout,cmmdc(a,b)); 
     end; 
     close(stdin); 
     close(stdout); 
end. 
Memorat
CezarMocan
Nu mai tace
*****

Karma: 252
Deconectat Deconectat

Mesaje: 567



Vezi Profilul
« Răspunde #26 : Februarie 19, 2009, 14:02:51 »

Eu stiam ca e in loc de stdin si stdout in Pascal sunt input si output Smile. Si nu e nevoie sa scrii
Cod:
readln(input, a);
E de ajuns
Cod:
readln(a);
Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #27 : Februarie 19, 2009, 17:32:05 »

Da stiu Tongue. Doar ca atunci cand am rezolvat problema nu stiam smenul asta. Oricum nu cred ca este mai rapid asa. Cum am facut eu specifici explicit streamul de intrare, deci e posibil sa mearga mai rapid. E cam aceeasi chestie ca si cu scanf / printf vs fscanf / fprintf.
Memorat
marcelcodrea
Nu mai tace
*****

Karma: 173
Deconectat Deconectat

Mesaje: 217



Vezi Profilul
« Răspunde #28 : Februarie 25, 2009, 23:24:48 »

Cred ca ar fi util daca ar exista si un link catre o solutie iterativa in pagina problemei.

Uite una :
http://infoarena.ro/job_detail/266684?action=view-source
Memorat
andreirulzzz
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 7



Vezi Profilul
« Răspunde #29 : Martie 07, 2009, 18:27:19 »

ce este gresit la sursa asta? nu imi dau seama deloc  Brick wall
http://infoarena.ro/job_detail/272718

*am gasit greseala, functia cmmdc utiliza valori integer, le-am schimbat in longint si am luat 100 pct Smile
« Ultima modificare: Martie 08, 2009, 01:20:31 de către Roman Andrei » Memorat
Davide
Strain


Karma: -7
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #30 : Martie 11, 2009, 18:33:12 »

Unii oameni nu stiu sa faca nimic simplu? Programul meu nu foloseste algorimtul asta, si, chiar mai mult, returneaza mai mult de o valoare.
Cod:
program euclidextins;

var a,b,c,x,y,i,t:integer;

begin
     readln (a);
     readln (b);
     readln (c);
     {read}

     for x:=-c to c do
         for y:=-c to c do
             if (a*x+b*y=c) then writeln (a,'*',x,'+',b,'* ',y,'=',c);
     readln;
end.

[editat] Chiar daca se vede frumos si cum ai facut tu, data viitoare foloseste tag-ul "code"
« Ultima modificare: Martie 11, 2009, 21:04:19 de către Sima Cotizo » Memorat
bogdan2412
Echipa infoarena
Nu mai tace
*****

Karma: 410
Deconectat Deconectat

Mesaje: 951



Vezi Profilul
« Răspunde #31 : Martie 11, 2009, 20:51:05 »

Programul tau nu o sa intre in timp pentru date de intrare mari. Trimite sursa si vezi cate puncte iei. Dupa cum scrie si in explicatie, se poate extinde programul care foloseste algoritmul lui euclid sa returneze mai multe valori (sunt o infinitate de solutii Tongue ).
« Ultima modificare: Martie 11, 2009, 20:56:25 de către Bogdan Tataroiu » Memorat
hominidu
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #32 : Martie 20, 2009, 15:33:01 »

ba s-a stricat monitoru de evaluare sau de ce arata in continuu in asteptare? Brick wall nu mai are nici un farmec infoare daca nu verifica problemle Sad
Memorat
mimarcel
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 10



Vezi Profilul
« Răspunde #33 : Martie 27, 2009, 10:03:47 »

prima mea pb rezolvata... am primit 100 pcte dar am creat acasa un fisier cu 100000 de numere si programul a terminat executia in 0.6 secunde pt datele din acest fisier (am cronometrat). deci depaseste timpul de executie din pb si totusi... am primit punctaj maxim
Memorat
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« Răspunde #34 : Martie 27, 2009, 10:49:59 »

Dupa cum vezi in enunt, la restrictii, se precizeaza ca sunt maxim 100 de teste (T<=100).  Smile
Memorat
marcelcodrea
Nu mai tace
*****

Karma: 173
Deconectat Deconectat

Mesaje: 217



Vezi Profilul
« Răspunde #35 : Martie 27, 2009, 13:50:27 »

prima mea pb rezolvata... am primit 100 pcte dar am creat acasa un fisier cu 100000 de numere si programul a terminat executia in 0.6 secunde pt datele din acest fisier (am cronometrat). deci depaseste timpul de executie din pb si totusi... am primit punctaj maxim

Daca te referi la sursa asta cred ca voiai sa scrii aici aici.
In ceea ce priveste diferenta dintre timpii de executie de acasa si cei de pe infoarena, trebuie sa stii ca evaluatorul infoarena ruleaza pe Linux unde timpii de evaluare sunt considerabil mai mici si in plus poate are o configuratie diferita de cea a PC-ului tau.
Memorat
mimarcel
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 10



Vezi Profilul
« Răspunde #36 : Martie 30, 2009, 11:46:06 »

prima mea pb rezolvata... am primit 100 pcte dar am creat acasa un fisier cu 100000 de numere si programul a terminat executia in 0.6 secunde pt datele din acest fisier (am cronometrat). deci depaseste timpul de executie din pb si totusi... am primit punctaj maxim

Daca te referi la sursa asta cred ca voiai sa scrii aici aici.
In ceea ce priveste diferenta dintre timpii de executie de acasa si cei de pe infoarena, trebuie sa stii ca evaluatorul infoarena ruleaza pe Linux unde timpii de evaluare sunt considerabil mai mici si in plus poate are o configuratie diferita de cea a PC-ului tau.
mersi pt raspuns  Very Happy si scuze de greseala, dar cand am dat click pe "Lasa un comentariu" am ajuns la pagina asta de forum
Memorat
pasarila
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 7



Vezi Profilul
« Răspunde #37 : Aprilie 11, 2009, 17:09:04 »

Cod:
Non-zero exit status.
Conditia asta unde trebuie pusa ?
Memorat
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« Răspunde #38 : Aprilie 11, 2009, 20:36:46 »

Cod:
Non-zero exit status.
Conditia asta unde trebuie pusa ?

Nu e conditie. Este un doar unul din mesajele returnate de evaluator.  Think
Memorat
pasarila
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 7



Vezi Profilul
« Răspunde #39 : Aprilie 13, 2009, 22:13:17 »

Pai pentru asta eu iau 0 puncte. Sad
Memorat
alexandru92
Nu mai tace
*****

Karma: -191
Deconectat Deconectat

Mesaje: 496



Vezi Profilul
« Răspunde #40 : Mai 08, 2009, 13:19:30 »

Citat
Non-zero exit status
Din cate stiu eu dupa terminare un program returneaza 0 -daca executarea s-a incheiat cu bine si diferit de 0 altfel
Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #41 : Mai 08, 2009, 16:11:09 »

Omul a codat in pascal. Pascalul, din cate stiu eu, cand sunt greseli (deschide fisier inexistent pentru citire, face overflow la variabile, etc), returneaza numarul erorii ca exit code, si inchide programul. In cazul de fata, el a deschis fisierele euclid.in/euclid.out in loc de euclid2.in/euclid2.out. Aici e greseala.
Memorat
mika17
Strain
*

Karma: 8
Deconectat Deconectat

Mesaje: 33



Vezi Profilul
« Răspunde #42 : Iulie 06, 2009, 23:29:03 »

Salutare,
Am luat si eu 100 la aceasta problema dar tot am o nelamurire.
Daca folosesc euclid extins si inmultesc apoi cu c / cmmdc
De ce tot timpul solutiile se incadreaza in +/-2 miliarde ? pt a si b foarte mari adica, e vreun rationament matematic implicat?  Adica asa se intampla, dar nu imi dau seama de ce Whistle

si exista vreo metoda prin care sa  aflu de ex  solutiile ecuatiei ax + by = c de modul minim?
« Ultima modificare: Iulie 06, 2009, 23:38:51 de către Mihai Alex Ionescu » Memorat
cristiprg
Strain


Karma: -2
Deconectat Deconectat

Mesaje: 23



Vezi Profilul
« Răspunde #43 : Noiembrie 04, 2009, 10:29:48 »

imi zice   Solutie gresita la ecuatia 8 (30 -80 350) si rezultatul afisat ii 1 -4, de ce nu e corect ? Raised eyebrow si la mai multe face asa ...  http://infoarena.ro/job_detail/361212
« Ultima modificare: Noiembrie 04, 2009, 10:39:29 de către Prigoana Cristian » Memorat
O_Neal
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 15



Vezi Profilul
« Răspunde #44 : Februarie 02, 2010, 17:29:12 »

am si eu doua nelamuriri ..
prima: de ce daca c divide pe d , si NUMAI atunci exista solutii pentru ecuatie? daca .. sa presupun asa.. matematic ca exista un t pt care a*x + b*y = t ... (care este mai mic decat d, dar nu neaparat cred ).. in cazul in care exista atunci poate c nu se divide la d, dar se divide la t.. si ecuatia ar avea solutii.. astept va rog care aveti idei un argument pt chestia asta.. ca eu nu inteleg treaba asta, in rest am inteles totul ( cred ) foarte bine.. intradevar exista un d, d fiind cmmdc care sa rezolve ecuatia a*x + b*y .. bun dar de ce nu ar exista si alte valori dupa care sa ne luam? Adica nu inteleg de ce ne legam neaparat de cmmdc... daca pur si simplu exista (caci sigur exista ) alte valori diferite de d, egale cu a*x+b*y... si problema s-ar pune la acele valori care il divid pe c, in timp ce cmmdc(a,b) nu ar divide pe c, ar exista o solutie ..sper ca ma intelgeti careva.. imi transpun greu gandurile.. Problema am rezolvat-o de 100 de puncte, considerand cele spuse la indicatii ca fiind adevarate.. dar as vrea o mica demonstratie matematica, un argument ceva, sa fiu eu convins... pt ca nu sunt pe deplin convins ca cele presupuse pt rezolvare sunt adevarate..

a doua nelamurire: De ce indicatiile ne spun sa folosim algoritmul lui euclid extins, iar in exemple, se dau ca si solutii altele decat solutiile obtinut cu acest algoritm ? Eu unul am aplicat algoritmul si am obtinut solutii total diferite ( bune si ele,pt ca am luat 100, precum si alea din exemple ) insa nu inteleg.. ce algoritm s-a folosit pt determinarea solutiilor din exemple? ( presupun ca altul, ca euclid extins da pt valorile alea altceva )
multumesc anticipat.. sper sa intelegeti ce vroiam sa zic..
Memorat
ionutz32
Strain


Karma: 16
Deconectat Deconectat

Mesaje: 18



Vezi Profilul
« Răspunde #45 : Februarie 02, 2010, 18:10:22 »

1) In enunt scrie:
Citat
In cazul in care c nu se divide cu d ecuatia nu poate fi rezolvata in multimea numerelor intregi
Intotdeauna exista o infinitate de solutii.
Daca notam d=cmmdc(a,b), prod1=a/d, prod2=b/d, inseamna ca prod1,prod2 sunt intregi si avem
a*x+b*y=c
prod1*d*x+prod2*d*y=c
d*(prod1*x+prod2*y)=c
Daca d nu il divide pe c, atunci numarul c/d nu o sa fie intreg, ceea ce inseamna ca cel putin unul din numerele prod1*x si prod2*y apartine lui Q\Z, si cum prod1 si prod2 sunt din Z, inseamna ca ecuatia nu admite solutii intregi.

2) In enunt scrie:
Citat
In cazul in care exista mai multe solutii pentru o ecuatie, se poate afisa oricare solutie pentru care necunoscutele nu depasesc in valoare absoluta 2 000 000 000
Algoritmul lui Euclid extins e doar o metoda prin care poti sa afli o solutie a ecuatiei intotdeauna cand exista (in Z). Tu poti sa folosesti si un algoritm brut, dar nu o sa iei punctajul maxim.
Memorat
O_Neal
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 15



Vezi Profilul
« Răspunde #46 : Februarie 02, 2010, 18:34:23 »

1) da.. asa e .. corect.. in enunt era numa specificat stii .. dar asa e totul clar si demonstrat frumos ca e adevarat...
2) pai da corect lol dar nu ti se pare putin ilogic? tocmai ca zice ca alte variante nu or sa obtine punctaj maxim, atunci de ce ar da solutiile de la alti algoritmi? chiar nu mi se pare deloc logic.. acuma noah in fine .. is exemple is corecte nu ai ce sa zici .. dar din moment ce se indica o metoda si se zice ca ar exista altele dar nu intocmai bune pt ca sa intre in timp si etc pai e logic sa dai exemple cu solutii pe metoda aia.. altfel noah.. toata chestia e ca , eu unul cel putin mi-am batut  capu destul de mult timp sa vad de ce nu imi da mie bine, ca eu luam exemplele alea drept sfante .. mi-o luat  ceva sa imi dau seama, si ceva imi spune ca nu doar eu ..

ma rog, multumesc pentru lamuriri..  Ok
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #47 : Februarie 02, 2010, 18:40:41 »

1) da.. asa e .. corect.. in enunt era numa specificat stii .. dar asa e totul clar si demonstrat frumos ca e adevarat...
2) pai da corect lol dar nu ti se pare putin ilogic? tocmai ca zice ca alte variante nu or sa obtine punctaj maxim, atunci de ce ar da solutiile de la alti algoritmi? chiar nu mi se pare deloc logic.. acuma noah in fine .. is exemple is corecte nu ai ce sa zici .. dar din moment ce se indica o metoda si se zice ca ar exista altele dar nu intocmai bune pt ca sa intre in timp si etc pai e logic sa dai exemple cu solutii pe metoda aia.. altfel noah.. toata chestia e ca , eu unul cel putin mi-am batut  capu destul de mult timp sa vad de ce nu imi da mie bine, ca eu luam exemplele alea drept sfante .. mi-o luat  ceva sa imi dau seama, si ceva imi spune ca nu doar eu ..

ma rog, multumesc pentru lamuriri..  Ok
Eu nu cred ca solutiile le-or determinat cu algoritm, cred ca au fost puse rezolvari pe care le-au luat ei (adica ei au pus in fisierul de intrare valori care stiau rezultatul, si l-au scris in fisierul de iesire fara sa mai ruleze programul) sau au facut brute force pentru ca sunt mai multe solutii si asa sa le ia pe fiecare Smile
Memorat
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #48 : Februarie 03, 2010, 12:34:06 »

eu luam exemplele alea drept sfante .. mi-o luat  ceva sa imi dau seama, si ceva imi spune ca nu doar eu ..

Nu e bine sa pui accent prea mare pe exemple. In general nici pe infoarena, nici la olimpiada, nu vei gasi exemple foarte bune. Vei primi niste exemple care sa nu te ajute in mare cu absolut nimic, decat sa intelegi cat de cat problema.
Memorat
O_Neal
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 15



Vezi Profilul
« Răspunde #49 : Februarie 03, 2010, 15:06:13 »

asa e doar ca intr-un an .. la olimpiada.. o fost dat la o problema enuntu gresit si exemplu corect.. enuntul corect a ajuns destul de tarziu la elevi asa ca cei care s-au luat dupa exemplu au avut un mare avantaj.. si oricum cand faci orice problema e normal sa testezi pe exemplu dat si sa te alarmezi daca nici macar ala nu iti da bine, nu? dar da e adevarat exemplu e doar un exemplu..
Memorat
Pagini: 1 [2] 3 4   În sus
  Imprimă  
 
Schimbă forumul:  

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