ajout sequence recursivité
This commit is contained in:
78
Recursivité/TD/TD_recursivite.md
Normal file
78
Recursivité/TD/TD_recursivite.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# TD Récursivité :
|
||||
|
||||
------
|
||||
|
||||
## 1. Application du cours
|
||||
|
||||
### 1. 1. Fonction somme :
|
||||
|
||||
1) Combien d'appel de fonction sont nécessaire pour somme(5) ? somme(n) ?
|
||||
|
||||
### 1. 2. Fonction factorielle :
|
||||
|
||||
1. Ecrire le code de la fonction *factorielle*(n) étant défini comme :
|
||||
|
||||
$$
|
||||
\text{factorielle}(n) =
|
||||
\begin{cases}
|
||||
1 & \text{si } n = 0 \\
|
||||
n \times \text{factorielle}(n - 1) & \text{sinon.}
|
||||
\end{cases}
|
||||
$$
|
||||
|
||||
|
||||
2) Quels seront les appels effectués pour obtenir factorielle(4) ?
|
||||
|
||||
## 2. TD
|
||||
|
||||
### 2. 1. Fonction mystère :
|
||||
|
||||
1. Que fait la fonction mystère ci-dessous :
|
||||
|
||||
```python
|
||||
def mystere(i,k):
|
||||
if i<=k :
|
||||
print(i)
|
||||
mystère(i+1,k)
|
||||
```
|
||||
|
||||
### 2. 2. Nombre de chiffre d'un nombre :
|
||||
|
||||
Ecrire une fonction nb_chiffre(n) permettant d'obtenir le nombre de chiffre d'un nombre :
|
||||
|
||||
```python
|
||||
>>> nb_chiffre(9)
|
||||
1
|
||||
>>> nb_chiffre(99)
|
||||
2
|
||||
```
|
||||
|
||||
### 2. 3. Maximum d'un tableau :
|
||||
|
||||
Ecrire une fonction maximum(t) permettant d'obtenir le nombre le plus grand d'un tableau :
|
||||
|
||||
> Tips :
|
||||
>
|
||||
> - Utilisez la fonction max(a,b)
|
||||
> - Les slices
|
||||
> - t = [0,1,2]
|
||||
> - t[2:] => [2]
|
||||
|
||||
## 3. Bonus :
|
||||
|
||||
### 3. 1. Suite de Syracuse :
|
||||
|
||||
La suite de syracuse est une suite définie comme :
|
||||
|
||||
$$
|
||||
U_{n+1} =
|
||||
\begin{cases}
|
||||
U_n / 2 & \text{si } U_n \text{ est pair} \\
|
||||
3U_n + 1 & \text{sinon}
|
||||
\end{cases}
|
||||
$$
|
||||
Sachant que U<sub>0</sub> est supérieur à 1
|
||||
|
||||
1. Ecrire la fonction *syracuse(u)* affichant les valeurs de la suite de syracuse.
|
||||
La suite s'arrête lorsque *u* est inférieur ou égal à 1
|
||||
|
||||
BIN
Recursivité/TD/TD_recursivite.pdf
Normal file
BIN
Recursivité/TD/TD_recursivite.pdf
Normal file
Binary file not shown.
71
Recursivité/TD/TD_recursivite_correction.md
Normal file
71
Recursivité/TD/TD_recursivite_correction.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# TD Récursivité :
|
||||
|
||||
------
|
||||
|
||||
## 1. Application du cours
|
||||
|
||||
### 1. 1. Fonction somme :
|
||||
|
||||
Combien d'appel de fonction sont nécessaire pour somme(0), somme(5) et somme(n) ?
|
||||
|
||||
> Il faut 1 appels pour somme(0), 6 pour somme(5), n+1 pour somme(n)
|
||||
|
||||
### 1. 2. Fonction factorielle :
|
||||
|
||||
1)
|
||||
|
||||
```python
|
||||
def factorielle(n) :
|
||||
if n == 0 :
|
||||
return 1
|
||||
else :
|
||||
return n * factorielle(n-1)
|
||||
```
|
||||
|
||||
2)
|
||||
|
||||
> Il y aura factorielle(4), factorielle(3), factorielle(2), factorielle(1), factorielle(0)
|
||||
|
||||
### 2. 1. Fonction mystère :
|
||||
|
||||
1. Que fait la fonction mystère ci-dessous :
|
||||
|
||||
> La fonction mystère affiche les entiers entre i et k
|
||||
|
||||
### 2. 2. Nombre de chiffre d'un nombre :
|
||||
|
||||
Ecrire une fonction nb_chiffre(n) permettant d'obtenir le nombre de chiffre d'un nombre :
|
||||
|
||||
```python
|
||||
def nb_chiffre(n) :
|
||||
if n <= 9 :
|
||||
return 1
|
||||
else :
|
||||
return 1 + nb_chiffre(n//10)
|
||||
```
|
||||
|
||||
### 2. 3. Maximum d'un tableau :
|
||||
|
||||
```python
|
||||
def maximum(t):
|
||||
if len(t) == 0:
|
||||
return -1
|
||||
elif len(t) == 1 :
|
||||
return t[0]
|
||||
else :
|
||||
return max(t[0], maximum(t[1:]))
|
||||
```
|
||||
|
||||
## 3. Bonus :
|
||||
|
||||
### 3. 1. Suite de Syracuse :
|
||||
|
||||
```python
|
||||
def syracuse(u):
|
||||
print(u)
|
||||
if u > 1 :
|
||||
if u%2 == 0 :
|
||||
return syracuse(u//2)
|
||||
else :
|
||||
return syracuse(u*3 + 1)
|
||||
```
|
||||
36
Recursivité/TD/fonction_du_td.py
Normal file
36
Recursivité/TD/fonction_du_td.py
Normal file
@@ -0,0 +1,36 @@
|
||||
def fct_recursive() :
|
||||
print("Je suis un appel de la fonction")
|
||||
fct_recursive()
|
||||
|
||||
def somme(n) :
|
||||
if n == 0 :
|
||||
return 0
|
||||
else :
|
||||
return n + somme(n-1)
|
||||
|
||||
def factorielle(n) :
|
||||
if n == 0 :
|
||||
return 1
|
||||
else :
|
||||
return n * factorielle(n-1)
|
||||
|
||||
def mystere(i,k):
|
||||
if i<=k :
|
||||
print(i)
|
||||
boucle(i+1,k)
|
||||
|
||||
def maximum(t):
|
||||
if len(t) == 0:
|
||||
return -1
|
||||
elif len(t) == 1 :
|
||||
return t[0]
|
||||
else :
|
||||
return max(t[0], maximum(t[1:]))
|
||||
|
||||
def syracuse(u):
|
||||
print(u)
|
||||
if u > 1 :
|
||||
if u%2 == 0 :
|
||||
return syracuse(u//2)
|
||||
else :
|
||||
return syracuse(u*3 + 1)
|
||||
Reference in New Issue
Block a user