Bonjour à vous (je m'adresse surtout à nos amis experts en informatique)
J'ai un algorithme de factorisation mais je ne sais pas comment trouver sa complexité (dans le pire des cas). Quelqu'un pourrait m'expliquer en détail comment je peux procéder ? Merci à tous pour vos réponses
L'AlORITHME :
Saisir N
3T ND Tant que T²N Si alors TD N²T FinSi T+2T FinTantQue Si N=D alors Afficher N & " est premier" Sinon Afficher D & " est un diviseur de N" FinSi |
Bonsoir,
ton algorithme est faux.
On peut, par exemple, l'essayer avec N=6 d'où D=6
au début de la boucle «tant que» on a T=3 et donc T²=9
9>6 :la boucle n'est pas effectuée
on a bien N=D
on affiche 6 est premier
Dans le pire des cas, le nombre N saisi est premier.
Dans ce cas, la partie décimale de N/T n'est jamais nulle et on ne trouve pas d'autre diviseur que N.
L'algorithme s'arrête alors une fois que le compteur T a atteint racine carré de N.
Comme T est incrémenté de 2 en 2, la complexité est au pire de racine carrée de N, sur 2.
Oui, verdurin je sais qu'il ne fonctionne pas pour n=6, et pour beaucoup d'entier pair, mais pour savoir que 6 est composé, je pense que je n'ai pas besoin de cet algorithme, et de même pour les entiers pairs.
Merci pour vos réponses, c'est aussi ce que j'avais trouvé comme complexité, mais ne trouvez-vous pas cela un peu étrange, je veux dire par là n'est-ce pas un peu utopique qu'un algorithme de factorisation fonctionne en O(N) ?
Qu'entends-tu par utopique ?
Si N est premier, T augmente de 2 en 2 jusqu'à racine de N.
Où est l'utopie la dedans ?
Ce que je veux dire c'est que l'on peut lire sur wikipédia par exemple que de puissant algorithme fonctionne en un temps polynomial, le meilleur d'entre eux fonctionnerait en O(n6).
Je ne sais pas, je me base par exemple sur ce type d'algorithme : http://fr.wikipedia.org/wiki/Test_de_primalité_AKS
Oui, c'est bien ça : la complexité est polynomiale en n = Log(N).
Cela revient à dire que l'algorithme est polynomiale par rapport au nombre de chiffres de N.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :