[PDF] Récursion Récursivité Récursion. Fonc?ons ré





Previous PDF Next PDF



Algorithmique Trier et Trouver

Recherche dans un tableau dichotomie. 7 de 47. Recherche dichotomique itérative. Remarque : La recherche dichotomique est récursive terminale.



Recherche dichotomique dans un tableau dentiers

13 sept. 2000 LANGAGE C - EXEMPLES DE PROGRAMMES. Maude Manouvrier. La reproduction de ce document par tout moyen que ce soit est interdite conformément ...



Thème 1 : la récursivité 1 Rappels sur les fonctions

Un langage récursif est un langage dans lequel on peut programmer des On cherche à résoudre le problème de recherche du maximum d'une liste L. La ...



Sujet du bac Spécialité NSI 2021 - Métropole-1 remplacement

Partie C : La recherche dichotomique récursive. 1. Donner la définition d'une fonction récursive en programmation. 2. Écrire en langage naturel ou en python 



Programmation récursive —

21 mars 2019 Ecrire une fonction récursive qui concat`ene deux listes. 4 Exercices. Exercice : 10. Programmer de façon récursive la recherche dichotomique d' ...



Algorithmes récursifs: une introduction pragmatique pour un

27 oct. 2019 3.3 Recherche dichotomique : deux classiques . . . . . . . 14 ... Récursive (algorithme 2 sur cette page même)9.



Algorithmique & programmation en langage C - vol.1 - Archive

1 févr. 2019 d'algorithmique et de programmation en langage C donnés à la Faculté d'ingénierie de ... exemple : recherche dichotomique récursive.



Récursivité

On peut citer à ce sujet Guido van Rossum le créateur du langage Python : I Figure 11 – Une version récursive correcte de la recherche dichotomique.



Récursion Récursivité

Récursion. Fonc?ons récursives. 1-? cinq exemples appels



Fonctions récursives - Lycée Pierre Corneille

En informatique une fonction f est récursive lorsque la définition de f utilise des valeurs de f. Recherche dichotomique dans une liste triée. Données.

Qu'est-ce que la recherché dichotomique ?

La recherche dichotomique (ou recherche par dichotomie) consiste à trouver un élément dans une séquence triée en divisant l'intervalle de recherche de moitié à chaque itération. La recherche par dichotomie permet de trouver l'élément recherché plus rapidement à condition que l'ensemble soit préalablement trié.

Quels sont les compléments de la recherche dichotomique ?

Implémentation de la recherche dichotomique Compléments Récursivité inefficace Précision L’algorithme itératif L’algorithme récursif Recomptages multiples Complément : du poisson dans notre algorithme Le cas de la suite de Fibonacci Qu’est-ce qu’on mange ? Codage naïf Fonction récursive Complément Arbre de Pythagore Fonction remplir

Comment faire une recherche récursive ?

Ce n'est pas que ça qu'il faut faire. Quand tu appelles ta recherche récursive sur une sous-partie du tableau (gauche/droite), il te faut d'une façon ou d'une autre renvoyer son résultat à l'appelant (qui étant la même fonction récupère alors ce résultat et le renvoie à l'appelant et etc.).

Quelle est la différence entre la recherche dichotomique et la recherche linéaire ?

Recherche dichotomique. Ce mode de recherche est rapide mais il doit être utilisé sur un tableau trié par ordre croissant, sans doublons (fonction TableauTrie ). Ce mode de recherche peut être utilisé uniquement lors d'une recherche sur un seul membre. Recherche linéaire. La recherche démarre : La recherche s'arrête au premier élément trouvé.

Récursion Récursivité

30/03/161

Récursion

Fonc+onsrécursives

Récursion:

défini+onsetpremiersexemples

Exercicesdirigés:

Plan sur 2 séances

Récursivité

Défini+on,premiersexemples

Récursion

Exemplesbasiques

30/03/162

Structures de données récursives

[a/--b-c)+d)*-e-a)]*c codageMorseRécursionetrécurrence récurrence

Récursionetterminaison

Desrécursionsimportantes

-diviserpourrégner -larecherchedichotomique -exponen+a+onrapidex 2p =-x p 2 etx 2p+1 =x×-x p 2 itéra+ve

Récursion

Recursion

Avantages

prouverqu'unesolu+onitéra+ve " TowerofHanoi4 »parAndréKarwathakaAka - Travailpersonnel.SouslicenceCCBY-SA2.5via

WikimediaCommons. htp://commons.wikimedia.org/wiki/File:Tower_of_Hanoi_4.gif#/media/File:Tower_of_Hanoi_4.gif

Inconvénients

defonc+ons-lapiled'exécu+on)

Récursion

Récursion

Fonc6ons récursives

30/03/163

Factorielle

...tropclassiquemaisinstruc+f

Factorielle : version itéra6ve (rappel)

fonction factorielle(n : entier) retourne entier res : entier = 1 // j'accumule dans res i : entier // iterateur debut pour i de 1 à n faire res = res * i fin pour retourne res fin fonction

Factorielle : version récursive par$elle

fonction factorielle(n : entier) retourne entier //Première étape : la relation de récurrence pour n ≥ 1 debut retourne n * factorielle(n-1) fin fonction

Appeldefonc+onclassique:

Défini+ondefonc+on:

declare f3 : entier début f3 = factorielle(3) fin Factorielle récursive : arrêter les appels ! f3 = factorielle(3) debut retourne 3 * factorielle(2) fin fonction ? = factorielle(2) debut retourne 2 * factorielle(1) fin fonction ?? = factorielle(1) debut retourne 1 * factorielle(0) fin fonction ??? = factorielle(0) debut retourne 1 * factorielle(-1) fin fonction

30/03/164

Factorielle : version récursive qui termine

fonction factorielle(n : entier) retourne entier // 1!=1 et n! = n*(n-1)! n > 1 debut si n==1 alors retourne 1 sinon retourne n * factorielle(n-1) fin si fin fonction

2instruc+onsderetour

Factorielle : autre version récursive qui termine fonction factorielle(n : entier) retourne entier // 1!=1 et n! = n*(n-1)! n > 1 res : entier debut si n==1 alors res = 1 sinon res = n * factorielle(n-1) fin si retourne res fin fonction Factorielle : version récursive détaillée fonction factorielle(n : entier) retourne entier // 1!=1 et n! = n*(n-1)! n > 1 r, f : entier debut si n==1 alors retourne 1 sinon r = factorielle(n-1) f = n * r retourne f fin si fin fonction

Chaqueappelrécursifàfactorielle-)introduit2variableslocales:r et f.Cesvariablesdoiventêtreévaluéesdanslecontexte-auniveau)del'appelconcerné:

premierappelrécursif complémentsenfindecechapitre:

Fonc6on récursive : première synthèse

30/03/165

declare f3 : entier début f3 = factorielle(3) fin Factorielle récursive : appels, retours et calculs f3 = factorielle(3) debut si (3 == 1) alors retourne 1 sinon retourne 3 * factorielle (2) fin fonction ? = factorielle(2) debut si (2==1) alors retourne 1 sinon retourne 2 * factorielle(1) fin fonction ?? = factorielle(1) debut si (1==1) alors retourne 1 fin fonction 21
6 "Arbre" des appels récursifs si n == 0 alors retourne 1 placeoccupée)tropnombreux: enpython:1000appelsaumaximum outropvolumineux: quiplusestsilarécursionestmul+ple:

Fibonacci:f-n+1)=f-n)+f-n-1)

Appels récursifs

Pile des appels récursifs

fonction factorielle(n : entier) retourne entier // 1!=1 et n! = n*(n-1)! n > 1 debut si n==1 alors retourne 1 sinon retourne n * factorielle(n-1) fin si fin fonction fact(4) fact(3) fact(4) fact(2) fact(3) fact(4) fact(1) fact(2) fact(3) fact(4) fact(1) fact(2) fact(3) fact(4) fact(2) fact(3) fact(4) fact(3) fact(4) fact(4) fact(0) fact(1) fact(2) fact(3) fact(4)

PhasedesappelsrécursifsPhasedesévalua+onsrécursivesavecvaleurderetourquipermetd'évaluer:fact(i) = i*fact(i-1), i≥1

fact(0) fact(1) fact(2) fact(3) fact(4)

30/03/166

Fibonacci

naturel:aten+on!

Fibonnaci: une récursion mul6ple

fonction fib(n : entier) retourne entier // f(0)=f(1)=1, f(n+1) = f(n) + f(n-1), n > 1 res : entier debut si (n == 0) ou (n==1) alors res = 1 sinon res = fib(n) + fib(n-1) fin si retourne res fin fonction

Fibonacci ou l'inefficacité de la récursion

Qued'appelsrépétés!

Fibonacci ou l'inefficacité de la récursion

30/03/167

Exponen+a+onetexponen+a+onrapide

L'exponen6a6on en6ère : version récursive classique

Objec+f:calculerx

n

Principe:u+liserx

n = x×x n-1 fonction expo(x : flottant, n : entier) retourne flottant res : flottant debut si (n == 0) alors res = 1.0 sinon res = res * expo(x, n-1) fin si fin si retourne res fin fonction L'exponen6a6on rapide ou l'efficacité de la récursion

Objec+f:calculerx

n

Principe:u+liserx

2p =-x p 2 etx 2p+1 =x×-x p 2 fonction expo_rapide(x : flottant, n : entier) retourne flottant res : flottant debut si (n == 0) alors res = 1.0 sinon res = expo_rapide(x, n/2) si (n%2 ==0) alors // n est pair res = res * res sinon // n est impair res = res * res * x fin si fin si retourne res fin fonction

Exponen6a6on rapide ... en effet !

Calculons3.0

5 -Exponen+a+onrécursiverapide expo_rapide-3.0,3) fonction expo_rapide(x : flottant, n : entier) retourne flottant res : flottant debut si (n == 0) alors retourne 1.0 sinon res = expo_rapide(x, n/2) si (n%2 ==0) alors retourne res * res sinon retourne res * res * x fin si fin si fin fonction

30/03/168

Recherchedichotomique

Recherche dichotomique : rappel du principe

- diviser: - régner:

Terminaison

latailledel'espacederechercheestdiminuéepar2àchaqueitéra+on- exemple:n=64à32à16à8à4à2à1- sin>0estlatailledel'espacederecherche-nombredevaleurs,longueurdutableau),cetetaille

évoluecommelasuiten,n/2,n/4,...,n/2

k - Ainsiladichotomieconstruit,àterme,unensemblede1élément,unsingleton,égalounonàla - Doncladichotomietermine.

Dichotomie : algorithme itéra6f

fonction dichotomie(v : flottant, t : tableau de flottants, n : entier) retourne booléen // renvoie Vrai si la valeur v est présente dans le tableau t, et Faux sinon present : booleen = Faux g : entier = 0 // indice du premier élément du tableau t (à gauche) d : entier = n-1 // indice du dernier élément du tableau t (à droite) début tantque (present == Faux) et (g <= d) faire // si g > d alors t[g,d] est vide m = (g+d)÷2 // indice du pivot ≥ 0 si t[m] == v alors present = Vrai // on a trouvé : le pivot est la valeur cherchée sinon si v < t[m] alors d = m-1 // on cherchera dans la partie gauche de t sinon g = m+1 // on cherchera dans la partie droite de t fin si fin tantque retourne present // ou m si on cherche la position de v fin fonction

La dichotomie : version récursive

Principe

Exercice

En-tête

fonction dichotomieRec(v : flottant, t : tableau de flottants, g : entier, d : entier) retourne booléen

declare trouvé : booleen debut trouvé= dichotomieRec(15.0, notes, 0, 31) // bien noter la forme fin // de l'appel principal

30/03/169

La dichotomie : version récursive

fonction dichotomieRec(v : flottant, t : tableau de flottants, g : entier, d : entier) retourne booléen // renvoie Vrai si la valeur v est présente dans le tableau t [g..d], et Faux sinon début si (g > d) alors // alors t[g,d] est vide retourne Faux // premier cas terminal fin si m = (g+d)÷2 // indice du pivot ≥ 0 si t[m] == v alors // on a trouvé : le pivot est la valeur cherchée retourne Vrai // second cas terminal fin si si v < t[m] alors retourne dichotomieRec(v, t, g, m-1) // on cherche dans le sous-tableau gauche de t sinon retourne dichotomieRec(v, t, m+1, d) // on cherche dans la sous-tableau droit de t fin si fin fonction

Trifusion

...àvenirdansunchapitreprochain

Fonc6ons récursives

2-exercicesdirigés

quotesdbs_dbs31.pdfusesText_37
[PDF] exemple de manuel de procedure informatique

[PDF] organisation d une dsi type

[PDF] manuel de procédures informatiques

[PDF] cyberlux 8

[PDF] organisation dun service informatique dans une entreprise

[PDF] cyberlux 8 crack

[PDF] exemple dossier exploitation informatique

[PDF] cyberlux 8 full

[PDF] bibliographie de max weber

[PDF] max weber pdf

[PDF] max weber économie et société tome 2 pdf

[PDF] max weber le savant et le politique pdf

[PDF] max weber économie et société fiche de lecture

[PDF] max weber économie et société tome 1 résumé

[PDF] max weber économie et société pdf