Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Evaluare la numere cu zecimale  (Citit de 1686 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
proflaurian
Client obisnuit
**

Karma: 46
Deconectat Deconectat

Mesaje: 58



Vezi Profilul
« : Martie 03, 2013, 10:52:01 »

As vrea sa redeschid o discutie veche lagata de problemele de concurs in care fisierul de iesire contine numere cu zecimale.
In multe situatii concurentii pierd puncte pretioase datorita erorilor la o anumita zecimala in afisarea rezultatului si asta in concursuri cu miza este frustrant.
Am urmarit cateva topicuri pe forum in care este dezbatuta tema asta si parerea mea este ca tema merita o dezbatere ampla in care cat mai multi sa isi exprime opinia.
Voi incepe aceasta dezbatere exprimand cateva puncte de vedere pe care nici nu mi le asum si nici nu le consider perfecte.
Iata cateva exemple:

1. Ar trebui sa eliminam complet problemele in care se folosesc tipuri reale.

Opinia mea e ca asta ar fi politica strutului de a-si baga capul in nisip. S-ar pierde in acest caz probleme foarte interesante de geometrie sau de probabilitati.

2. Ar trebui sa lasam libertatea concurentului sa afiseze rezultatul cu oricate zecimale si sa folosim o valoare rezonabila cu care sa testam eroarea fata de solutia din fisierul ok.

Dar daca autorul in constructia fisierelor ok foloseste o anumita aproximare iar rezolvitorul foloseste o mai mare acuratete in calcule obtinand un rezultat chiar mai aproape de cel corect si care nu corespunde cu cel din ok? Asta se poate intampla cand de exemplu:

3. Concurentul muta virgula zecimala spre dreapta un numar rezonabil de pozitii si apoi lucreaza cu numere de tip intreg

Operatia este fireasca dar e posibil ca numarul de cifre cu care se lucreaza sa nu incapa pe nici un tip intreg.
Sau cand:

4. Concurentul foloseste o solutie alternativa care duce tot la rezultatul corect dar manipuleaza prin alte calcule numerele cu zecimale


Pentru ca nu vreau sa inchid multe dintre directiile in care s-ar exprima opinii in aceasta ( sper ) discutie am sa ma opresc la o ultima opinie pe care o apreciez ca fiind una dintre solutiile de compromis care ar putea conduce la o imbunatatire a evaluarii in problemele de acest tip.

Plec de la ideea ca a verifica precizia rezultatului in numar de zecimale nu este prea buna. Motivul ar putea fi exprimat plastic cam asa.

Ce precizie e mai buna: 0.01 kilometri sau 10 milimetri ?

5. Ar trebui sa comparam rezultatul din out si din ok privite ca stringuri si sa alegem in mod adecvat cate caractere din out / ok ar trebui sa coincida

Un exemplu:

out 1.2345 ok 1.2344 => eroare de 0.0001

out 12345678.9 ok 12345678.8 => eroare de 0.1

Totusi mie mi se pare ca in al doilea caz suntem mai aproape de raspunsul corect dacat in primul caz.

Ce parere aveti?
Memorat
proflaurian
Client obisnuit
**

Karma: 46
Deconectat Deconectat

Mesaje: 58



Vezi Profilul
« Răspunde #1 : Martie 03, 2013, 11:00:21 »

Ca fapt divers. Ideea deschiderii acestui topic mi-a venit imediat dupa rezolvarea problemei Aria din Arhiva educationala la care cu doua solutii corecte dar diferite putin de cea oficiala am obtinut 70 de puncte cu probleme la precizie pe ultimele 3 teste.
Memorat
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #2 : Martie 03, 2013, 11:45:41 »

Topcoder foloseste si eroarea relativa pentru evaluare: (raspuns - rezultat) / rezultat < 1e-9
Memorat
proflaurian
Client obisnuit
**

Karma: 46
Deconectat Deconectat

Mesaje: 58



Vezi Profilul
« Răspunde #3 : Martie 03, 2013, 12:35:13 »

Ceea ce este intr-adevar o eroare relativa  Very Happy de exemplu cand raspuns = 0.0005001 si rezultat = 0.0005. Calculul imi da o eroare relativa de cam 0.0002 pentru o eroare reala de 0.0000001.  Inteleg care ar fi logica unei astfel de aprecieri a rezultatului dar pare destul de riscanta si greu de controlat. Evident ca la multe probleme merge dar cred ca eroarea de 10-9 este cam drastica.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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