Qu'est-ce que la limite de temps ?

Bonjour,

j'ai une question qui peut paraître un petit peu absurde, mais je ne comprend pas trop la limite de temps des exercices.
Prenons par exemple, l'exercice 1 :

LIMITE DE TEMPS
300 ms

Cela veux dire que le programme doit s’exécuter en 300ms (milliseconde) ?

Si oui,

Comment calculer vous le temps d’exécution du programme ?

Cordialement.

Oui, il me semble fortement que c'est ça, donc en gros faut que le programme s’exécute en 0,3 secondes, après pour mesurer le temps d'exécution je sais pas trop comment ils font :/

Le temps total est utilise si je me souviens bien (et non seulement l'user time).
Si tu est sous un unix-like (comme linux) ou un unix, tu peux utiliser la commande time (man time).

Tant que l'on parle de time et vu qu'on est sur les forums prologin, bien connus pour leurs hors sujet, est-ce que quelqu'un pourrait m'expliquer la différence entre real, user et sys ? Si j'ai bien compris, user est le temps du programme, sys le temps des appels système, et real le temps total, c'est ça ?

Juste une question :) : pour l'algo 3 j'ai dépassé la limite de temps en revanche des point ont été comptés. Si j'améliore l'algo au niveau du temps d’exécution est-ce que je peux avoir des points en plus ? \^\^

Sérieux: les points ne servent à rien et n'ont pas d'influence sur les résultats, donc t'embête pas sur ce point. Par contre améliore à fond l'optimisation et les performances ça ils vont le compter.

Ce sont des questions d'algorithmique, ce qui est note c'est l'algorithme. Que ce soit en 42n instructions ou en 4n instructions, ce n'est pas important (quoi que 42 est peut être préférable :p), ça reste du O(n).

Faux : il est dit dans la solution du 4è exercice du QCM de l'année dernière que, même une fois l'algorithme optimal trouvé, il était bénéfique de réduire le nombre d'instructions ; en partie parce que des fois c'est plus notable au niveau performances qu'une complexité améliorée.

Exemple : On a un algorithme en 500n et un en n². Si n est plus grand que 500, il vaut mieux le 500n ; mais si n est plus petit que 500, il vaut mieux celui en n² ; même si c'est moins élégant.

En fait epsilon, je me rappelle que les corrigés des QCM parlaient bien de méthodes pour réduire la constante cachée dans O. C'est en effet inutile pour se qualifier, mais ça n'est pas dénué d'intérêt. :p

Oui, certes il y a deux ans on a même eut un O(n log n) qui battait du O(n) en utilisant efficacement le cache.
Donc, ok, utilisons le duff's device, c'est ça ?

Rhooo on peut plus te taquiner ? :(
Merci de m'avoir appris quelque chose n'empêche, je connaissais pas le Duff's device :p

Eh bien, eloyas, par exemple nous programmons une solution optimale et une solution naïve (par exemple, respectivement en O(n) et O(n²) ; pour de grandes entrées, l'écart est suffisamment grand pour être décelable) et nous ajustons la limite de temps de manière à ce que la première solution passe et pas la deuxième. Des coefficients sont appliqués pour les différents langages, étant donné que certains sont plus lents que d'autres.

Donc en C++ les limites de temps sont super strictes... pas grave je les ai passées pour les 3 premiers algorithmes.

Répondre au sujet

Vous devez vous enregistrer ou vous connecter pour poster des messages.