• Aucun résultat trouvé

Travaux Dirigés d’algorithmique n

N/A
N/A
Protected

Academic year: 2022

Partager "Travaux Dirigés d’algorithmique n"

Copied!
2
0
0

Texte intégral

(1)

Travaux Dirigés d’algorithmique n

o

4

Cours d’analyse, algorithmique

—Master 2 CCI—

xExercice 1.Pour chacune des fonctions suivantes, l’exécuter à la main sur un exemple, justifier si elle termine ou non en général, et si oui dire ce qu’elle fait ou calcule.

// f est appelee avec n >= 0 public static int f(int n) {

if (n == 0) return 1;

else return f(n+1);

}

// sommeBis est appelee avec n < 0 public static int sommeBis(int n) {

if (n == 0) return 0;

else {

int result = sommeBis(n-1);

result += n;

return result;

} }

// g est appelee avec n >= 0 public static int g(int n) {

if (n <= 1) return 1;

else return 1 + g(n-2);

}

xExercice 2.Construire la forme récursive de la fonction g() définie ci-dessous.

public static void g(int n){

for(int i = 0; i < n; i++) System.out.println(i);

return; }

xExercice 3. Écrire une fonction récursive qui calcule la somme de nombres de1 a n, si n > 0 et renvoie0 sinon.

xExercice 4. Donner un algorithme récursif pour calculer xn , x et n positifs non nuls. Peut-on calculerxn avec moins de multiplications ?

xExercice 5.Écrire une fonction récursivepgcd(m, n)qui calcule le plus grand diviseur commun des deux entiers (non-négatifs)met n.

1

(2)

xExercice 6.(Triangle de Pascal).

Calculer directement par récursivité les combinaisons :Cnp =Cn−1p−1+Cn−1p pour n et pdonnés, avec0< p < nConditions limites :C00= 1 =Ci0=Cii

xExercice 7. (Chiffres en base 10). Écrire un algorithme récursif qui prends un paramètren et qui teste si ncontient au moins un zéro dans son écriture en base 10. On fait ici la convention que l’écriture en base 10 de zéro est zéro.

xExercice 8. (Récursion mutuelle).

On considère les fonctions mutuellement récursives suivantes :

def u(n):

if n == 0:

return 1 else:

return u(n-1)+v(n-1) def v(n):

if n == 0:

return 0 else:

return 2*u(n-1)+v(n-1) 1. Calculeru0, u1, u2, u3, v0, v1, v2et v3.

2. Donner les récurrences vérifiées par les suites(un)et (vn)et montrer que la suite(un)vérifie la récurrence,un+2= 2un+1+un.

xExercice 9.Décrire une fonction récursive qui, étant donné un entierX, détermine la valeur la plus proche deX dans un tableau d’entiers.

xExercice 10.

On considère la suite de Lucas définie parL0= 2,l1= 1, et pourn >0, Ln+2=Ln+1+Ln. 1. Écrire une fonction récursive qui calculeLn en fonction den.

On admet que

Ln= 1 +√ 5 2

!n

+ 1−√ 5 2

!n

.

2. Quel est la complexité de cette algorithme ?

3. En utilisant une fonction à deux paramètres écrire un algorithme dont la complexité estΘ(n).

4. Peut-on faire mieux ?

2

Références

Documents relatifs

[r]

O sistema de numeração que hoje utilizamos é do tipo

MAIN

MAIN

2) Découper dans ces feuilles les phrases et les mots que nous avons écrits, récupérer ses mots 3) Fabriquer un texte avec ces mots que nous avons écrit. Il sera surréaliste

Pour chacun des patrons de programmes suivants, dire en fonction de n quel est le nombre d’opé- rations op que le programme effectue.. Justifier votre résultat par un calcul

Écrire un algorithme récursif qui prends un paramètre n et qui teste si n contient au moins un zéro dans son écriture en base 10.. On fait ici la convention que l’écriture en base

Les nombres premiers p (en bleu) ont évidemment leur “dernier caractère” non nul dans toutes les écritures autres que p-adique ; il s’agit du coefficient de la puissance nulle de