Paradigmes : correction en spoiler MkDocs + Récursivité : renommage EXERCICES.md

This commit is contained in:
2026-06-15 12:10:52 +02:00
parent 9ad5b99920
commit 59d8116c46
3 changed files with 205 additions and 320 deletions

40
Recursivité/EXERCICES.md Normal file
View File

@@ -0,0 +1,40 @@
# Exercices Récursivité
---
## Exercice 1 : Exponentiation rapide
On rappelle que l'exponentiation rapide permet de calculer le nombre a<sup>n</sup> en utilisant les relations de récurrence suivantes :
- a<sup>0</sup> = 1
- Si n est pair : a<sup>n</sup> = (a × a)<sup>n/2</sup>
- Sinon : a<sup>n</sup> = a × (a × a)<sup>(n-1)/2</sup>
**Questions :**
1. Écrire une version récursive de l'exponentiation rapide.
2. Écrire une version itérative de l'exponentiation rapide.
---
## Exercice 2 : Liste décroissante
Écrire une fonction récursive d'argument `n` qui génère la liste suivante :
```python
[n, n-1, ..., 1, 0]
```
---
## Exercice 3 : Multiplication égyptienne
La multiplication égyptienne, dite aussi du paysan russe, était utilisée par les scribes dès l'Antiquité. Elle ne nécessite pas la connaissance des tables de multiplication, seulement l'addition et la division par deux.
On multiplie deux entiers, *a* et *b* de la manière suivante : on divise *a* par 2 tant que c'est possible, en doublant *b*, sinon on décrémente *a* et on ajoute *b* au résultat.
**Questions :**
1. Utiliser cette technique pour calculer le produit *a* × *b* avec *a* = 13 et *b* = 61.
2. Écrire une fonction récursive qui calcule le produit de *a* et *b* en utilisant la multiplication égyptienne.
3. Quelle est la complexité de cet algorithme en fonction de *a* ?