"'O
0
c
:J
0
:<:;
li)
.,,
..--t
c::
:l
0
~
N
"
@
~
.......
0
J::
:;
O'l
"'
·;::::
c::
0
>c::
o.
c::
0
.9
u
ü
:l
.,,
2
o.
~
"
:;
0
11
.,,
0
c:
:l
0
QJ
Exercices corrigés
1) Que représentent les nombres u(O), u(l), u(2), u(3), etc.
2) L'appel de g(lOO) dans la console Python renvoie 7. Interpréter ce résultat.
3) Pourquoi g(x) est-elle définie quel que soit x > 0?
l!ll:J Écrire une fonction récursive puissance_rap(x,n) qui à tout réel x et à tout
entier naturel n, retourne X1 , en utilisant la propriété: pour tout entier naturel p, on a
x
2
P = (x 2 )P et x
2
P+
1 = x(x 2 )P (on parle de puissance rapide).
l#JlpJ Soit (un) la suite définie par u 0 = 2 et un+I = 2un - 1.
1) Écrire une fonction récursive u(n) qui à l'entier n ~ 0 renvoie un. Implémenter en
Python, puis vérifier que u 10 = 1 025.
2) Même question avec une fonction itérative.
Pf.JI] Pour tout entier naturel n, on appelle « factorielle n », le nombre que 1 'on note
n! et défini par: O! = 1 ; 1 ! = 1 ; 2! = 1 x 2 = 2 ; ... ; n! = 1 x 2 x 3 x ... x n. Par
exemple 4! = 1x2 x 3 x 4 = 24.
1) En remarquant que, pour tout n ~ 1, n ! = n x (n-1)!, écrire une fonction récursive
factR(n) qui à tout entier n ~ 0 renvoie n! .
2) Écrire une fonction itérative factI(n) qui à tout entier n ~ 0 renvoie n! .
3) Que renvoie à tout entier naturel n, la fonction inconnue(n) suivante ?
Fonction inconnue(n: entier) : entier
Variable locale : p (entier)
Début
p +-- l
TantQue n> l Faire
1
p +-- n ~' p
n +-- n-1
FinTantQue
Retourner(p)
Fin Fonction
Solutions
DJ Après exécution, c vaut ' a z' +' e r ' +' t y' =' a z e r t y' . On peut le vérifier sur
la console Python en tapant a , b =' a z' ,' e r ' puis c =a+ b +' t y ' et en appelant enfin
la valeur de c.
m Après exécution, al vaut 0,1+5/100 = 0,15. (Vérifier sur la console Python.)
œ X vaut [1,2,3] et n vaut 6. En effet, après exécution, X prend la valeur [1,2]
puis [1,2,3]. Ensuite n prend la valeur 1 + 2 + 3 = 6. On peut le vérifier sur la
console Python en saisissant x = [ 1 , 2 ] puis x . a pp e n d ( 3 ) puis x = x [ 0] + x [ 1 ]
+ x [ 2] et en appelant enfin les valeurs de x et n.
213
0
c
:J
0
:<:;
li)
.,,
..--t
c::
:l
0
~
N
"
@
~
.......
0
J::
:;
O'l
"'
·;::::
c::
0
>c::
o.
c::
0
.9
u
ü
:l
.,,
2
o.
~
"
:;
0
11
.,,
0
c:
:l
0
QJ
Exercices corrigés
1) Que représentent les nombres u(O), u(l), u(2), u(3), etc.
2) L'appel de g(lOO) dans la console Python renvoie 7. Interpréter ce résultat.
3) Pourquoi g(x) est-elle définie quel que soit x > 0?
l!ll:J Écrire une fonction récursive puissance_rap(x,n) qui à tout réel x et à tout
entier naturel n, retourne X1 , en utilisant la propriété: pour tout entier naturel p, on a
x
2
P = (x 2 )P et x
2
P+
1 = x(x 2 )P (on parle de puissance rapide).
l#JlpJ Soit (un) la suite définie par u 0 = 2 et un+I = 2un - 1.
1) Écrire une fonction récursive u(n) qui à l'entier n ~ 0 renvoie un. Implémenter en
Python, puis vérifier que u 10 = 1 025.
2) Même question avec une fonction itérative.
Pf.JI] Pour tout entier naturel n, on appelle « factorielle n », le nombre que 1 'on note
n! et défini par: O! = 1 ; 1 ! = 1 ; 2! = 1 x 2 = 2 ; ... ; n! = 1 x 2 x 3 x ... x n. Par
exemple 4! = 1x2 x 3 x 4 = 24.
1) En remarquant que, pour tout n ~ 1, n ! = n x (n-1)!, écrire une fonction récursive
factR(n) qui à tout entier n ~ 0 renvoie n! .
2) Écrire une fonction itérative factI(n) qui à tout entier n ~ 0 renvoie n! .
3) Que renvoie à tout entier naturel n, la fonction inconnue(n) suivante ?
Fonction inconnue(n: entier) : entier
Variable locale : p (entier)
Début
p +-- l
TantQue n> l Faire
1
p +-- n ~' p
n +-- n-1
FinTantQue
Retourner(p)
Fin Fonction
Solutions
DJ Après exécution, c vaut ' a z' +' e r ' +' t y' =' a z e r t y' . On peut le vérifier sur
la console Python en tapant a , b =' a z' ,' e r ' puis c =a+ b +' t y ' et en appelant enfin
la valeur de c.
m Après exécution, al vaut 0,1+5/100 = 0,15. (Vérifier sur la console Python.)
œ X vaut [1,2,3] et n vaut 6. En effet, après exécution, X prend la valeur [1,2]
puis [1,2,3]. Ensuite n prend la valeur 1 + 2 + 3 = 6. On peut le vérifier sur la
console Python en saisissant x = [ 1 , 2 ] puis x . a pp e n d ( 3 ) puis x = x [ 0] + x [ 1 ]
+ x [ 2] et en appelant enfin les valeurs de x et n.
213
