Examen 2015 qcm

Examen 2015 qcm

by Lilian Guillaume Dominique Bonnet -
Number of replies: 5

Bonsoir,

Je ne comprends pas pourquoi l'affichage des entiers entre 1 et n! est en complexité au moins linéaire et pas au moins exponentielle. J'ai joint le sujet de l'examen.

Merci

Attachment Capture.JPG
In reply to Lilian Guillaume Dominique Bonnet

Re: Examen 2015 qcm

by Yassin Kammoun -

Bonjour,

Le calcul du factoriel est réalisable en temps linéaire. L'affichage des entiers entre 1 et n! est également réalisable en temps linéaire. Voici un exemple d'algorithme:

factoriel
entrée: n
sortie: rien
fact <- 1
Pour i de 2 à n
  fact <- fact * i
Pour i de 1 à fact
  afficher i
  

On observe bien que l'algorithme a une complexité O(n). Evidemment, n! pourrait être très grand suivant la valeur de n. Cela dit, si on demandait d'afficher tous les nombres entre 1 et n et que n valait par exemple 1'000'000'000, on considérerait quand même que l'algorithme a une complexité linéaire.

In reply to Yassin Kammoun

Examen 2015 qcm

by Lilian Guillaume Dominique Bonnet -
Oui je suis d’accord avec votre algorithme mais je ne comprends pas pourquoi quand on affiche toutes les valeurs entre 1 et fact on reste en O(n) parce que la boucle fera n! tours de boucle et donc sera en O(n!) et non pas O(n) non ?
In reply to Lilian Guillaume Dominique Bonnet

Re: Examen 2015 qcm

by Othmane Rih -

je crois que tu as raison, elle fera O(n+n!), je crois que si on fait :

Pour i de 1 à n

     fact<---fact*i;

      afficher fact;

ça devrait être en 0(n)