Algorithmique Récursivité
On appelle récursive toute fonction ou procédure qui s'appelle elle même. Algorithme Fact. Entrée : un entier positif N. Sortie : factorielle de N.
cours 2:Complexité des algorithmes récursifs
Algorithmes récursifs. Calcul de complexité. ?. Exemple 1 : La fonction factorielle. Pour calculer la solution générale de cette équation on peut procéder
Cours No 4 : Fonctions Récursives.
Exemple : l'ensemble des valeurs de la fonction “factorielle” sur les entiers Exemple : Algorithme récursif de calcul du pgcd de deux nombres non nuls :.
Récursivité
4 oct. 2017 2.1 Algorithmes récursifs . ... 4 Complexité d'un algorithme récursif ... Implémentation Python de la factorielle récursive :.
Correction et complexité des algorithmes récursifs
Un algorithme récursif est constitué par une fonction dont la définition contient des appels `a elle même. Un exemple : Calcul de la factorielle d'un nombre.
Complexité
Complexité d'un algorithme récursif (1). Soit l'algorithme : fonction factorielle (n: Naturel) : Naturel début si n=0 alors retourner 1.
Fonctions pile
https://www.dicosmo.org/CourseNotes/Compilation/0506/Cours03/Cours.pdf
Algorithmes et programmation II : La récursivité
return ( n ? factorielle (n?1)) ;. } S. Baarir (Paris10/LIP6). La récursivité. L2 Mia - 2010/2011. 9 / 15. Page 18. Récursivité sur les nombres : exemple (2/4).
ALGO 1.1 œ Correction TD N°5.
Calcul de la factorielle d'un entier naturel (avec une structure Calcul du pgcd de deux nombres a et b strictement positifs par l'algorithme d'Euclide.
Récursivité
La décomposition ci-dessus décrit l'algorithme de résolution du problème en utilisant l'appel int sous_resultat = factorielle (n-1); //appel recursif.
[PDF] cours 2:Complexité des algorithmes récursifs - Esentn
La complexité d'un algorithme récursif se fait par la résolution d'une équation de récurrence en éliminant la récurrence par substitution de proche en proche
[PDF] Algorithmique Récursivité
Moyen simple et élégant de résoudre certain problème Définition On appelle récursive toute fonction ou procédure qui s'appelle elle même Algorithme Fact
[PDF] Algorithmes et programmation II : La récursivité - LIP6
Algorithmes et programmation II : La récursivité Souheib Baarir1 1Université Paris Ouest Nanterre La Défense Laboratoire d'informatique de Paris 6
[PDF] Correction et complexité des algorithmes récursifs - eCursus
Un algorithme récursif est constitué par une fonction dont la définition contient des appels `a elle même Un exemple : Calcul de la factorielle d'un nombre
[PDF] Récursivité
4 oct 2017 · Un algorithme est dit récursif quand sa mise en oeuvre utilise ce même algorithme Pour être valide cet algorithme doit impérativement vérifier
[PDF] Algorithmes Récursifs
Reprenons le calcul de la factorielle qui nécessitait 3n opérations : Algorithme : Factorielle(n) Données : un entier n Résultat : un entier valant n!
[PDF] Récursivité
3 fév 2020 · récursivité s'arrête 1) Programmez la fonction factorielle précédente 2) Programmez la fonction fibonacci dont la définition par
[PDF] Piles Récursivité - CPGE Brizeux
Une manière récursive de définir la factorielle d'un entier n ? 1 est de poser : n! = { 1 si n = 0 n × (n ? 1)! si n ? 1 Algorithm 4: Algorithme
[PDF] Cours No 4 : Fonctions Récursives - LIRMM
Exemple : l'ensemble des valeurs de la fonction “factorielle” sur les entiers Exemple : Algorithme récursif de calcul du pgcd de deux nombres non nuls :
[PDF] Chapitre 2 – Récursivité
des algorithmes où le nombre d'instructions des boucles peut être réduit La fonction récursive de la factorielle s'écrit donc de la manière suivante :
Comment écrire un algorithme récursif ?
On se propose de reprendre le jeu du Plus-Moins, et d'en écrire un algorithme récursif. Principe : le joueur choisit mentalement un nombre entier entre deux bornes, fixées préala- blement (n et p par exemple), et l'algorithme proc? alors par élimination dichotomique.Comment calculer le factoriel d'un nombre en algorithme ?
Ainsi pour déterminer la factorielle d'un nombre entier, nous pouvons utiliser la formule suivante : = n × ( n ? 1 ) × . . . × 2 × 1 Nous pouvons aussi définir la factorielle d'un nombre par récurrence : = n × ( n ? 1 )Qu'est-ce qui caractérise un algorithme récursif ?
Un algorithme récursif est un algorithme qui résout un problème en calculant des solutions d'instances plus petites du même problème. L'approche récursive est un des concepts de base en informatique.- La complexité d'un algorithme récursif se fait par la résolution d'une équation de récurrence en éliminant la récurrence par substitution de proche en proche.
Algorithmique...
Complexité
Luc Brun
luc.brun@greyc.ensicaen.frA partir de travaux de
Habib Abdulrab(Insa de Rouen)
Complexit
´e - p.1/25
Plan...
Notion de complexitéComment évaluer la complexité d'un algorithmeExemple de calculs de complexité
Complexit
´e - p.2/25
Notion de complexité (1)
Comment évaluer les performances d'un algorithmedifférents algorithmes ont des coûts différents en termes de
temps d'exécution (nombre d'opérations effectuées par l'algorithme),taille mémoire (taille nécessaire pour stocker les différentes structures de
données pour l'exécution). Ces deux concepts sont appelé la complexité en temps et en espace de l'algorithme.Complexit
´e - p.3/25
Notion de complexité (2)
La complexité algorithmique permet de mesurer les performances d'un algorithme et de le comparer avec d'autres algorithmes réalisant les mêmefonctionnalités.La complexité algorithmique est un concept fondamental pour toutinformaticien, elle permet de déterminer si un algorithmeaet meilleur
qu'un algorithmebet s'il est optimal ou s'il ne doit pas être utilisé...Complexit
´e - p.4/25
Temps d'exécution (1)
Le temps d'exécution d'un programme dépend : 1. du nombre de données, 2. de la taille du code, 3. du type d'ordinateur utilisé (processeur,mémoire),4. de la complexité en temps de l'algorithme "abstrait» sous-jacent.
Complexit
´e - p.5/25
Temps d'exécution (2)
Soitnla taille des données du problème etT(n)le temps d'exécution de l'algorithme. On distingue :Le temps du plus mauvais casTmax(n)
Correspond au temps maximum pris par l'algorithme pour un problème de taillen. Le temps moyenTmoy:Temps moyen d'exécution sur des données de taillen(?suppositions sur la distribution des données). T moy(n) =r? i=1p iTsi(n)piprobabilité que l'instructionsisoit exécutée,Tsi(n): temps requis pour l'exécution desi.
Complexit
´e - p.6/25
Temps d'exécution
Règles générales :
1. le temps d'exécution (t.e.) d'une affectation ou d'un test est considéré
comme constantc,2. Le temps d'une séquence d'instructions est la somme dest.e.des
instructions qui la composent,3. le temps d'un branchement conditionnel est égal au t.e. du test plus le max
des deux t.e. correspondant aux deux alternatives (dans le cas d'un temps max).4. Le temps d'une boucle est égal à la somme du coût du test + du corps de la
boucle + test de sortie de boucle.Complexit
´e - p.7/25
Problèmes du temps d'exécution (1)
Soit l'algorithme suivant :
Nom:Calcul d'une somme de carrés
Role:Calculer la valeur moyenne d'un tableau
Entrée:n : entier
Sortie:somme : réel
Déclaration:i: Naturel
début somme←0.0 pouri←0àn-1faire somme←somme+i*i finpour finComplexit
´e - p.8/25
Problèmes du temps d'exécution (2)
T moy(n) =Tmax(n) =c1+c1+n(c2+c3+c4+c5+c1) = 2c1+n??5i=1ci? avecc1: affectation,c2: incrémentation,c3test,c4addition,c5multiplication. Trop précis?1. Faux,2. Inutilisable.Notion de complexité : comportement asymptotique du t.e.:Tmax(n) =Tmoy(n)≈nC
Complexit´e - p.9/25
Estimation asymptotique
Définition 1Une fonction f est de l'ordre de g , écrit avec la notation Grand-O , pour toutn≥n0 selon la définition ci-dessus, on aura: f1(n) = 2n+ 3 =O(n3),2n+ 3 =O(n2),2n+ 3 =O(n)au plus juste
f2(n) = 7n2=O(2n),7n2=O(n2)au plus juste
mais,7n2N'EST PASO(n)Complexit
´e - p.10/25
Égalité de complexité
Définition 22 fonctions f et g sont d'égale complexité, ce qui s'écrit comme:O( f )= O( g ) (ouf=θ(g)), ssi
f =O(g)et g =O(f) exemples:n,2n, et0,1nsont d'égale complexité:O(n)=O(2n)=O(0,1n)O(n2)etO(0,1n2+n)sont d'égale complexité:O(n2)=O(0,1n2+n)par contre:2netn3se sont PAS d'égale complexité:O(2n)?=O(n3)
Définition 3une fonction f est de de plus petite complexité que g, ce qui s'écrit comme:O(f)2nest de plus petite complexité quen:O(log2n) =O(10n2) Complexit
´e - p.11/25
Propriétés
Réflexivité:
g=O(g)Transitivité : sif=O(g)etg=O(h)alorsf=O(h)Produit par un scalaire :O(λf) =O(f),λ >0.Somme et produit de fonctions :
O(f)+O(g)=O(max{f,g})O(f).O(g)=O(f.g)
Complexit
´e - p.12/25
Complexité d'une boucle
pouri←1ànfaire s finpour avec s=O(1). Temps de calcul des:Ts=CNombre d'appels des: nTemps de calcul total :T(n) =nTs=O(n)Complexité :O(n)
Complexit
´e - p.13/25
Boucles imbriquées
Théorème 1La complexité depboucles imbriquées de 1 ànne contenant que des instructions élémentaires est en O(np) Preuve:
vrai pourp= 1,supposons la ppt vrai à l'ordrep. Soit : pouri←1ànfaire instruction finpour Complexit´e - p.14/25
Boucles tant que
h←1 h←2*h fintantque Test, multiplication, affectation :O(1):T=CNombre d'itérations :log2(n).Temps de calcul :T(n) =Clog2(n) =O(log2(n))
Complexit
´e - p.15/25
Complexité d'un algorithme récursif (1)
Soit l'algorithme :
fonctionfactorielle(n: Naturel) :Naturel début sin = 0alors retourner1 sinon retournern*factorielle(n-1) finsi fin Complexit
´e - p.16/25
Complexité d'un algorithme récursif (2)
c 1test,c2multiplication.
T(0)=c1T(n)=c1+c2+T(n-1)
?T(n) =nc2+ (n+ 1)c1 SoitC= 2max{c1,c2}
Complexité enO(n).
Les calculs de complexité d'algorithmes récursifs induisent naturellement des suites. Complexit
´e - p.17/25
Algorithmes récursifs enO(log2(n))(1)
Théorème 2Soient,debut,finetn=fin-debuttrois entiers. La complexité de l'algorithme ci dessous est enO(log2(n)). procéduref(debut,fin) Déclaration Entiermilieu
début milieu←debut+fin 2sifin-milieu>1 et milieu-debut>1alors
s sinon sitestalors f (debut,milieu) sinon f (milieu,fin) finsi finsi fin Complexit´e - p.18/25
Algorithmes récursifs enO(log2(n))(2)
Tests, s :O(1)
T(n) =T(n
2) +C T(n 2) =T(n
4) +C...=...
T(1) =T(0) +C
T(n) =T(0) +Clog2(n)
Complexit´e - p.19/25
Algorithmes récursifs enO(nlog2(n))(1)
procéduref(debut,fin) Déclaration Entiermilieu
début milieu←debut+fin 2sifin-milieu>1 et milieu-debut>1alors
s 1sinon
pouri←1ànfaire s 2finpourf(début,milieu)f(milieu,fin)
finsi fin Complexit
´e - p.20/25
Algorithmes récursifs enO(nlog2(n))(2)
Tests, s :O(1)Boucle :O(n).
T(n) =n+ 2T(n
2) 2T(n 2) n+ 4T(n 4)...=...
2 p-1T(2) =n+ 2pT(1) T(n) =n?p+ 2p?T(1)
avecp= [log2(n)] On a de plus:O(nlog2(n) +nT(1)) =O(nlog2(n))
Complexit´e - p.21/25
Principales complexités
O(1): temps constant,O(log(n)): complexité logarithmique (Classe L), O(n): complexité linaire
(Classe P), O(nlog(n))O(n2),O(n3),O(np): quadratique, cubique,polynomiale (Classe P), O(pn)complexité exponentielle
(Classe EXPTIME)".
O(n!)complexité factorielle.
Complexit
´e - p.22/25
Influence de la complexité
n→2n. O(1) O(log2(n))
O(n) O(nlog2(n))
O(n2) O(n3) O(2n) t t+ 1 2t 2t+ 2n
4t 8t t2 1 log2(n) n nlog2(n) n2 n3quotesdbs_dbs35.pdfusesText_40
Complexit
´e - p.11/25
Propriétés
Réflexivité:
g=O(g)Transitivité :sif=O(g)etg=O(h)alorsf=O(h)Produit par un scalaire :O(λf) =O(f),λ >0.Somme et produit de fonctions :
O(f)+O(g)=O(max{f,g})O(f).O(g)=O(f.g)
Complexit
´e - p.12/25
Complexité d'une boucle
pouri←1ànfaire s finpour avec s=O(1).Temps de calcul des:Ts=CNombre d'appels des: nTemps de calcul total :T(n) =nTs=O(n)Complexité :O(n)
Complexit
´e - p.13/25
Boucles imbriquées
Théorème 1La complexité depboucles imbriquées de 1 ànne contenant que des instructions élémentaires est en O(np)Preuve:
vrai pourp= 1,supposons la ppt vrai à l'ordrep. Soit : pouri←1ànfaire instruction finpourComplexit´e - p.14/25
Boucles tant que
h←1 h←2*h fintantqueTest, multiplication, affectation :O(1):T=CNombre d'itérations :log2(n).Temps de calcul :T(n) =Clog2(n) =O(log2(n))
Complexit
´e - p.15/25
Complexité d'un algorithme récursif (1)
Soit l'algorithme :
fonctionfactorielle(n: Naturel) :Naturel début sin = 0alors retourner1 sinon retournern*factorielle(n-1) finsi finComplexit
´e - p.16/25
Complexité d'un algorithme récursif (2)
c1test,c2multiplication.
T(0)=c1T(n)=c1+c2+T(n-1)
?T(n) =nc2+ (n+ 1)c1SoitC= 2max{c1,c2}
Complexité enO(n).
Les calculs de complexité d'algorithmes récursifs induisent naturellement des suites.Complexit
´e - p.17/25
Algorithmes récursifs enO(log2(n))(1)
Théorème 2Soient,debut,finetn=fin-debuttrois entiers. La complexité de l'algorithme ci dessous est enO(log2(n)). procéduref(debut,fin)Déclaration Entiermilieu
début milieu←debut+fin2sifin-milieu>1 et milieu-debut>1alors
s sinon sitestalors f (debut,milieu) sinon f (milieu,fin) finsi finsi finComplexit´e - p.18/25
Algorithmes récursifs enO(log2(n))(2)
Tests, s :O(1)
T(n) =T(n
2) +C T(n2) =T(n
4) +C...=...
T(1) =T(0) +C
T(n) =T(0) +Clog2(n)
Complexit´e - p.19/25
Algorithmes récursifs enO(nlog2(n))(1)
procéduref(debut,fin)Déclaration Entiermilieu
début milieu←debut+fin2sifin-milieu>1 et milieu-debut>1alors
s1sinon
pouri←1ànfaire s2finpourf(début,milieu)f(milieu,fin)
finsi finComplexit
´e - p.20/25
Algorithmes récursifs enO(nlog2(n))(2)
Tests, s :O(1)Boucle :O(n).
T(n) =n+ 2T(n
2) 2T(n 2) n+ 4T(n4)...=...
2 p-1T(2) =n+ 2pT(1)T(n) =n?p+ 2p?T(1)
avecp= [log2(n)]On a de plus:O(nlog2(n) +nT(1)) =O(nlog2(n))
Complexit´e - p.21/25
Principales complexités
O(1): temps constant,O(log(n)): complexité logarithmique (Classe L),O(n): complexité linaire
(Classe P), O(nlog(n))O(n2),O(n3),O(np): quadratique, cubique,polynomiale (Classe P),O(pn)complexité exponentielle
(ClasseEXPTIME)".
O(n!)complexité factorielle.
Complexit
´e - p.22/25
Influence de la complexité
n→2n. O(1)O(log2(n))
O(n)O(nlog2(n))
O(n2) O(n3) O(2n) t t+ 1 2t2t+ 2n
4t 8t t2 1 log2(n) n nlog2(n) n2 n3quotesdbs_dbs35.pdfusesText_40[PDF] ecrire un algorithme qui permet de calculer la surface d'un triangle
[PDF] ecrire un programme qui permet de calculer la surface d'un cercle
[PDF] ecrire un algorithme qui calcule la surface d'un cercle
[PDF] convertir algorithme en langage c
[PDF] programme ti 82 plus
[PDF] venga terminale
[PDF] en busca del embrion ideal correction
[PDF] generacion hombre maquina
[PDF] da vinci el cirujano robot idea de progreso
[PDF] en busca del embrion ideal texte
[PDF] séquence pédagogique idea de progreso
[PDF] generacion hombre maquina revista quo
[PDF] comment rédiger un article de presse collège
[PDF] exemple de compte rendu cm2