Exercices récursivité
Analyse d’une fonction récursive
Soit le programme Python suivant :
def f(a, b) :
""" a et b sont deux entiers naturels non nuls """
if b == 1 :
return a
return a + f(a, b-1)
print(f(3, 5))
f(a, b) (a et b étant des entiers naturels non nuls) ?
Occurrences
nb_occurrences(s, c) qui renvoie le nombre d’occurrences du caractère c dans la chaîne s .
Parcours d’une arborescence de fichiers
- La fonction
os.listdir(path)(du moduleos) permet d’obtenir la liste de tous les fichiers et dossier placés directement dans le dossier désigné par le cheminpath. - La fonction
os.path.isfile(path)(du moduleos.path) renvoieTruesi le cheminpathdésigne un fichier (et doncFalses’il s’agit d’un dossier) - La fonction
os.path.splitext(path)permet de séparer l’extension du reste du cheminpath, sous la forme d’une liste[racine, extension]. - La fonction
os.path.join(path1, path2, ...)permet de concaténer des éléments de chemin sans trop se soucier de la syntaxe, qui rappelons-le, varie d’un OS à l’autre !
liste_fichiers(path, ext) qui renvoie la liste de tous les fichiers ayant l’extension ext situés dans d’un dossier désigné par le chemin path , ainsi que dans tous ses sous-dossiers.
Triangle de Pascal
Le triangle de Pascal (Blaise Pascal !) est une présentation des coefficients binomiaux sous la forme d’un triangle :

On le définit par récurrence :
\(C(n, p) = \begin{cases}1, & \text{si $n=p$ ou $p=0$} \\
C(n-1, p-1)+C(n-1, p), & \text{sinon}
\end{cases}\)
avec \(0\lt p \leq n\)
Dans le triangle de Pascal, \(n\) correspond à l’indice des lignes et \(p\) à celui des colonnes.
C(n, p) qui renvoie la valeur de \(C(n, p)\).
Conversion Décimal ->Binaire
binaire(n) qui renvoie la représentation binaire naturel d’un nombre n (sous forme de chaîne de caractères : "0" ou "1").
Permutations
permutation() , sous forme récursive, permettant d’obtenir l’ensemble des permutations possibles d’un n-uplet \((e_0, e_1, \ldots, e_n)\)Exemple : permutation([1,2,3]) doit retourner [[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]
Sources :
