• Aucun résultat trouvé

TD 1 : Programmation r´ecursive

N/A
N/A
Protected

Academic year: 2022

Partager "TD 1 : Programmation r´ecursive"

Copied!
2
0
0

Texte intégral

(1)

TD 1 : Programmation r´ecursive Miage L2 - Universit´e de Nanterre

Chaque fois que vous impl´ementez une fonction, pensez `a bien indenter votre code, `a le commenter (sans pour autant paraphraser) et `a le standardiser . . .

Exercice 1 :

A partir de l’algorithme suivant, ´ecrivez une fonction r´ecursive retournant le mˆeme r´esultat, puis d´eroulez les deux algorithmes pour n=256 et m=64.

int pgcd(int n, int m) {

while(m) {

int r=n%m;

n=m;

m=r;

}

return m;

}

Exercice 2 : Consid´erons la fonction suivante :

int mystere(int n) {

if(n<10) return 1;

else return 1+mystere(n/10);

}

1. Donnez les r´esultats pour les valeurs suivantes de n : 5, 20, 98, 956.

2. Que calcule la fonction mystere pour des valeurs enti`eres et positives de n?

Exercice 3 : xn =x×xn1 lorsque n >0 et x0 = 1.

1. Ecrivez une fonction it´erative qui calcule xn, avec un r´eel x et un entier n. 2. Ecrivez une fonction r´ecursive qui calcule xn , avec un r´eel x et un entier n.

Exercice 4 :

L’algorithme dit d’exponentiation rapide permet de calculer la ni`eme puissance d’un nombre plus efficacement qu’en le multipliant n fois par lui-mˆeme. Il repose sur les deux faits suivants :

- x2n = (x2)n - x2n+1 =x×x2n

1. Ecrivez une fonction r´ecursive prenant un r´eelxet un entier nen argument, et ren- voyant en r´esultat xn, en appliquant r´ecursivement celle des deux ´egalit´es qui correspond.

1

(2)

2. Supposons que l’on calcule 265 `a l’aide de votre fonction. Donnez la suite des appels r´ecursifs effectu´es, avec leur imbrication.

3. Combien y a t-il d’appel `a la fonction provoqu´es lors du calcul de 216 ? 232 ? 264

? et par la m´ethode pr´ec´edente (exercice pr´ec´edent) ? Exercice 5 :

Les coefficients binomiaux sont d´efinis sur les entiers naturels n≥k ≥0 par

n

k

= n!

k!(n−k)!

Une relation de r´ecurrence valable est la suivante :

n+ 1

k+ 1

=

k

n

+

n

k+ 1

avec ∀n≥0 n0

= nn

= 1.

R´ealisez une fonction effectuant un calcul r´ecursif des coefficients binomiaux qui n’utilise que l’addition des entiers.

Exercice 6 :

Impl´ementez l’algorithme du tri fusion vu en cours.

Exercice 7 :

La recherche d’un ´el´ement dans un tableau non tri´e est lin´eaire (il faut parcourir en moyenne un nombre d’´el´ements proportionnel au nombre d’´el´ements du tableau et au pire les n ´el´ements du tableau). Si le tableau est tri´e (on suppose en ordre croissant), il est possible de faire une recherche beaucoup plus rapidement en utilisant une m´ethode dichotomique. On coupe le tableau en deux parties de longueurs `a peu pr`es ´egales. On compare l’´el´ement cherch´e au dernier ´el´ement de la premi`ere partie. Puis selon le r´esultat du test, on cherche l’´el´ement r´ecursivement dans la premi`ere ou la deuxi`eme partie. On peut ainsi ´ecrire une fonction r´ecursive qui donne le nombre d’´el´ements d’un tableau tri´e donn´e, inf´erieurs strictement `a l’´el´ement cherch´e. On peut ´ecrire une deuxi`eme fonction qui appelle la premi`ere et renvoie l’indice de la premi`ere occurence de l’´el´ement recherch´e s’il est pr´esent dans le tableau ou -1 s’il en est absent..

2

Références

Documents relatifs

2.7.1 Composition d’un MRU et d’un MRUA non-perpendiculaires : Le boulet de canon, la balle de golf, le ballon de football 13 2.7.2 2 MRUAs avec vitesses

En d´ eduire une expression simple de f (on pourra distinguer plusieurs cas suivant les intervalles et les valeurs de a consid´ er´

Rappelons que 2 matrices semblables ont le mˆ eme polynˆ ome caract´ eristique, et que le polynˆ ome caract´ eristique d’une matrice et de sa transpos´ ee sont identiques.. Un

Dans la deuxi` eme, on construit effectivement une suite de polynˆ omes qui converge uniform´ ement vers toute fonction continue.. Le m´ elange entre les parties analyse et les

Commentaires : C’est un sujet tr` es classique, o` u il est question d’´ equations diff´ erentielles, de s´ eries enti` eres, d’int´ egrales d´ ependant d’un param` etre,

I.A.1) Nous prouvons par exemple que si A est triangulaire inf´ erieure inversible, alors A − 1 est elle- mˆ eme triangulaire inf´ erieure. Il suffit alors de prendre la transpos´

On dit qu’elles sont localement isom´ etriques si tout point p de S admet un voisinage isom´ etrique.. a un sous-ensemble de S et tout point p de S admet un voisinage isom´ etrique `

Cette question a été relativement bien traitée par l’ensemble des candidats, ce qui est assez remarquable par rapport aux éditions précédentes, même si certains placent