• Aucun résultat trouvé

Fonction récursive

N/A
N/A
Protected

Academic year: 2022

Partager "Fonction récursive"

Copied!
3
0
0

Texte intégral

(1)

Chapitre 3 Fonction récursive Spécialité NSI

Fonction récursive Chapitre 3

Version avec preuves.

Table des matières

1 Dénition d'une fonction récursive 2

2 Utilisation de la pile 3

sebjaumaths.free.fr 1/3 Lycée Jean Rostand

(2)

Chapitre 3 Fonction récursive Spécialité NSI

1 Dénition d'une fonction récursive

Une fonction récursive est une fonction qui s'appelle dans la dénition.

Pour assurer une terminaison à la fonction, il est nécessaire d'avoir dans la dénition des cas terminaux qui ne nécessitent pas un autre appel.

Dénition 1 :

Exemples 1 : Itératif vs récursif : def compte_for (n) :

s = 0

for i in range(n) : print(s)

s = s+1 return s

print(compte_for(5)) def compte_rec(n,i,s) :

if i == n : return s else :

print(s)

return compte_rec(n,i+1,s+1) print(compte_rec(5,0,0))

Exemples 2 : Suites dénie par une relation de récursion en mathématiques : La suite (un) dénie pour tout n∈N par :

u0 =−1

un= 2un−1−3 def u (n) :

if n == 0 : return -1 else :

return 2*u(n-1) -3 print(u(4))

Exemples 3 : Occurrence d'une lettre def occurrence(a,mot) :

if mot == "" : return 0 else :

if mot[0] == a :

return 1 + occurrence(a,mot[1:]) else :

return occurrence(a,mot[1:]) print(occurrence("e","atredheajeojehzjfe"))

sebjaumaths.free.fr 2/3 Lycée Jean Rostand

(3)

Chapitre 3 Fonction récursive Spécialité NSI

Exercice 1 :

1. Écrire la fonction nb_de_chiffre qui prend en entier et compte le nombre de chires qui compose l'écriture de l'entier.

2. Écrire la fonction nb_de_zero qui prend en entier et compte le nombre de 0 dans son écriture décimale.

2 Utilisation de la pile

Exemples 4 :Fonction factorielle def fact(n) :

""" renvoie n! """

if n == 0 : return 1 else :

return n * fact(n-1)

L'interpréteur gère une pile dite de récursion pour les appels successifs puis les calculs à eectuer.

Exercice 2 : Construire la pile pour le calcul de fact(4).

Remarque : Une fonction récursive terminale est une fonction récursive où l'appel récursif est la dernière instruction à être évaluée. Il n'y a pas ici de phase de dépilement.

Exercice 3 : Écrire la fonction factorielle en version terminale.

Correction

def fact_terminale(n) : def cumul(n,c) :

if n == 0 : return c else :

return cumul(n-1 , n*c) return cumul(n,1)

print(fact_terminale(5))

sebjaumaths.free.fr 3/3 Lycée Jean Rostand

Références

Documents relatifs

Une suite géométrique positive et strictement croissante admet une limite égale à

Programmer cet algorithme sur machine (calculatrice ou ordinateur avec le logiciel Algobox). Écrire le programme en indiquant la marque de la calculatrice dans le cas d’un programme

Écrire une fonction oneDigit qui prend en paramètre un entier n entre 1 et 9 et renvoie son écriture en toutes lettres.. Écrire une fonction twoDigits qui prend en paramètre un entier

Écrire une fonction oneDigit qui prend en paramètre un entier n entre 1 et 9 et renvoie son écriture en toutes lettres.. Écrire une fonction twoDigits qui prend en paramètre un entier

La question 1 permet de « construire » la suite tandis que la question 2 (plus délicate) permet d’obtenir un élément-clé nous permettant de conclure à la convergence de la

Suites et intégrales … Un mélange classique permettant, à la dernière question, d’obtenir une jolie expression ☺.. Au préalable, il aura fallu effectuer une intégration

Dans cette question plus particulièrement, on citera très précisément les théorèmes utilisés.. Cette fonction n'est pas intégrable au sens de l'intégrabilité de la classe

Dans cette question plus particulièrement, on citera très précisément les théorèmes