ajout de tous les cours et TP préparés cet été
This commit is contained in:
40
Recursivité/Exercices_Recursivité.md
Normal file
40
Recursivité/Exercices_Recursivité.md
Normal 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* ?
|
||||
Reference in New Issue
Block a user