infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Gorgan Razvan-Florin din Septembrie 22, 2011, 17:20:27



Titlul: Contor de timp
Scris de: Gorgan Razvan-Florin din 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:)


Titlul: Răspuns: Contor de timp
Scris de: Popescu Silviu din Septembrie 22, 2011, 17:34:54
Salut,

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

Sper ca te ajuta :D


Titlul: Răspuns: Contor de timp
Scris de: Lepadat Mihai-Alexandru din Septembrie 22, 2011, 18:14:16
Calculand complexitatea algoritmului, iti dai seama de cele mai multe ori daca-ti intra rezolvarea in timp.


Titlul: Răspuns: Contor de timp
Scris de: Gorgan Razvan-Florin din 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? :) Mersi.


Titlul: Răspuns: Contor de timp
Scris de: George Marcus din 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.


Titlul: Răspuns: Contor de timp
Scris de: Lepadat Mihai-Alexandru din 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...


Titlul: Răspuns: Contor de timp
Scris de: Gorgan Razvan-Florin din 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


Titlul: Răspuns: Contor de timp
Scris de: Gorgan Razvan-Florin din 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 :) 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.


Titlul: Răspuns: Contor de timp
Scris de: Duta Vlad din 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.


Titlul: Răspuns: Contor de timp
Scris de: George Marcus din 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?  :D
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.


Titlul: Răspuns: Contor de timp
Scris de: Gorgan Razvan-Florin din 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?  :D
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 :))


Titlul: Răspuns: Contor de timp
Scris de: Gorgan Razvan-Florin din 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 :)


Titlul: Răspuns: Contor de timp
Scris de: Andrei Grigorean din 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.