Files
TermNSI/Recursivité/TD/TD_recursivite.md

1.6 KiB
Raw Blame History

TD Récursivité :


1. Application du cours

1. 1. Fonction somme :

def somme(n) :
    if n == 0 :
        return 0
    else :
        return n + somme(n-1)

  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}
    
  1. 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 :

    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 :

>>> 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 :

Conseils :

  • 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 U0 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