Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

complexité d'un algorithme de factorisation

Posté par
jean36200
28-03-13 à 21:24

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 partiedécimal(\dfrac{N}{T})=0 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


Merci aux petits génies de l'informatique qui pourront m'aider

Posté par
verdurin
re : complexité d'un algorithme de factorisation 28-03-13 à 21:44

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

Posté par
verdurin
re : complexité d'un algorithme de factorisation 28-03-13 à 21:47

Sinon, après corrections, il est vraisemblablement en O(n)

Posté par
LeDino
re : complexité d'un algorithme de factorisation 28-03-13 à 21:50

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.

Posté par
jean36200
re : complexité d'un algorithme de factorisation 28-03-13 à 21:58

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) ?

Posté par
LeDino
re : complexité d'un algorithme de factorisation 28-03-13 à 22:03

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 ?

Posté par
jean36200
re : complexité d'un algorithme de factorisation 28-03-13 à 22:09

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).

Posté par
LeDino
re : complexité d'un algorithme de factorisation 28-03-13 à 22:11

Je pense que tu fais une confusion sur la nature de ces algorithmes.

Posté par
verdurin
re : complexité d'un algorithme de factorisation 28-03-13 à 22:13

Citation :
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).

oui mais n ne désigne plus le nombre, mais son logarithme.
Il ne faut pas confondre un nombre N et son nombre de chiffres n.

Posté par
jean36200
re : complexité d'un algorithme de factorisation 28-03-13 à 22:14

Je ne sais pas, je me base par exemple sur ce type d'algorithme : http://fr.wikipedia.org/wiki/Test_de_primalité_AKS

Posté par
LeDino
re : complexité d'un algorithme de factorisation 28-03-13 à 22:14

Ou sur la définitionde 'n' : peut-être le nombre de chiffres de N et non N lui même ?

Posté par
LeDino
re : complexité d'un algorithme de factorisation 28-03-13 à 22:17

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.

Posté par
jean36200
re : complexité d'un algorithme de factorisation 28-03-13 à 22:22

D'accord je comprends d'où vient mon erreur. Merci de m'avoir aidé à comprendre

Posté par
LeDino
re : complexité d'un algorithme de factorisation 28-03-13 à 22:22



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !