Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Contor de timp  (Citit de 6314 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
GRazvan
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« : Septembrie 22, 2011, 17:20:27 »

 Buna. Am observat ca la olimpiada conteaza mult timpul de executie al programului. Eu folosesc limbajul Pascal acum. Stiti cumva vreun porgram care-mi masoara timpul sau vreo comanda din biblioteca care sa nu ma faca sa folosesc prea multe alte variabile?

  Multumesc:)
Memorat
crushack
De-al casei
***

Karma: 23
Deconectat Deconectat

Mesaje: 108



Vezi Profilul
« Răspunde #1 : Septembrie 22, 2011, 17:34:54 »

Salut,

Cred ca asta te poate ajuta: http://www.freepascal.org/docs-html/rtl/sysutils/time.html .
iei de doua ori timpul si faci diferenta Very Happy ( sunt defapt de tip real )
Dar iti trebuie Free Pascal ( asta se foloseste si la olimpiada Very Happy )
Daca nu-l ai il poti lua din pachetul OJI : http://infoarena.ro/schimbare-borland/pachet.

Sper ca te ajuta Very Happy
Memorat
skull
Client obisnuit
**

Karma: 17
Deconectat Deconectat

Mesaje: 75



Vezi Profilul
« Răspunde #2 : Septembrie 22, 2011, 18:14:16 »

Calculand complexitatea algoritmului, iti dai seama de cele mai multe ori daca-ti intra rezolvarea in timp.
Memorat
GRazvan
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« Răspunde #3 : Septembrie 22, 2011, 18:18:12 »

Calculand complexitatea algoritmului, iti dai seama de cele mai multe ori daca-ti intra rezolvarea in timp.

 Si anume cum? Smile Mersi.
Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #4 : Septembrie 22, 2011, 18:23:13 »

Eu de exemplu am facut niste teste si am ajuns la concluzia:

O(N^2) pentru N=1000 <=> ~0.1s
O(N^3) pentru N=100  <=> ~0.1s

Pornind de la aceste valori se pot estima tot felul de complexitati.

P.S.: timpii sunt pentru C.
« Ultima modificare: Septembrie 22, 2011, 18:38:58 de către George Marcus » Memorat
skull
Client obisnuit
**

Karma: 17
Deconectat Deconectat

Mesaje: 75



Vezi Profilul
« Răspunde #5 : Septembrie 22, 2011, 21:16:16 »

Postase cineva la un moment dat aceste puncte de reper:

O(1-2 milioane) -> 0.1 s
O(20-40 milioane) -> 1 s

Eu m-am orientat de multe ori dupa ele si mi-au fost de folos. Bineinteles ca timpul de rulare depinde de operatiile pe care le faci la fiecare pas, de modul de implementare...
Memorat
GRazvan
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« Răspunde #6 : Septembrie 23, 2011, 06:05:39 »

Eu de exemplu am facut niste teste si am ajuns la concluzia:

O(N^2) pentru N=1000 <=> ~0.1s
O(N^3) pentru N=100  <=> ~0.1s

Pornind de la aceste valori se pot estima tot felul de complexitati.

P.S.: timpii sunt pentru C.

 Pai...nu prea inteleg care e faza, adica 1000^2 = 100^3 = 1000000
Memorat
GRazvan
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« Răspunde #7 : Septembrie 23, 2011, 06:07:12 »

Postase cineva la un moment dat aceste puncte de reper:

O(1-2 milioane) -> 0.1 s
O(20-40 milioane) -> 1 s

Eu m-am orientat de multe ori dupa ele si mi-au fost de folos. Bineinteles ca timpul de rulare depinde de operatiile pe care le faci la fiecare pas, de modul de implementare...


 Mhm, e bine de stiut mersi Smile Numai ca am o nelamurire, viteza nu conteaza numai de algoritm ci si de procesor si atunci daca-l testezi pe un dual core normal ca o sa-ti ia mai putin timp decat pe un pentium.
Memorat
Vman
Echipa infoarena
Vorbaret
*****

Karma: 45
Deconectat Deconectat

Mesaje: 176



Vezi Profilul
« Răspunde #8 : Septembrie 23, 2011, 09:49:18 »

Citat
Mhm, e bine de stiut mersi  Numai ca am o nelamurire, viteza nu conteaza numai de algoritm ci si de procesor si atunci daca-l testezi pe un dual core normal ca o sa-ti ia mai putin timp decat pe un pentium.

Asta e valabil doar pentru programe robuste, cu mai multe fire de executie, sau atunci cand rulezi foarte multe programe in paralel.
Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #9 : Septembrie 23, 2011, 12:16:47 »

Pai...nu prea inteleg care e faza, adica 1000^2 = 100^3 = 1000000
Si am zis eu ca nu e asa?  Very Happy
Ti-am dat doar niste exemple de complexitati raportate la timpul de executie, ca sa poti estima cat de eficient trebuie sa fie algoritmul tau.
Memorat
GRazvan
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« Răspunde #10 : Septembrie 23, 2011, 13:53:31 »

Pai...nu prea inteleg care e faza, adica 1000^2 = 100^3 = 1000000
Si am zis eu ca nu e asa?  Very Happy
Ti-am dat doar niste exemple de complexitati raportate la timpul de executie, ca sa poti estima cat de eficient trebuie sa fie algoritmul tau.

 Bine, mersi. Dar tot nu inteleg de ce ai pus o data 100 si o data 1000. Sunt mai greu de cap Smile)
Memorat
GRazvan
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« Răspunde #11 : Septembrie 23, 2011, 13:53:50 »

Citat
Mhm, e bine de stiut mersi  Numai ca am o nelamurire, viteza nu conteaza numai de algoritm ci si de procesor si atunci daca-l testezi pe un dual core normal ca o sa-ti ia mai putin timp decat pe un pentium.

Asta e valabil doar pentru programe robuste, cu mai multe fire de executie, sau atunci cand rulezi foarte multe programe in paralel.

 Am inteles, mersi Smile
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #12 : Septembrie 26, 2011, 10:22:48 »

Cel mai bine înveți prin experiență. Rezolvă cît mai multe probleme și în timp vei ajunge să îți dai seama de cele mai multe ori care este complexitatea cerută în funcție de limita de timp și de restricții.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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