Exercices pour débuter

Exercice 1

Écrire une fonction récursive puissance qui prend en argument un flottant \(x\) non nul et un entier naturel \(n\) et qui renvoie \(x^n\).

Pour écrire cette fonction, on réfléchira au cas de base puis, on pourra écrire puissance(n) en fonction de puissance(n-1).

Exercice 2 : des spirales avec Turtle

Écrire une fonction récursive Python spirale(cote, delta, angle, n) utilisant la tortue. Le paramètre cote est la longueur du premier segment tracé, delta est la quantité ajoutée à cette longueur de segment après chaque virage, le virage étant paramétré par angle. Enfin, n représente le nombre de segments tracés.

Par exemple :

  • l'appel spirale(10, 5, 90, 30) devrait donner une figure qui commence ainsi :

Spirale carréeInformations[1]
  • l'appel spirale(2, 3, 120, 40) devrait donner :

Spirale triangulaireInformations[2]

Ces fonctions sont appliquées à une tortue « anonyme », c'est-à-dire sans programmation orientée objet.

Exercice 3 : Secret de protection

On appelle SECRET de protection n, une chaîne de caractères composée de n parenthèses ouvrantes, puis du mot SECRET suivi de n parenthèses fermantes. Par exemple :

  • un SECRET de protection 4 est la chaîne de caractères :

1
"((((SECRET))))" 
  • un SECRET de protection 0 est la chaîne de caractères :

1
"SECRET"

Le but de cet exercice est de programmer une version récursive de la fabrication d'un SECRET de protection n.

  1. Déterminez le (ou les) cas de base.

  2. Exprimer protection(n) en fonction de protection(n-1).

  3. En déduire la définition récursive de la fonction protection() :

Exercice 4 : Suite de Syracuse

La suite de Syracuse d'un nombre entier N > 0 est définie par récurrence, de la manière suivante :

\[U_0 = N\\ U_n+1 = \left\{ \begin{array}{l l} \frac{U_n}{2} & \quad \text{si $U_n$ est pair,}\\ 3U_n +1 & \quad \text{si $U_n$ est impair}\\ \end{array} \right. \]

La conjecture de Syracuse (non résolue à ce jour) affirme que pour tout entier N > 0, il existe un indice n tel que un = 1.

Programmer une fonction récursive syracuse qui affiche les termes de la suite jusqu'à ce qu'un terme soit égal à 1.

Un autre énoncé :

On appelle suite de Syracuse une suite d'entiers naturels définie de la manière suivante : on part d'un nombre entier strictement positif ; s’il est pair, on le divise par 2 ; s’il est impair, on le multiplie par 3 et on ajoute 1. En répétant l’opération, on obtient une suite d'entiers strictement positifs dont chacun ne dépend que de son prédécesseur.

Après que le nombre 1 a été atteint, la suite des valeurs (1, 4, 2, 1, 4, 2…) se répète indéfiniment.

Par exemple, à partir de 14, on construit la suite des nombres :

14, 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1 (on arrête au premier 1 atteint) .

C'est ce qu'on appelle la suite de Syracuse du nombre 14.