Vous êtes sur la page 1sur 302

Mathématiques

pour
l'informatique
Pour le BTS SIO

Rappels de cours
Exercices corrigés
TD,TP
Annales corrigées
Toutes les marques citées dans cet ouvrage sont des
marques déposées par leurs propriétaires respectifs.

Illustration de couverture:
©iStock.com/a hlobystov

Le pictogramme qui figure ci-contre d'enseignement supérieur, provoquant une


mérite une explication . Son objet est baisse brutale des achats de livres et de
d'alerter le lecteur sur la menace que revues, au point que la possibilité même pour
représente pour l'avenir de l'écrit, les auteurs de créer des œuvres
particulièrement dans le domaine DANGER nouvelles et de les faire éditer cor-
de l'édition technique et universi- rectement est aujourd'hui menacée.
taire, le développement massif du
photocopillage.
Le Code de la propriété intellec-
tuelle du l er juillet 1992 interdit
®
LE PHOTOCOPLLAGE
en effet expressément la photoco- TUE LE LIVRE
Nous rappelons donc que toute
reproduction, portielle ou totale,
de la présente publication est
interdite sans autorisation de
l'auteur, de son éditeur ou du
pie à usage collectif sans autori- Centre français d'exploitation du
sation des ayants droit. Or, cette pratique droit de copie (CFC, 20, rue des
s'est généralisée dans les établissements Grands-Augustins, 75006 Paris).

-0
0
c
:J © Dunod, 2015
0
li)
..-t
5 rue Laromiguière, 75005 Paris
0
N
www.dunod.com
@ ISBN 978-2-10-072807-7
.......
J::
O'l
·;:::: Le Code de la propriété intellectuelle n'autorisant, aux termes de l'article
>- L. 122-5, 2° et 3 ° a), d ' une part, que les «copies ou reproductions strictement
0.
0 réservées à l' usage privé du copiste et non destinées à une utilisation collective »
u
et, d'autre part, que les analyses et les courtes citations dans un but d'exemple et
d'illustration, « toute représentation ou reproduction intégrale ou partielle faite
sans le consentement de l'auteur ou de ses ayants droit ou ayants cause est
illicite » (art. L. 122-4).
Cette représentation ou reproduction, par quelque procédé que ce soit, constitue-
rait donc une contrefaçon sanctionnée par les ar ticles L. 335-2 et suivants du
Code de la propriété intellectuelle.
TABLE DES MATIÈRES

Avant-propos VII
PARTIE 1

MATHÉMATIQUES

Chapitre l · Arithmétique 3
1 .1 Numération et conversion 3
1 .2 Divisibilité des entiers 8
1 .3 Nombres premiers 8
1 .4 Congruences 11
TD - Le codage affine 13
Exercices corrigés 16
Chapitre 2 • Suites numériques 35
2.1 Généralités 35
2.2 Suites particulières 36
2.3 Variations d'une suite 40
2.4 Limite d'une suite 42
TD - Évolution d'une liste de diffusion 44
Exercices corrigés 46
Chapitre 3 • Calcul matriciel 61
"'O
0 3.1 Généralités 61
c
:J
0 3.2 Calcul matriciel élémentaire 62
.,,:<:;
li)
..--t c::
:l
3.3 Inverse d'une matrice carrée 68
0
N
~

" 3.4 Résolution de systèmes à l'aide de matrices 69


@
.......
~ 0 Exercices corrigés 70
J:: :;
O'l
·;:::: "'0c::
>- c:: Chapitre 4 • Logique 87
o. .9
c::

u
0
ü 4.1 Calcul des propositions 87
.,,
:l

2
o. 4.2 Calcul des prédicats 92
~
"
:;
4.3 Calcul booléen 95
0
1-
.,,1 TD - Expression booléenne 100
0
c:
0
:l Exercices corrigés 103
QJ

Ill
Mathématiques pour l'informatique

Chapitre 5 • Ensembles 121


5.1 Langage ensembliste 1 21
5.2 Relations binaires 124
5.3 Applications d'un ensemble dans un ensemble 126
TD - Relation binaire dans un ensemble 129
Exercices corrigés 132

Chapitre 6 • Graphes et ordonnancement 147


6.1 Représentations d'un graphe 147
6.2 Chemins d'un graphe 150
6.3 Niveau des sommets d'un graphe sans circuit 155
6.4 Méthode MPM d'ordonnancement d'un graphe 158
TD - Déplacements dans un jeu vidéo 163
Exercices corrigés 166

Chapitre 7 • L'examen de mathématiques 183


Sujet métropole 2014 183

PARTIE Il
ALGORITHMIQUE APPLIQUÉE

Chapitre 8 • Premiers pas 189


8.1 Qu'est-ce qu'un algorithme? 189
8.2 Le logiciel Python 190

Chapitre 9 • Concepts fondamentaux 191


9.1 Données : types et opérations 191
9.2 Stockage des données 196
9.3 Lecture et écriture des données 198
"'O 9.4 Instructions conditionnelles 200
0
c
:J
9.5 Instructions itératives 201
0 9.6 Fonctions et procédures 204
li)
..--t
0
9. 7 Récursivité 208
N
@ Exercices corrigés 210
.......
J::
O'l
·;:::: Chapitre 10 • Travaux pratiques 223
>-
0. 10.1 Nombres parfaits 223
0
u 10.2 Évolution d'un salaire 22 6
10.3 Nombres premiers palindromes 229
10.4 Calcul formel 23 2
10.5 Calcul matriciel 234
10.6 Opérations sur les ensembles 238

IV
Table des matières

1O.7 Méthodes de tri 242


10.8 Cryptographie 246

Chapitre 11 · L'examen d'algorithmique 249


Examen 1 - Remplissage d'une tirelire 250
Examen 2 - La suite de Syracuse 254

PARTIE Ill

ANNEXE

Exercices supplémentaires 261

Ressources numériques
Le code source des exemples est disponible gratuitement en téléchargement à
l'adresse suivante :
www.dunod.com/ contenus-complementaires / 97821 00720750

"'O
0
c
:J
0
li)
..--t
0
N
@
.......
~0
J:: :;
O'l
·;:::: "'c:
0
>- c:
0. c:
0 .9
u ü
:::l

2o.
~
'l.)
:;
~
1
"8c:
:::l
0
QJ

V
"'O
0
c
::J
0
li)
r-t
0
N
@
.....,
.s::
Ol
'i:
>-
0.
0
u
AVANT-PROPOS

Ce livre s' adresse en premier lieu aux étudiants de première et de deuxième année
préparant le BTS SIO (Services informatiques aux organisations). Il pourra égale-
ment intéresser les étudiants en IUT d'informatique, ou ceux en classe préparatoire
souhaitant acquérir les bases de l'algorithmique, ainsi que tous ceux qui souhaitent
connaître et maîtriser les outils mathématiques nécessaires à une bonne pratique de
la programmation informatique.
Les auteurs, tous deux enseignants en BTS SIO, ont rédigé cet ouvrage dans le
respect le plus strict des derniers programmes en vigueur. L'objectif pédagogique
majeur est de fournir un outil d'accompagnement dans les apprentissages, pouvant
être utilisé en classe par le professeur ou de manière plus personnelle par l'étudiant.
Dans la partie Mathématiques , on trouvera dans chaque chapitre, le cours, présen-
tant les notions essentielles du programme, des exercices, nombreux et variés, corri-
gés ou non, allant des applications directes du cours à des problèmes plus complexes
pour se perfectionner, et des travaux dirigés corrigés.
Dans la partie Algorithmique appliquée, où les instructions et algorithmes sont
exécutés en langage Python, on commence par présenter expérimentalement avec les
activités dites « de découverte » , les fondamentaux de l'algorithmique. L'étudiant
peut ensuite vérifier qu' il maîtrise les concepts clés en résolvant les nombreux exer-
cices, corrigés ou non. Une série de travaux pratiques, tous corrigés, montrent
comment résoudre des problèmes par l'utilisation judicieuse de solutions algorith-
miques. On trouve enfin, deux exemples de sujets officiels d' examen d' algorith-
"'O
mique appliquée, corrigés, donnés lors de la session 2014.
0
c
:J
0
li)
.,,:<:;
c::
..--t
0
:l
~
Ressources numériques
N
"
@
.......
~ 0
Le code source des exemples est disponible gratuitement en téléchargement à
J:: :; l'adresse suivante :
O'l
·;:::: "'0c:: www.dunod .com/contenus-com plementai res / 97821 00720750
>- c::
o. .9
c::
0
u ü
.,,
:l

2
o.
~
"
:;
0
1-
.,,
0
1

c:
:l
0
QJ

VII
"'O
0
c
::J
0
li)
r-t
0
N
@
.....,
.s::
Ol
'i:
>-
0.
0
u
"'O
0
c
:J
0
LI)
r-i
0
N
@
......
.s::
Ol
·;::
>-
0.
0
u
"'O
0
c
::J
0
li)
r-t
0
N
@
.....,
.s::
Ol
'i:
>-
0.
0
u
ARITHMÉTIQUE

l .1 Numération et conversion
1.2 Divisibilité des entiers
1.3 Nombres premiers
1.4 Congruences

>- Présenter les grandes notions arithmétiques utiles à l'informatique.


>- Maîtriser les principes de numération indispensables au x langages de bas niveau.
>- Maîtriser les outils d'arithmétique modulaire utiles à l'algorithmique.

1.1 NUMÉRATION ET CONVERSION

1.1.1 Rappels sur la division euclidienne


Les entiers naturels sont 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, etc.
Effectuer la division euclidienne d ' un entier naturel A par un entier naturel B non
nul c'est déterminer les uniques entiers Q (appelé quotient) et R (appelé reste) tels
que : A = BQ + R et 0 ~ R < B.
"'O
0
c Exemples
:J
0
li)
Le qu otient et le rest e de la divi sio n euclidi enn e d e A = 53 par B = 6 sont res pec-
..--t
0 tiveme nt Q = 8 et R = 5. En effet, 5 3 = 6 x 8 + 5 et 0 ~ 5 < 6 .
N
Dans la divi sion euclidi enn e de l 893 par 11, le quoti ent vaut l 72 et le res t e
@
vaut 1.

On peut obtenir ces résultats en po sant la division ou avec une calculatrice .

1.1.2 Numération des entiers


L'être humain compte naturellement en base 10 (avec les dix chiffres): 0, 1, 2, 3, 4,
5,6, 7,8,9, 10, 11 , 12, .. . , 97,98,99, 100, 101 , 102, etc.

3
Chapitre l • Arithmétique

On peut compter en base 2 (on n'utilise que les chiffres 0 et 1): 0, 1, 10, 11 , 100,
101, 110, 111, 1000, 1001, 1010, etc.
Pour compter en base 16, on utilise les dix chiffres et on en rajoute six autres (que
l'on note A, B, C, D, E et F). Cela donne: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F,
10, 11 , 12, 13, 14, 15, 16, 17, 18, 19, lA , lB, lC, lD, lE, lF, 20, 21 , 22, etc.

Exemples
4 en base 10, c'est 1OO en base 2. 9 en base 10, c'est 1001 en base 2.
A en base 16, c'est 10 en base 1O. 1A en base 1 6, c'est 26 en base 1O.

Le microprocesseur d'un ordinateur ne travaille qu'avec deux chiffres : 0 (pas de


courant) et l (courant). Les calculs s'y font donc naturellement en base 2.

Le nombre 23, écrit en base 10, se note 10111 en base 2 et 17 en base 16, mais on
ne peut pas écrire 23 = 10111=17.
C'est pourquoi nous adoptons la notation (n )p pour indiquer que le nombre n est
écrit en base p : (23) 10 = (1011 lh = (17) 16 .
Les écritures en bases 2, 10 et 16 s'appellent aussi respectivement les écritures
binaire, décimale et hexadécimale.
Lorsqu'un nombre est écrit en base 10, on peut simplifier la notation (x) 10 . Par
exemple (201) 10 peut s'écrire simplement 201.

L'écriture d'un nombre entier en base 2, 10 ou 16 est unique.

Pour convertir un entier d'une base à l' autre, il est important de comprendre la
relation algébrique que l'on a entre une base p et l'écriture du nombre dans cette
-0
base p . C'est ce qu'énonce la propriété suivante.
0
c
0
:J Propriété 1.1
li)
..--t Quels que soient les nombres entiers a 0 , a 1, a 2 , . .. , an compris entre 0 et p - 1,
0
N où p désigne 2, 10 ou 16, on a:
@
.......
(an... a 2a 1a 0 )P =an X pn + ... + a 2 X p 2 + a 1x p + a 0
J::
O'l
·;:::: Dans le cas où p = 16, on remplace dans l'écriture du membre de gauche, tout ai
>-
0.
0
égal à 10, 11, 12, 13, 14 ou 15 par A, B, C, D, E ou F respectivement.
u

Exemple
Conversion vers la base l 0 :
(11011 h = 1 X 2 4 + l X 2 3 + 0 X 2 2 + 1 X 2 + l = 16 + 8 + 2 + l = 27
(SC8)1 6 = 5 X 16 2 + 12 X 16 + 8 = l 28 0 + 192 + 8 = l 480

4
1.1 • Numération et conversion

Il existe plusieurs méthodes pour convertir un entier vers la base p = 2 ou 16.


Nous allons déterminer l'écriture en base 2 du nombre 75 et l'écriture en base 16 du
nombre 2014 (méthodes 1 et 2), puis effectuer des conversions directes entre les
bases 2 et 16 (méthode 3).
Méthode 1 : on effectue la division euclidienne du nombre par la plus grande
puissance de p qui lui est inférieure ou égale, puis on recommence avec le reste et
ainsi de suite jusqu'à ce qu'il soit nul.
75 = 1X26 + 11 , 11=1X23+ 3 et 3 = 1X2 + 1
Donc 75 = 1 x 2 6 + 1 x 2 3 + 1 x 2 + 1
= 1 X 2 6 + 0 X 25 + 0 X 2 4 + 1 X 2 3 + 0 X 2 2 + 1 X 2 + 1
= (1001011h
De même 2 014 = 7 x 162 + 222 et 222 = 13 x 16 + 14
d'où 222 = 7 X 162 + 13 X 16 + 14 = (7DE) 16 .
Méthode 2 : on effectue la division euclidienne du nombre par p puis on recom-
mence avec le quotient et ainsi de suite jusqu' à obtenir O. À la fin, on inverse l'ordre
des restes obtenus.

75~
CD
CD~~
37 2

lëfu CD ~
9

Œ~~
4 2

10 ~ 1

CD I 0
Figure 1.1

"'O
Ainsi, on retrouve 2 014 = (7DE) 16 et 75 = (100101 l)i.
0
c Méthode 3 : on peut passer directement de la base 2 à la base 16, et inversement,
:J
0
li)
.,,:<:; en utilisant le tableau de conversion suivant :
..--t c::
:l
0 ~
N
" Base 16 0 1 2 3 4 5 6 7
@
.......
~0
Base 2 0000 0001 0010 0011 0100 0101 0110 0111
J:: :;
O'l
·;:::: "'0c:: Base 16 8 9 A B c D E F
>- c::
o. c::
.9
0 Base 2 1000 1001 1010 1011 11 OO 1101 1110 1111
u .,,ü
:l

2
o.
~
"
:;
Conversion directe de (2B) 16 en base 2 :
0
1- (2B) 16 = (00101011) 2 = (10101 l h
.,,
1
0
c:
:l
On ajoute, à partir du tableau, les écritures de 2 et de B en base 2, puis on supprime
0
QJ les zéros inutiles.

5
Chapitre l • Arithmétique

Conversion directe de (110111) 2 en base 16:


(11011 l)i = (0011011 lh = (37)16
On ajoute à gauche des zéros inutiles pour « faire des paquets » de quatre chiffres
que l'on remplace ensuite par leurs équivalents en base 16.

Puisque l'écriture en base 2 d'un nombre peut être très « longue» et du fait de la
simplicité de conversion entre les bases 2 et 16, on utilise beaucoup le système
hexadécimal en informatique.

Les calculatrices permettent de convertir un nombre d'une base à l'autre.

1.1.3 Numération des réels


Dans le dernier paragraphe, nous avons défini les écritures binaire, décimale et hexa-
décimale d'un nombre entier. Plus largement, tout nombre réel peut être écrit en base 2,
10 ou 16.
Pour comprendre, prenons l'exemple de deux réels et de la base 10 :
(53,627)l0 = 5 X 10 + 3 + 6/10 + 21102 + 7/10 3
(456,905) 10 = 4 X102 + 5 X 10 + 6 + 9/10 + 01102 + 51103
Plus généralement on a la propriété suivante.

Propriété 1.2
Quels que soient les nombres entiers a0 , .. ., an et b 1, .. ., bm compris entre 0 et
p-1 (oùp désigne 2, 10 ou 16), on a:

"'O
0
c
:J
0
li) Dans le cas où p = 16, on remplace dans l'écriture du membre de gauche, tout ai
..--t
0 ou bi égal à 10, 11, 12, 13, 14 ou 15 par A, B, C, D, E ou F respectivement.
N
@
.......
J::
O'l
·;:::: Exemple
>-
0.
0
7,25 en base 2 : 7,25 = 7 + 0,25 = 1 x 2 2 + 1 x 2 + 1+ 1/2 2 = (111,01) 2
u (l 01, 11) 2 en base l 0 : (101, 11) 2 = 1 x 2 2 + 0 x 2 + l + l /2 + 1/2 2 = 5,75
(B,3C) 16 en base 10: (B,3C) 16 = 11 + 3/16 + 12/16 2 = 11,234375

1.1.4 Opérations élémentaires


En base 2 ou 16, on pose les opérations de la même manière qu'en base 10.

6
1.1 • Numération et conversion

• L'addition : exemple (101)2 + (11 lOh (1001 lh (en base 10, cela donne
5 + 14 = 19).

1 1 (l)z + (O)z = (l)z


(O)z + (1 )z = (1 )z
1 0 1
(1 ) 2 + (1) 2 =(10) 2 : on pose 0, on retient 1.
+ 1 1 1 0
(1 ) 2 + (1 )2 = (1 0) 2 : on pose 0, on retient 1.
0 0 1

• La soustraction : exemple (101 lOh- (11 lh = (111 lh (en base 10 cela donne
22 - 7 = 15).

1 1 1 1 Puisque 1 > 0, on pose une retenue de 1,


1 0 1 1 0 puis (10) 2 - (l}z = (l}z.
1 1 1 Nouvelle retenue de 1 puis (11 ) 2 - ((1 )2
1 1 1 + (1 )z) = (1 )21 etc.
0

• La multiplication : exemple (F3) 16 x (2A) 16 = (27DE) 16 (en base 10 cela donne


42 X 243 = 10 206).

F 3 (A) 16 x (3) 16 = 10 x 3 = 30 = (1 E) 16, on pose E, on retient 1.


X 2 A (A) 16 x (F) 16 = 10 x 15 = 150 = (96) 16 , avec la retenue, on obtient,
(96) 16+ (1 )16 = (97) 16, d'où 97E.
9 7 E
(2) 16 x (3) 16 = (6) 16 , on pose 6 .
+ l E 6
(2) 16 x (F) 16 = 2 x 15 = 30 = (1 E) 16, on obtient 1 E6 avec le décalage
2 7 D E « . ».
On effectue ensuite l'addition (97E) 16 + (1 E60) 16 : (E) 16 + (0) 16 = (E)1 6•
on pose E ; (7)16 + (6) 16 = 7 + 6 = 13 = (D) 16 , on pose D; (9) 16 + (E) 16
= 9 + 14 = 23 = (17)i 6 , on pose 7 et on retient 1 ; enfin, (1 ) 16 +(1 ) 16
= (2) 16 , on obtient alors le résultat 27DE.

• La division: exemple (llOh + (llh = (10) 2 (en base 10 cela donne 6 + 2 = 3).

1 1 0 1 1 On sélectionne les deux premiers chiffres de 11 O. Dans


- 1 1 (11 )z on a une fois (11 )z et il reste O. On pose alors 1 au
"'O
0
c
1 o quotient. On abaisse ensuite le 0 de 11 O. On obtient OO.
:J 0 0 Dan s (00) 2 on a zéro fois (11 ) 2 et il reste O. On pose 0 au
0
li)
.,,:<:; quotient, ce qui termine la division.
c::
..--t :l 0 0
0 ~
N
"
@
.......
~ 0
:;
J::
O'l
·;:::: "'0c:: 1.1.5 Précision et arrondi
>- c::
o. .9
c::
Considérons le nombre N = 432,615 :
0
u .,,ü • L' arrondi à 10 près de N est 430 (car ce nombre est plus proche de N que 440) .
:l

2
o.
~
"
• L' arrondi à 1 près de N est 433 (car ce nombre est plus proche de N que 432).
:;
0
1- • L'arrondi à 0,1 près de N est 432,6 (car ce nombre est plus proche de N que 432,7).
.,,1
0
c:
:l
• L' arrondi à 0,01 près de N est 432,62 (ce nombre est aussi plus proche de N que
0
QJ 432,61 et dans un tel cas on prend le plus grand).

7
Chapitre l • Arithmétique

Cette notion d'arrondi se généralise aux nombres réels écrits dans n'importe
quelle base p: l'arrondi d'un nombre réel x à une certaine précision est le nombre le
plus proche de x tel que tous les chiffres allant au-delà de cette précision soient nuls.
Par convention, lorsqu' il existe deux nombres possibles, l'arrondi est alors le plus grand.
Considérons les nombres N = (101,10011)2 et M = (B82A,7 AB) 16 :
• L'arrondi à (10) 2 près de N est (110) 2 car ce nombre est plus proche de N que
(100)2.
• L'arrondi à (0,lh près de N est (101,lh car ce nombre est plus proche de N que
(110,0)2.
• L'arrondi à (100)16près de M est (B800) 16 car ce nombre est plus proche de M que
(B900) 16.
• L' arrondi à (0,1) 16 près de M est (B82A,8) 16 car ce nombre est plus proche de M
que (B82A,7) 16 .

1.2 DIVISIBILITÉ DES ENTIERS


Soit a et b des entiers naturels. a est divisible par b s'il existe un entier naturel k tel
que: a= bk.
On dit alors que b divise a, que b est un diviseur de a et que a est un multiple de b.

Exemple
65 = l 3 x 5 donc on peut dire que 65 est divisible par l 3 (et par 5 aussi), que l 3
et 5 sont des diviseurs de 65 et que 65 est un multiple de l 3 (et de 5 aussi).

Propriété 1.3
- Si a est divisible par b alors tout multiple de a est divisible par b.
- Si a est divisible par b et si b est divisible parc, alors a est divisible parc.
- Si a et b sont divisibles parc, alors a+b et a-b sont divisibles parc.

-0
0
c
~ Les démonstrations de ces propriétés seront proposées dans l'exercice corrigé 1.20.
li)
..--t
0
N
@
1.3 NOMBRES PREMIERS
.......
J::
O'l
·;::::
>- 1.3.1 Reconnaissance des nombres premiers
0.
0
u Un entier naturel est premier s'il a exactement deux diviseurs : 1 et lui-même.
• 0 n'est pas premier car il possède une infinité de diviseurs.
• 1 n'est pas premier car il n'a qu'un seul diviseur: 1.
• 2 est premier car il a exactement deux diviseurs : 1 et 2.
• 3 est premier car il a exactement deux diviseurs : 1 et 3.

8
1.3 · Nombres premiers

Théorème 1.1

Soit n un entier naturel supérieur ou égal à 2.


Sin n'est pas premier, alors n possède au moins un diviseur premier inférieur ou
égal à Fn.

Ce théorème permet d ' avoir un critère de reconnaissance des nombres premiers :


pour savoir si un nombre n est premier, on calcule Fn . Si n n'est divisible par aucun
des nombres premiers inférieurs ou égaux à .J;;,, alors n est premier.

) Mémorisez les nombres premiers inférieurs à 20, ils vous seront utiles par la
suite : 2, 3, 5, 7, 11, 13, 1 7 et 19.

Exemple
Cherchons si 34 7 et 713 sont des nombres premiers :

.J347::::::: 18,6. Les nombres premiers inférieurs ou égaux à 18,6 sont 2, 3, 5, 7,


11, 13 et 17. 347 n'est divisible par aucun d'eux donc 347 est premier.

.J7l3 : : : :
26, 7. Les nombres premiers inférieurs ou égaux à 26, 7 sont 2, 3, 5, 7,
11, 13, 17, 19 et 23 . 71 3 est divisible par 23 donc 713 n'est pas premier.

1.3.2 Décomposition d'un nombre en produit de facteurs


premiers
Un nombre qui n'est pas premier est divisible par un nombre premier, et peut même
s'écrire uniquement avec des nombres premiers, sous forme de produit.

Théorème 1.2
"'O
0
c
:J
Tout entier naturel supérieur ou égal à 2 se décompose de façon unique en un
0
li)
.,,:<:; produit de facteurs premiers.
..--t c::
:l
0 ~
N
"
@
.......
~ 0
J:: :; Exemple
O'l
·;:::: "'0c::
>- c:: 84 n'est pas premier, il se décompose en un produit de facteurs premiers, cette
o. .9
c::
décomposition est unique, à l' ordre des facteurs près :
0
u ü
.,,
:l
84 = 2 X 42 = 2 X 6 X 7 = 2 X 2 X 3 X 7 = 2 2 X 3 X 7
2
o.
~
975 n'est pas premier, il se décompose en un produit de facteurs premiers :
"
:; 975 = 5 X 195 = 5 X 5 X 39 = 5 X 5 X 3 X 1 3 = 3 X 5 2 X 1 3
0
1-
.,,
0
1

c:
:l
0
QJ

9
Chapitre l • Arithmétique

En pratique, on divise le nombre par son plus petit diviseur premier, et on


recommence jusqu'à ce que le quotient soit 1.

84 2 975 3
42 2 325 5
21 3 65 5
7 7 13 13

La décomposition d ' un nombre en produit de facteurs premiers permet d'obtenir


tous ses diviseurs. Par exemple, 84 = 22 x 3 x 7, un diviseur de 84 s'écrit donc :
2i x 3i x 7k avec 0::; i::; 2, 0 ::;j::; 1, 0::; k::; 1.
En utilisant l'algorithme suivant, on obtient les 12 diviseurs de 84 qui sont 1, 2, 3,
4, 6, 7, 12, 14, 21 , 28, 42 et 84.

Variables : i, j, k (entiers)
Début
Pour ide 0 à 2 Faire
Pour j de 0 à l Faire
Pour k de 0 à l Faire
1 Afficher 2; x 3j x 7k

Fin Pour
Fin Pour
Fin Pour
Fin

1.3.3 PGCD de deux entiers naturels non nuls

Étant donné deux entiers naturels non nuls a et b, il existe un diviseur commun à a et
à b qui est plus grand que tous les autres. Ce diviseur est appelé Plus Grand
Commun Diviseur et se note PGCD(a;b).

"'O

0
0
c
:J
& Deux entiers naturels non nul s sont premiers entre eux si et seulement si leur
PGCD est égal à l .

li)
..--t
0 Exemples
N
@ Les diviseurs de 4S sont l, 3, S, 9, l Set 4S. Ceux del OS sont l , 3, S, 7, l S, 21,
....... 3S et l OS . Les diviseurs communs à 4S et l OS sont l, 3, S, l S.
J::
O'l
·;:::: Le plus grand d'entre eux est l S donc l S est le PGCD de 4S et l OS.
>- On écrit PGCD(4S; l OS)= l S.
o.
0
u Les diviseurs del S sont l, 3, Set l S. Ceux de 44 sont l, 2, 4, 11, 22 et 44.
Le seul diviseur commun à l S et à 44 est l. Il est leur PGCD.
Donc PGCD(l S;44) = l.
l S et 44 sont premiers entre eux.

10
1.4 • Congruences

Propriété 1.4
Soit a et b deux entiers naturels supérieurs ou égaux à 2 dont on connaît les
décompositions en produits de facteurs premiers :
- s'ils n'ont pas de facteur commun, alors leur PGCD est 1 ;
- sinon, leur PGCD est le produit des facteurs communs aux deux décomposi-
tions, chaque facteur étant affecté du plus petit exposant avec lequel il figure
dans les deux décompositions.

Exemples
Soit a= 4 950 = 2 x 3 2 x 52 x 11 et b = 4 875 = 3 x 5 3 x 1 3.
Les facteurs communs aux deux décompositions sont 3 et 5.
3 figure avec les exposants 2 et 1, on garde le plus petit, c'est-à-dire 1.
5 figure avec les exposants 2 et 3, on garde le plus petit, c'est-à-dire 2.
Donc PGCD (4 950;4 875) = 3 X 52 = 75.
Soit a= 2 4 x 3 x 52 x 7 x 19 et b = 2 3 x 3 2 x 7 2 x 1 7. Les facteurs communs aux
deux décompositions sont 2, 3 et 7. Les plus petits exposants sont 3 pour le
facteur 2, 1 pour le facteur 3 et 1 pour le facteur 7.
Donc PGCD (a;b) = 2 3 x 3 x 7.

Propriété 1.5
Soit a et b deux entiers naturels non nuls tels que a > b.
Soit r le reste de la division euclidienne de a par b.
Alors PGCD(a ;b) = PGCD(b;r)

Cette propriété (1.5) permet d'avoir une autre méthode pour chercher un PGCD.
On applique plusieurs fois la propriété jusqu'à obtenir un reste nul. Le PGCD est
alors le dernier diviseur essayé.
Son avantage est qu'elle est algorithmique, donc programmable. Elle est connue
sous le nom d'algorithme d'Euclide.
"'O
0
c
Exemple
:J
0 PGCD(420;182) = PGCD(l 82;56) car 56 est le reste de la division euclidienne de
li)
.,,:<:;
..--t c::
:l
420 par 182.
0
N
~
PGCD(l 82;56) = PGCD(56; 14) car 14 est le reste de la division euclidienne de 182
"
@
.......
~ par 56.
J::
0
:; Le reste de la division euclidienne de 56 par 14 est 0, donc 14 est le PGCD de 420
O'l
·;:::: "'0c:: et 182.
>- c::
o. .9
c::
0
u ü
.,,
:l

2
o.
~ 1.4 CONGRUENCES
"
:;
0

.,, Soit n un entier naturel non nul. On dit que deux entiers naturels a et b sont congrus
1-
1
0
c:
:l
modulo n si et seulement si a et b ont le même reste dans la division euclidienne
0
QJ par n. On écrit alors a = b [n] ou b = a [n] .

11
Chapitre l • Arithmétique

Quel que soit a entier, a= a [n] et a= r [n] , r étant le reste de la division eucli-
dienne de a par n.

Exemples
l 01 = 7 X 14 + 3 et 66 = 7 X 9 + 3
donc l 01 et 66 sont congrus modulo 7 car ils ont le même reste dans les divisions
euclidiennes par 7. On peut donc écrire l 01 = 66 [7].
67 = 12 X 5 + 7 et 139 = 12 X l l + 7
donc 67 = 139 [l 2] car le reste est le même dans les divisions euclidiennes par 12.
29 = 8 x 3 + 5 donc 29 = 5 [8].
90 et 80 ne sont pas congrus modulo 11, car les restes dans les divisions eucli-
diennes par l l sont 2 et 3.

Propriété 1.6
Soit a et b deux entiers naturels tels que a > b et soit n un entier naturel non nul.
a est congru à b modulo n si et seulement si a - b est multiple de n.

En effet, si a = b [n] alors a et b ont le même reste r dans la division euclidienne


par n.
Donc on a a =nq+r et b=nq'+r puis a-b=(nq+r)-(nq'+r)=nq-nq'
= n( q - q ') qui est un multiple de n puisque q-q' est un entier.

Propriété 1. 7
Soit a, b, c, d des entiers naturels et n un entier naturel non nul.
Si a= b [n] et c = d [n] alors :
- a+ c = b + d [n] et a - c = b - d[n]
- pa = pb [n] pour tout entier naturel p
- ac = bd[n]
"'O
0
- aP = bP[ n] pour tout entier naturel p
c
:J
0
li)
..--t Des démonstrations de certaines de ces propriétés sont proposées dans l' exercice
0
N corrigé 1.45.
@
.......
J::
O'l Exemples
·;::::
>-
0. À partir des congruences 2 014 = l [3] et 1 000 = l [3], les propriétés précédentes
0
u permettent d'obtenir facilement d'autres congruences :
2 014 + l 000 = l + l [3] c'est-à-dire 3014 = 2[3]
20 x 2 014 = 20 x l [3] c'est-à-dire 40 280 = 20[3] donc 40 280 = 2[3]
2 014 x l 000 = l x l [3] c'est-à-dire 2 014 000 = l [3]
2 014 70 = 1 70 [3] c'est-à-dire 2 014 70 = l [3] (sur cet exemple , on vient de montrer
très facil ement que le re ste de la division euclidienne de 2 014 70 par 3 est l, ce
qui n'avait rien d'évident ... ).

12
TD - Le codage affine

TD - Le codage affine

Le chiffrement affine est une méthode simple de codage d' un message. À chaque
lettre de l'alphabet, on commence par associer son rang dans l'alphabet, diminué
de 1, comme l'indique le tableau 1.1. On obtient un entier x entre 0 et 25.
Tableau 1.1

Lettre A B c D E F G H 1 J K L M

Nombre 0 1 2 3 4 5 6 7 8 9 10 11 12

Lettre N 0 p Q R s T u V w X y z
Nombre 13 14 15 16 17 18 19 20 21 22 23 24 25

Le codage affine nécessite deux clés a et b, qui sont des entiers naturels compris
entre 0 et 25. On calcule alors le reste de ax + b dans la division euclidienne par 26.
On obtient un entier y tel que y = ax + b[26]. On cherche à quelle lettre correspond
cet entier y . Cette lettre code alors la lettre de départ.

Partie A
Dans cette partie, on choisit les clés a = 3 et b = 11. La fonction de codage est donc
y = 3x + 11[26].
1. Montrer que Gest codé par D. Comment est codé S?
2. Remplir le tableau 1.2.
Tableau 1.2
Lettre A B c D E F G H 1 J K L M
"'O
0
c X 6
:J
0 y 3
li)
.,,:<:;
..--t c::
0
:l
~
Codage D
N
" p R s T u w X y z
~
@ Lettre N 0 Q V
....... 0
J:: :; X
O'l
·;:::: "'0c::
>- c:: y
o. .9
c::
0
u ü
.,,
:l Codage
2
o.
~
"
:; 3. Quel mot est codé par VBUTSB ?
0

.,, 4. On va maintenant chercher la fonction de décodage, c'est-à-dire l'expression de


1-
1
0
c:
:l
x en fonction d'y. Chercher l'inverse de 3 modulo 26, c'est-à-dire le nombre
0
QJ entier k tel que 0 ~ k ~ 25 et 3k = 1[26]. En déduire la fonction de décodage.

13
Chapitre l • Arithmétique

Partie B
Dans cette partie, on choisit a= 7 et b = 12.
1. Comment va-t-on coder le mot AFFINE ?
2. Déterminer la fonction de décodage.
3. Décoder le message CBMNJ QISO.

Partie C
Dans cette partie, on ne connaît pas les clés de codage a et b. On sait que E est codé
par I et que V est codé par T.
1. Écrire les deux congruences vérifiées par a et b.
2. Montrer que 17a = 11 [26] . Déterminer a puis b, puis la fonction de codage.
3. Déterminer la fonction de décodage.

Solution du TD

Partie A
1. Pour la lettre G, on a x = 6. 3x + 11=29. Comme 29 = 3[26], alors y = 3 ce qui
correspond à la lettre D. G est donc codé par D.
Pour S, x = 18, 3x + 11 = 65 = 13[26] donc y = 13. S est donc codé par N.
2.

Tableau 1.3
Lettre A B c D E F G H 1 J K L M

X 0 1 2 3 4 5 6 7 8 9 10 11 12
"'O
0
c y 11 14 17 20 23 0 3 6 9 12 15 18 21
:J
0
LI)
.--t
Codage L 0 R u X A D G J M p s V
0
N
@ Lettre N 0 p Q R s T u V w X y z
.......
J::
Ol X 13 14 15 16 17 18 19 20 21 22 23 24 25
·;::::
>-
0..
0 y 24 1 4 7 10 13 16 19 22 25 2 5 8
u
Codage y B E H K N Q T w z c F 1

3. Pour décoder le mot VBUTSB, il suffit de repérer les correspondances du


tableau. Le mot codé par est VBUTSB est MODULO.

14
TD - Le codage affine

4. L'inverse de 3 est 9 modulo 26, car 3 x 9 = 27 = 1[26].


y= 3x + 11[26] => 9y = 27x + 99[26] => 9y =x + 21[26]
::::> 9y - 2J := x[26] ::::>X:= 9y + 5[26].
La fonction de décodage est donc x = 9y + 5[26]. Par exemple, pour décoder la
lettre D, on a y= 3, 9y + 5 = 32 = 6[26], donc x = 6, ce qui correspond à la lettre G.

Partie B
1. La fonction de codage est y= 7x + 12[26] . AFFINE se code MVVQZO.

Tableau l .4
Lettre A F 1 N E

X 0 5 8 l3 4

y l2 21 16 25 14

Codage M V Q z 0

2. L'inverse de 7 modulo 26 est 15 car 7 x 15 = 105 = 1[26]


y= 5x + 12[26] => 15y = x + 180[26] => 15y = x+ 24[26] => 15y- 24 = x[26]
::::>X:= 15y +2[26].
3. La fonction de décodage est x = 15y +2[26].

Tableau l .5
Codage c B M N J Q 1 s 0

y 2 l 12 l3 9 16 8 18 14

X 6 l7 0 l5 7 8 18 12 4

Lettre G R A p H 1 s M E
"'O
0
c
:J
0
li)
.,,:<:; Partie C
..--t c::
1. E est codé par I, donc y = 8 lorsque x = 4 de sorte que 8 = 4a + b[26].
:l
0 ~
N
"
@
~ V est codé par T donc y= 19 quand x = 21 et par conséquent 19 = 21a + b[26].
....... 0
:;
J::
O'l "'0c::
2. Par soustraction membre à membre des deux congruences, on obtient
·;::::
>-
o.
c::
c::
19 - 8 = 21 a - 4a[26] donc 11 = 17a[26] ce qui peut aussi s'écrire 17a = 11 [26].
u
0 .9
ü L'inverse de 17 modulo 26 est 23 car 17 x 23 = 391 = 1[26] donc
.,,
:l

2
o.
23 x 17a = 23x l 1[26] =>a= 253[26] =>a= 19[26].
~
"
:;
On remplace maintenant a par 19 dans une des congruences :
0
1- 8 := 4 X 19 + b[26] ::::> 8 - 76:= b[26] ::::> b := - 68(26] ::::> b := 10(26]
.,,
1
0
c:
:l
3. La fonction de décodage était y = 19x + 10[26] .
0
QJ

15
Chapitre l • Arithmétique

Exercices corrigés

Ill Écrire en base 10 les nombres suivants, donnés en base 2 ou 16: (101010)z,
(1011101) 2 , (11011010)z, (135) 16 , (F2) 16 et (4C) 16 .

16 Écrire en base 2 les nombres suivants: 14, 71, 238, (B4) 16, (30A) 16 et (6D) 16.
IJD Écrire en base 16 les nombres suivants : 401, 8247, 10 000, (lOOOl)z,
(110110) 2 et (1001011 l)z.
œ Écrire en base 10 les nombres suivants: (1,ll)z, (10,01) (O,lOl)z, (C,4) 2, 16,
(20,5) et (8, 1)
16 16 .

m Écrire en base 2 puis en base 16 les nombres suivants : 4,75; 25,25 et 16,5.
Dl a) On donne a= (10110)z et b = (llOl)z. Calculer a+ b, a - b et ab.
b) Même exercice avec a= (10101101) 2 et b = (1 lOO)z.
llJ a) On donne a= (D1) 16 et b = (19) 16. Calculer a+ b, a - b et ab.
b) Même exercice avec a= (1B4) 16 et b = (37) 16 .
m a) On donne a= (101111 l)z et b = (lOOllO)z. Calculer a + b, a - b, ab et a:b.
b) Même exercice avec a= (10011 lO)z et b = (1 lOOO)z.
lm a) On donne a= (110,01) 2 et b = (100,1) 2. Calculer a+ b, a - b, ab.
b) Même exercice avec a= (1000,l)z et b = (1,1 l)z.
1111] a) Quel est l'arrondi de (1101011)z à (lOO)z près?
b) Quel est l'arrondi de (10,011)2 à (O,l)z près?
"'O
0
c
c) Quel est l'arrondi de (A,BB) 16 à (0,1) 16 près?
:J
0
LI)
1111 Dans chaque cas, donner le quotient q et le rester de la division euclidienne
.--t
0 de a par b, et écrire la division euclidienne en ligne :
N
@ a) a = 65 et b = 23 b) a = 308 et b = 45 c) a = 1 789 et b = 41
.......
J::
Ol
·;::::
>-
llt:.I Dans chaque cas, dire si les égalités proposées correspondent à des divisions
0..
0 euclidiennes. Préciser alors les valeurs du quotient et du reste.
u
a) 37 = 8 X 4+5 b) 100 = 14 X 7 + 2 c) 215 = 13 X 14 + 33
lllJ Dans chaque cas, dire si les égalités proposées correspondent à des divisions
euclidiennes. Préciser alors les valeurs du quotient et du reste.
a)900 = 16x55+20 b)662 = 31 x 20+42 c)981 = 26x37+19

16
Exercices corrigés

1111 On écrit les unes à la suite des autres, les 26 lettres de l'alphabet. Arrivé au Z,
on recommence avec un deuxième alphabet, et ainsi de suite ...
a) Quelle est la 10 oooe lettre écrite? Combien d'alphabets complets ont été écrits?
b) Mêmes questions avec la 50 oooelettre.
11..1 Alice possède un nombre n de CD. Si elle les empile par 10, il lui reste 7 CD.
Si elle les empile par 7, elle fait 13 piles de plus que si elle les empile par 10, et il lui
reste 3 CD. Combien Alice possède-t-elle de CD?
llld Un texte saisi avec un logiciel comporte 5 070 lignes. L'éditeur étudie
quelques possibilités de mise en pages du texte :
a) Si l'éditeur décide de mettre 64 lignes par page, combien de lignes comporte la
dernière page sachant que toutes les autres sont complètes ?
b) Si l'éditeur décide de mettre 81 pages, combien de lignes comporte chaque page
sachant que la dernière en comporte alors 48 ?
llf~ Faire la liste des diviseurs de 12, de 20 et de 30.
lll:JChercher tous les couples (a;b) tels que a < b et a divise b, dans la liste de
nombres suivante: 7, 13, 18, 28, 65, 84, 91. Présenter les résultats sous forme d' un
graphique en reliant les nombres concernés par des flèches orientées comme ce
modèle : a < b et a divise b se code a ~ b.
llQJ a) Montrer que la somme de trois entiers naturels consécutifs est un multiple
de3.
b) La somme de quatre entiers naturels consécutifs est-elle un multiple de 4 ?
c) La somme de cinq entiers naturels consécutifs est-elle un multiple de 5 ?
lf;.(I] Démontrer les propriétés suivantes (voir propriété 1.3) :
a) Si a est divisible par b alors tout multiple de a est divisible par b.
b) Si a est divisible par b et si b est divisible parc, alors a est divisible parc.
"'O
0
c
c) Si a et b sont divisibles par c, alors a + b et a - b sont divisibles parc.
:J
0
li)
.,,:<:; If.JI Les nombres suivants sont-ils premiers ? Si oui, dire quel est le dernier divi-
c::
..--t
0
:l
~
seur testé, si non, donner un diviseur.
N
" 107 - 161 - 179 - 241 - 311 - 323 - 437 - 563 - 677 - 779 - 971
@
.......
~ 0
:;
J::
O'l
·;:::: "'0c:: lf.11'-'I Un
début de liste prometteur... Pour tout n entier naturel, on pose :
c:: 2
>-
o. c:: An= n +n+17.
0 .9
u .,,ü a) Vérifier que, pour tout n de 0 à 15, An est un nombre premier.
:l

2
o.
~ b) Montrer que A 16 n'est pas premier.
"
:;
1-
0

.,,1
lfJJ On se propose de chercher s'il existe des nombres premiers de la forme
0
c:
:l
n2 -4, pour n entier naturel supérieur ou égal à 3, et si possible, d'en faire la liste .
0
QJ On note An le nombre n2 - 4.

17
Chapitre l • Arithmétique

a) Tester si An est premier pour n valant 3, 4, 5, 6 puis 7.


b) Montrer que, à part pour n = 3, An n'estjamais premier.
If.JI On se propose de chercher s'il existe des nombres premiers de la forme
n3 + 8, pour n entier naturel, et d'en faire la liste. On note An le nombre n3 + 8.
a) Montrer que si n est pair, alors An n'est pas premier car il est divisible par 8.
b) Développer (n + 2)(n 2 - 2n + 4). En déduire que An n'est jamais premier.
lf.J1 Sur un ordinateur 16 bits, un entier N est représenté de la manière suivante :
le premier bit à gauche donne le signe (0 correspond à+ et 1 à - ), et lorsque l'entier
est positif, les 15 suivants sont les chiffres de l'écriture binaire de N. Par exemple :
0000000000011101 représente +(l llOlh, c'est-à-dire +29.
1) a) Que devrait logiquement représenter le nombre 1000000000011101 ?
b) À quoi devrait être égal 0000000000011101 + 1000000000011101 ? Est-ce le cas?

À cause du problème précédent on opère différemment pour coder les entiers néga-
tifs : le premier bit représente bien - s'il est égal à 1. Cependant, la somme d'un
nombre Net de son opposé - N devra toujours être nulle. Pour cela on adopte la
méthode dite des compléments.
Par exemple, pour - 29, on part de la représentation de 29, c'est-à-dire
0000000000011101 et on détermine les 16 bits XXXXXXXXXXXXXXXX tels que :
00000000000 l l l 0 l + xxxxxxxxxxxxxxxx = 0000000000000000
Il s'agit alors de changer les 0 par des l et les l par des 0 dans la représentation de 29,
puis d'ajouter l : cela donne 111111111110001O+1 donc 1111111111100011.
La représentation de 29+(- 29) donne alors 10000000000000000, donc
0000000000000000 (par dépassement des capacités de l'ordinateur).

2) Déterminer la représentation de l'entier - 123 dans un ordinateur 16 bits, puis


celle de l'entier -43.
lf...IJH On crée un jeu simple sur un ordinateur : une bille est installée au « départ »
de la grille suivante (figure 1.2 à gauche), on doit la faire parvenir à « l' arrivée » en
"'O
0
c
utilisant uniquement des déplacements vers la droite et vers le bas.
::J
0
LI)
,...-l
0
N !Départi _ _ _ _ __
@
1
.....
L
Ol
·11111111 Seuls sens possibles :
·c
>-
0. 11111111 -
u
0
11111111 ==
11111111* ..... riv....,.é....,e1
IAr..... - l

Figure 1.2

18
Exercices corrigés

Pour programmer ce jeu, on associe à chaque parcours un nombre entier de la


manière suivante :
• On note 0 chaque déplacement vers le bas et 1 chaque déplacement vers la droite.
• On obtient alors un nombre de 8 chiffres écrit en base 2.
• On écrit ensuite ce nombre en base 10.
Par exemple, pour le parcours de la figure 1.2 (à droite), on obtient le nombre entier
105. En effet, on se déplace d'abord vers le bas (0), puis deux fois vers la droite
(011), puis une fois vers le bas (0110), puis une fois vers la droite (01101), puis deux
fois vers le bas (0110100), et enfin une fois vers la droite (01101001). Le nombre
obtenu, écrit en base 2, est (01101001)2 . Il est égal à 105, d'où le résultat.
1) On considère le parcours de la figure 1.3.
a) Donner le nombre en base 2 associé à ce parcours.
b) Donner l'écriture décimale (en base 10) de ce nombre.

=
~

Figure 1.3

2) a) Écrire en base 2 le nombre entier 85.


"'O
0
c b) Représenter à main levée le parcours associé au nombre 85.
::J ..;
0 '03 3) On considère un parcours sur cette grille, et on note N le nombre entier associé,
lJ)
...... ""'c:
0
::l
~
écrit en base 10.
N
"
@ ] a) Est-il possible d'avoir N = 31 ? (Justifier)
..._, Ci
.s:: :;
Ol
'i:
"'c:0 b) Quelle est la plus petite valeur possible de N ?
>-
o.
c:
c:
0 .9 c) Quelle est la plus grande valeur possible de N ?
u ü::l
""'2P.
!.:! lf.J~ Écrire la décomposition en produit de facteurs premiers des nombres suiv-
2l
::l
0
ants : a) 80, b) 200.
1-
1

""'c:0
::l
lf.IJ:J Écrire la décomposition en produit de facteurs premiers des nombres suiv-
0
© ants: a) 180, b) 630.

19
Chapitre l • Arithmétique

lfil Écrire la décomposition en produit de facteurs premiers des nombres suiv-


ants: a) 1 150, b) 1 360.
111111 Écrire la liste des diviseurs des nombres suivants en utilisant leurs décompo-
sitions en produit de facteurs premiers: a) 48, b) 135.
llUll Écrire la liste des diviseurs des nombres suivants en utilisant leurs décompo-
sitions en produit de facteurs premiers: a) 1 617, b) 5 915.
llit11 a) Écrire la décomposition en produit de facteurs premiers de 350.
b) Quel est le plus petit entier naturel par lequel il faut multiplier 350 pour obtenir le
carré d'un entier naturel ?
l@J a) Écrire la décomposition en produit de facteurs premiers de 22 869.
b) Quel est le plus petit entier naturel par lequel il faut multiplier 22 869 pour obtenir
le carré d'un entier naturel?
INI Décomposer les nombres a et ben produits de facteurs premiers et détermi-
ner leur PGCD dans les cas suivants :
a) a = 96 et b = 728 b) a= 1 071 et b = 2 200
181 Décomposer les nombres a et ben produits de facteurs premiers et détermi-
ner leur PGCD dans les cas suivants :
a) a = 315 et b = 1 176 b) a= 4 840 et b = 4 356
IQ En utilisant la règle PGCD(a;b) = PGCD(b;r) où r est le reste de la division
euclidienne de a par b, déterminer le PGCD des nombres a et b dans les cas suivants:
a)a= 130etb=85 b)a=4114etb= 1530
lfi4 En utilisant l'algorithme d'Euclide, chercher PGCD(a;b) dans les cas suivants:
a) a = 882 et b = 540 b) a = 1 725 et b = 1 309
"O
0
ll@f:J On dispose de 280 roses rouges et 490 roses blanches, avec lesquelles on
c veut faire le plus grand nombre possible de bouquets identiques. Combien peut-on
:J
0
LI) faire de tels bouquets et quelle est la composition de chacun d'eux ?
.--t
0
N
@
lfil Une feuille A4 a pour dimensions 21 cm et 29,7 cm. Alice cherche à savoir
....... comment elle peut quadriller sa feuille à l'aide de carrés de mêmes dimensions, qui
J::
Ol
·;:::: soient les plus gros possibles. Quelle sera la taille des carrés ? Combien en fera-t-elle ?
>-
0..
u
0 11111 a) Vérifier que 90 = 6[7] et que 66 = 3[7].
b) En utilisant les propriétés des congruences, compléter les résultats suivants en
mettant l'entier naturel le plus petit possible :
90 + 66 = ...... [7] 4 X 90 ::: ...... [7] 90 X 66 ::: ...... [7]
902 = ...... [7] 663 = ...... [7]
20
Exercices corrigés

1111 a) Faire les divisions euclidiennes de 200 et de 900 par 13 et traduire les
résultats en congruences.
b) En utilisant les propriétés des congruences, compléter les résultats suivants en
mettant l'entier naturel le plus petit possible :
200 + 900 = ...... [13] 200 X 900 = ...... [13]
200 2 = ...... [13] 9003 = ...... [13]
c) Quel est le reste de la division euclidienne de 2004 + 9006 par 13 ?
llt~ a) Expliquer pourquoi tout entier naturel est congru à 0, à 1, à 2, à 3, à 4 ou
à 5 modulo 6.
b) Remplir le tableau 1.6 avec des entiers naturels les plus petits possibles.

Tableau 1.6
n= ...... [6] 0 l 2 3 4 5

n+l= ...... [6]

n+2 = ...... [6]

n(n + l)(n + 2) = ...... [6]

c) Que peut-on conclure au sujet du produit de trois entiers naturels consécutifs ?


lllJ a) Remplir le tableau 1.7, avec des entiers naturels les plus petits possibles.
Tableau 1.7
n = ...... [S] 0 l 2 3 4
n2 = ...... [5]

n3 = ...... [5]

"'O
0
ns = ...... [5]
c
:J 4n = ...... [5]
0
.,,:<:;
li)
..--t
0
c::
:l
~
n 5 + 4n = ...... [5]
N
"
@
.......
~ 0
J:: :; b) Interpréter la dernière ligne du tableau à l'aide d'une phrase concernant le reste
O'l
·;:::: "'0c::
>- c:: d'une division euclidienne de n5 + 4n.
o. .9
c::
0
u ü
.,,
:l
llGI a) Remplir le tableau 1.8, avec des entiers naturels les plus petits possibles.
2
o.
~
"
:; Tableau 1.8
0
1-
.,,
0
1
0 2 3 4 5 6
c:
:l
0
QJ

21
Chapitre l • Arithmétique

b) Montrer que 1789=4[7]. Compléter la congruence suivante: 1 789 3 = ...... [7].


c) Montrer que 1 789 1789 = (1 789 3) 596 x 1 789.
d) En déduire que 1 789 1789 = 4[7]. Exprimer ce résultat avec une phrase concernant
un reste de division euclidienne.
11191 Soit a, b, cd, n, p des entiers naturels tels que a = b [n] et c = d [n]. Démon-
trer les propriétés suivantes :
a) a+ c = b + d [n] b) pa = ph [n] c) ac= bd [n]
llkij Soit E = { 1;2;3;4;5;6} .
a) Vérifier que pour chaque élément a de E, il existe un élément b de Etel que ab= 1[7].
On dit que b est l'inverse de a modulo 7 .
b) Résoudre l'équation 3x = 4[7]. Donner l'ensemble des solutions comprises entre
100 et 140.
llf4 Soit E l'ensemble des entiers naturels non nuls inférieurs ou égaux à 10.
a) Déterminer l'inverse modulo 11 de tous les éléments de E.
b) Résoudre l'équation 4x + 7 = 8[11].
llf:J Pour des questions de saisie, les billets en euros sont tous numérotés. Le
numéro est constitué d ' une lettre suivie de 11 chiffres.
On commence par remplacer la lettre par son rang dans l'alphabet (A = 1, B = 2,
C = 3, D = 4, ... , Z = 26) puis on additionne ce nombre avec les 11 autres chiffres
du billet. Le reste de la division par 9 de ce résultat doit être 8 (sinon, le billet est
faux ... ).
Par exemple, vérifions un billet numéroté z10708476264. On remplace la lettre z par
26 et on additionne 26 + 1 + 0 + 7 + 0 + 8 + 4 + 7 + 6 + 2 + 6 + 4 = 71. Le reste de
la division de 71 par 9 est bien 8.
a) Des billets numérotés v02387040334 et m12065974438 sont-ils des vrais ?
"'O b) Sur un billet authentique figure le numéro s021664481ctl mais le dernier chiffre
0
c
:J
est illisible. Quel est ce chiffre ?
0
LI) c) Sur un autre billet authentique, la lettre est illisible 116122340242. Quelles sont
.--t
0
N
les lettres possibles ?
@
.......
d) Ce moyen de contrôle n'est pas très poussé. En effet, pour un billet, un opérateur
J::
Ol
·;::::
peut faire une faute de saisie sur un chiffre sans que celle-ci ne soit détectée ! Donner
>- un exemple d'erreur de saisie non détectée sur un billet numéroté x30564853796.
0..
0
u
llQ1 Le code-barres rencontré au supermarché est le code EAN-13 formé de
13 chiffres. Le dernier chiffre est une clé de contrôle calculée à partir des 12 autres.
Pour calculer cette clé de contrôle :
• On multiplie par 3 chaque chiffre de rang pair, on ajoute tous les résultats et on
ajoute tous les chiffres de rang impair.

22
Exercices corrigés

• On calcule le reste dans la division par 10 de la somme obtenue.


• Si le reste est 0, la clé est 0 sinon on retranche le reste de 10 pour avoir la clé.
Par exemple, prenons le code-barres 471-9-5120-0288-x (où x est la clé de contrôle
que l'on cherche).

Tableau 1.9
Chiffre 4 7 1 9 5 1 2 0 0 2 8 8
Coefficient
l 3 l 3 l 3 l 3 l 3 l 3
multiplicateur

Résultat 4 21 l 27 5 3 2 0 0 6 8 24

La somme vaut 4 + 21 + 1 + 27 + 5 + 3 + 2 + 0 + 0 + 6 + 8 + 24 = 101, le reste dans


la division par 10 est 1 donc la clé est 10 - 1 = 9.
a) Quelle est la clé de contrôle des codes-barres suivants, 4 971850 13816 x et
6 547531 18367 X ?
b) Peut-on retrouver le chiffre manquant dans les codes-barres suivants,
9 782216 11247 4 et 3 282112 62913 4?

Solutions

m (101010)2=1 x 25 +O x 2 4 +l x 2 3 + Ox 22 + lx2 + 0=42


(1011101 )2 = 1X26 +0 X25 +1 X24 +1 X 23 +1 X2 2 +0 X2+1=93

(11011010)i= 1X2 7 + 1X26 + 0 X 25 + 1X24 +1 X23 +0 X2 2 +1 X2 + 0 = 218


2
(135) 16 =1 X16 +3 X16 + 5 = 309

(F2) 16 =15 x 16+2= 242


"'O
0
c
0
:J ( 4C) 16 = 4 X16+12 = 76
.,,:<:;
m
li)
c::
..--t :l 3 2
0
N
~
14 = 8+4+2 = 1X2 +1 X2 +l x 2+0 = (1110) 2
"
@
.......
~ 71=64+4+2+1
0
J:: :;
O'l
·;:::: "'0c:: 6 4 2
>- c:: = 1X2 + 0 X 25 + 0 X 2 +0 X23 +1 X2 +1 X2+1
o. .9
c::
0
u .,,ü
:l = (1000111)2
2
o.
~
"
:;
238=128 + 64+ 32 + 8+ 4+ 2
0
1-
.,,1 = 1X2 7 +1 X26 +1 X25 +0 X 24 +1 X 23 +1 X2 2 +1 X2 + 0
0
c:
0
:l
= (11101110)2
QJ

23
Chapitre l • Arithmétique

Pour les conversions de base 16 vers la base 2, il suffit de convertir chaque chiffre en
base 2 et de concaténer (au besoin, se servir du tableau de conversion donné dans la
partie cours)

(B4) 16 = ( 10110100 )2 (30A) 16 = (1100001010 )2 (6D) 16 = (1101101 )2

œ 2
401 = 1 X16 + 9 X16 + 1 = (191)16
2
8247 = 2 X163 + 0 X16 + 3 X16 + 7 = ( 2037) 16

10000 = 2 X163 + 7 X162 + 1 X16 + 0 = ( 2710) 16


Pour les conversions de base 2 vers la base 16, on regroupe les chiffres par paquets
de 4 en partant de la droite et on utilise la table de conversion.

(10001)2 = (00010001)2 = (11)16


(110110)2 = (00110110)2 = (36)16

(10010111)2 = (97)16

1 1 0 1
(1,11)2 =1+ - + - 2 =1,75 (10,01 )2 =lx 2+ Ox 1 + - + - 2 = 2,25
2 2 2 2
1 0 1
(0,101)2 = 0+ - + - 2 + - 3 = 0,625
2 2 2
4 5
(C,4) 16 =12x16+ - =192,25 (20,5\ 6 =2x16+0+ - =32,3125
16 16
1
(8,1\ 6 =8 X16 + - = 128,0625
16
-0
0
lm Enbase2:
c
:J
1 1
0
LI)
4,75=4+0,75=1 X2 2 + - + - 2 =(100,11) 2
.--t 2 2
0
N
@ 1
....... 25,25=1x24 +lx23 +1+ - 2 =(11001,01) 2
J::
Ol 2
·;::::
>-
0..
0 1
u 16,5=1 X24 + - = (10000,1)2
2

En base 16:
3 12
4,75 = 4+ = 4+ = (4,C) 16
4 16

24
Exercices corrigés

1 4
25,25=1X16+ 9+ - = 1X16+ 9+ - = (19,4) 16
4 16
8
16,5=1X16 + - = (10,8) 16
16
m a) a+ b = (100011)2 a-b = (lOOl)i ab = (100011110)2
b) a+ b = (10111001h a-b = (10100001h ab= (100000011 lOO)i
IB a) a + b = (EA) 16 a-b = (B8) 16 ab= (1469) 16
b) a+ b = (1EB) 16 a-b = (17D) 16 ab= (5DAC) 16
m a) a +b = (10000101h
a: b = (10,1) 2
a-b = (l llOOl)i ab= (ll 1000011010h

b) a+ b = (1100110)2 a-b = (110110)2 ab= (11101010000h


a:b = (11,01)2
m a) a+ b =(1010,11)2 a-b = (1,11)2 ab= (11100,001)2
b) a+b = (1010,0lh a-b = (110,11)2 ab = (1110,111)2
1111] a) (l 101000h b) (10,lh c) (A,C)16
1111 a)q=2 et r = 19 65 = 23x 2+19
b) q = 6 et r = 38 308 = 45 X 6 + 38
c) q = 43 et r = 26 1789 = 41x 43+ 26
llt;t a) C'est la division euclidienne de 37 par 8. Le quotient est 4 et le reste est 5.
b) Cette égalité correspond à deux divisions euclidiennes : à celle de 100 par 14,
avec 7 pour quotient et 2 pour reste, et à celle de 100 par 7, avec 14 pour quotient et
2 pour reste.
"'O
0 c) Cette égalité ne correspond à aucune division euclidienne car le reste potentiel
c
0
:J serait 33, et il est supérieur aux diviseurs possibles qui sont 13 et 14.
li)
.,,:<:;
..--t
0
c::
:l
~
lllJ a) C 'est la division euclidienne de 900 par 55. Le quotient est 16 et le reste
N
" est 20.
@
.......
~ 0
J:: :; b) Cette égalité ne correspond à aucune division euclidienne car le reste potentiel
O'l
·;:::: "'0c::
>-
o.
c::
c::
serait 42, et il est supérieur aux diviseurs possibles qui sont 31 et 20.
0 .9
u ü
.,, c) Cette égalité correspond à deux divisions euclidiennes : à celle de 981 par 26, avec
:l

2
o.
~
37 pour quotient et 19 pour reste, et à celle de 981 par 26, avec 37 pour quotient et
" 19 pour reste.
:;
0
1-
.,,1
0
c:
:l
1111 a) 10 000 = 26 x 384 + 16. On a donc écrit 384 alphabets complets et la
0
QJ 10 oooelettre est la lettre de rang 16, c'est-à-dire un P.

25
Chapitre l • Arithmétique

b) 50 000 = 26 X 1 923 + 2. On a donc écrit 1 923 alphabets complets et la 50 oooe


lettre est la lettre de rang 2, c' est-à-dire un B.
llJ1 Si on appelle q le nombre de piles de 10, alors n = lOq + 7. Si e11e fait des piles
de 7, elle aura q + 13 piles donc n = 7(q + 13) + 3 = 7q + 94.
Donc lOq + 7 = 7q + 94 d ' où 3q = 87 et q = 29.
Alice possède donc n = 10 x 29 + 7 = 297 CD.
llld Notons b le nombre de lignes par page, q le nombre de pages et r le nombre
de lignes de la dernière page. On a 1'égalité 5 070 = bq + r.
a) Dans ce cas, b = 64, et la division euclidienne de 5 070 par 64 donne q = 79 et
r = 14. La dernière page aura donc 14 lignes.
b) Dans ce cas, q = 81 et r = 48 donc b = (5 070 - 48):81 = 62. Chaque page aura
donc 62 lignes.
llf~ Les diviseurs de 12 sont 1, 2, 3, 4, 6 et 12, ceux de 20 sont 1, 2, 4, 5, 10 et 20
et ceux de 30 sont 1, 2, 3, 5, 6, 10, 15 et 30.
lll:J

18
13 ------------
65
Figure 1.4

llpJ a) Trois entiers naturels consécutifs peuvent s'écrire n, n + 1 et n + 2. Leur


"'O somme vaut 3n + 6 = 3 (n + 2) et c'est un multiple de 3 puisque n + 2 est un entier
0
c
:J
naturel.
0
LI) b) C'est faux, il suffit de prendre un contre exemple: 1 + 2 + 3 + 4 = 10 et 10 n'est
.--t
0
N
pas multiple de 4.
@
.......
c) Oui. En effet, cinq entiers naturels consécutifs sont n, n + 1, n + 2, n + 3 et n + 4
J::
Ol
·;::::
dont la somme est Sn+ 10 = S(n + 2) qui est un multiple de 5 car n + 2 est un entier
>- naturel.
0..
0
u
lf;,.{IJ On rappelle d' abord la définition : «a est divisible par b s'il existe un entier
naturel k tel que a = kb » .
a) a est divisible par b donc il existe un entier naturel k tel que a= bk. Un multiple de
a s'écrit na avec n entier naturel. Donc na= nbk = b(nk) ce qui prouve que na est
divisible par b puisque nk est un entier.

26
Exercices corrigés

b) a est divisible par b donc il existe un entier naturel k tel que a= kb. b est divisible
par c donc il existe un entier naturel k' tel que b = ck'. Alors a = kb = ck'k ce qui
prouve que a est divisible par c puisque kk' est un entier.
c) a est divisible parc donc il existe un entier naturel k tel que a = ck. b est divisible
par c donc il existe un entier naturel k' tel que b = ck'. Alors a + b = ck + ck'
= c(k + k') ce qui prouve que a + b est divisible par c puisque k + k' est un entier.

La démonstration pour a-b est calquée sur celle de a+ b...

lfjl Jl07~10,3. 107 n'est divisible ni par 2, ni par 3, ni par 5, ni par 7 (qui sont
les nombres premiers inférieurs ou égaux à Jl07 ) donc 107 est premier.
161 n'est pas premier car il est divisible par 7.
179 est premier, il faut tester jusqu'à 13 .
241 est premier, il faut tester jusqu' à 13.
311 est premier, on teste jusqu'à 17.
323 n'est pas premier, il est divisible par 17.
437 n'est pas premier, il est divisible par 19.
563 est premier, on teste jusqu'à 23.
677 est premier, on teste jusqu'à 23.
779 n'est pas premier, il est divisible par 19.
971 est premier, on teste jusqu'à 31.
lf/11 a) En faisant varier n de 0 à 15, on obtient les nombres 17, 19, 23, 29, 37, 47,
59, 73, 89, 107, 127, 149, 173, 199, 227 et 257 qui sont tous premiers (les vérifica-
tions sont faciles).
"'O
0
c
:J
b) A 16 = 162 + 16 + 17 = 16( 16+ 1) + 17 = 16 x 17 + 17 = 17 (16 + 1) = 17 2 donc A 16
0
li)
.,,:<:; n'est pas premier.
..--t c::
:l
0
N
~

"
lfJJ a) An est premier quand n = 3. Il n'est pas premier quand n vaut 4, 5, 6 ou 7.
@
.......
~ b) An= (n + 2)(n - 2). An apparaît comme un produit de deux facteurs donc il n'est
0
J:: :;
O'l
·;:::: "'0c:: jamais premier sauf si un des deux facteurs vaut 1. C' est le cas lorsque n - 2 = 1
>- c::
o. c::
.9 c'est-à-dire pour n = 3.
0
u .,,ü
:l

2
o.
Finalement, An est premier seulement lorsque n = 3.
~
"
:; If.JI a) Sin est pair, on peut poser n = 2m, avec m entier naturel.
0
1-
.,, Alors, An = (2m) 3 + 8 = 8m3 + 8 = 8(m3 + 1) qui est divisible par 8 .
0
1

c:
:l
0
QJ b) (n + 2)(n2 - 2n + 4) = n 3 - 2n2 + 4n + 2n2 - 4n + 8 = n 3 + 8

27
Chapitre l • Arithmétique

On en déduit que An= (n + 2)(n2 - 2n + 4). C'est un produit de deux facteurs, aucun
des deux ne pouvant être égal à 1, donc An n'est jamais premier.
ltJ11) a) Logiquement, cela devrait être le nombre -(lllOl)i, c' est-à-dire -29.
b) La somme devrait être égale à O. Or :
(0000000000011101)2+ (1000000000011101h = (1000000000111010)2 = +32 826
2) 123 = (1111011.)i donc la représentation de 123 sur 16 bits est
0000000001111011. Celle de -123 est donc:
1111111110000100+ 1 = 1111111110000101
43 = (101011) 2 donc sa représentation est 0000000000101011. Celle de -43 est
donc 1111111111010100+ 1 = 1111111111010101.
lf;.{d 1) a) Le nombre associé à ce parcours est (10011001) 2 .
b) Son écriture décimale est 27 + 24 + 23 + 1 = 153.
2) a) 85 = 26 + 24 + 2 2 + 1 = (010101.0lh
b) Le parcours est BDBDBDBD (B =bas, D =droite).

Figure 1.5

3) a) 31 = (lllll)i = (00011111)2. Le nombre 31 correspond à un trajet comportant


cinq déplacements vers le bas. Or tout trajet se décompose en quatre déplacements
"'O vers le bas et autant vers la droite. Il est donc impossible d'avoir N = 31.
0
c
0
:J
b) La plus petite valeur de N est (0000111 l)i = 15.
LI)
.--t
0
c) La plus grande valeur de N est (111 lOOOO)i = 240 .
b)200=2 3 x 52
N
@ lfJ4a)80=24 x 5
.......
J::
Ol
·;::::
lf..fl:J a) 180 = 22 X 32 X 5 b) 630 = 2 X 32 X 5 X 7
>-
0..
0
ltl#la)l 150=2x52 x 23 b)1360=24 x5 x 17
u
Ille] a) 48 = 24 x 3. Les diviseurs de 48 sont de la forme 2i x Y avec i qui vaut 0,
1, 2, 3 ou 4 etj qui vaut 0 ou 1. Ce sont donc:
2°X3° =1 2 1 X3° = 2 2 2 X 3° = 4 2 3 X 3° = 8 24 X3°=16
2°x3 1 =3 i x 31 = 6 22 X 31 = 12 23 X 31 = 24 24 x 31 = 48

28
Exercices corrigés

Classés par ordre croissant, les diviseurs de 48 sont: 1, 2, 3, 4, 6, 8, 12, 16, 24 et 48.
b) 135 = 3 3 x 5. Les diviseurs de 135 sont de la forme 3i x Si avec i qui vaut 0, 1, 2
ou 3 etj qui vaut 0 ou 1. Classés par ordre croissant, les diviseurs de 135 sont : 1, 3,
5, 9, 15, 27, 45 et 135.
llQI a) 1617 = 3 x 7 2 x 11. Les diviseurs de 1617 sont 1, 3, 7, 11, 21, 33, 49, 77,
147, 231, 539 et 1617.
b) 5 915 = 5 x 7 x 13 2. Les diviseurs de 5915 sont 1, 5, 7, 13, 35, 65, 91, 169, 455,
845, 1183 et 5915.
llft1J a) 350 = 2 X 52 X 7
b) La décomposition en produit de facteurs premiers d ' un carré ne doit comporter
que des exposants pairs. Cela deviendra le cas si on multiplie 350 par 2 x 7. La
décomposition sera alors 2 2 x 5 2 x 7 2 = (2 x 5 x 7) 2 = 702 .
llQJ a) 22 869 = 33 X 7 X 11 2
b) 11 faut multiplier par 3 x 7 pour obtenir 34 x 7 2 x 11 2 = (3 2 x 7 x 11) 2 qui est le
carré de 693.
llQI a) a = 25 x 3 b = 2 3 X 7 X 13 PGCD(a;b) = 23 = 8
b)a=3 2 x7x17 b = 23 X 52 X 11
PGCD(a;b) = 1 ce qui prouve que 1 071 et 2 200 sont premiers entre eux.
18191 a)a=315 = 3 2 X 5 X 7 b = 1176 = 23 X 3 X 72
PGCD(a;b) = 3 x 7 = 21
b) a = 4 840 = 23 X 5 X 11 2 b = 4 356 = 22 X 32 X 11 2
PGCD(a;b) = 22 x 11 2 = 484
IWfd a) Cette méthode est l'algorithme d'Euclide. On va effectuer des divisions
euclidiennes jusqu'à obtenir un reste nul. Le PGCD sera alors le dernier diviseur
"'O
0
c testé.
:J
0
li)
.,,:<:; 130=85x1+45 85=45 x 1+35 45=35x1+10
..--t c::
:l
0
N
~ 35 = 10 x 3+5 10 = 5 x 2+0
"
@
.......
~ Le reste est 0, le dernier diviseur testé est 5 donc PGCD(130;85) = 5.
0
J:: :;
O'l
·;:::: "'0c::
>- c:: b) 4 114 = 1 530 X 2 + 1 054
o. c::
.9
0
u ü
.,, 1530=1054x1+476
:l
1054=476 x 2+102 476=102x4+68
2
o.
~
102 = 68 X 1 + 34 68 = 34x 2+0
"
:;
0
1-
.,, Le reste est 0, le dernier diviseur testé est 34 donc PGCD(4 114;1 530) = 34.
0
1

c:
:l
0
QJ llft~ a) PGCD(882;540) = 18 b) PGCD(l 725;1 309) = 1

29
Chapitre l • Arithmétique

IM:J Le nombre de bouquets dit être le PGCD de 280 et de 490.


280 = 23 X 5 X 7 et 490 = 2 X 5 X 72 donc PGCD(280;490) = 2 X 5 X 7 = 70.
On peut donc faire au plus 70 bouquets. Chacun d'eux aura alors 4 roses rouges et
7 roses blanches.
1@1 Le côté de chaque carré doit être un diviseur des dimensions en millimètres
de la feuille et pour que les carrés soient les plus gros possibles, il faut que ce soit le
PGCD de 210 et 297 (dimensions en mm).
210 = 2 x 3 x 5 x 7 et 297 = 33 x 11 et donc PGCD(210;297) = 3.
Les carrés auront 3 mm de côté. Sur la largeur, on fera 210:3 = 70 carrés, sur la
longueur, on en fera 297:3 = 99, ce qui fera 70 x 99 = 6 930 carrés.
11111 a) 6 est le reste de la division euclidienne de 90 par 7, et 3 est le reste de la
division euclidienne de 66 par 7.
b) 90 + 66 = 6 + 3 [7] = 2 [7] 4 X90 = 4 X 6 [7] = 24 [7] = 3 [7]
90 X66=6X3[7]=18[7] = 4[7] 90 2 = 6 2 [7] = 36[7] = 1[7]
3 3
66 = 3 [7] = 27 [7] = 6[7]

lllla) 200 = 13 x 15+5 donc 200=5[13]

900=13 x 69 + 3 donc 900 = 3[13]

b) 200 + 900 = 5 + 3 [13] = 8 [13] 200 X 900 = 5 X 3 [13] = 2 [13]


2 2 3 3
200 = 5 [13]=12[13] 900 = 3 [13]=1[13]

4 2
c) 2004 = (2002 )2donc 200 =12 [13]=144[13]=1[13]

"'O
6
900 = (900
3
r 6
donc 900 = I2 [13] = 1[13]
0
c
:J
2004 + 900 6 = 1 + 1[13 J = 2 [13 J , le reste de la division euclidienne de 200 4 + 9006
0 par 13 est 2.
LI)
.--t
0
N
llt"I a) Dans la division euclidienne par 6, le reste est 0, 1, 2, 3, 4 ou 5. Donc tout
@ entier naturel est congru à un de ces 6 nombres.
.......
J::
Ol
·;:::: b)
>-
0..
0 Tableau 1.1 O
u
n = ...... [6] 0 1 2 3 4 5

n+l= ...... [6] 1 2 3 4 5 0

n+2 = ...... [6] 2 3 4 5 0 1

n(n + l)(n + 2) = ...... [6] 0 0 0 0 0 0

30
Exercices corrigés

c) Le produit de trois entiers naturels consécutifs est toujours un multiple de 6.


lllJ a)
Tableau 1.1 1
n = ...... [S] 0 l 2 3 4

n2 = ......[S] 0 1 4 4 1

n3 = ......[S] 0 1 3 2 4

ns = ......[S] 0 1 2 3 4

4n = ...... [S] 0 4 3 2 1

n 5 + 4n = ...... [S] 0 0 0 0 0

b) Pour tout entier naturel n, le reste de la division euclidienne de n5 + 4n par 5 est O.


Autrement dit, n5 + 4n est toujours un multiple de 5.

1111 a)
Tableau 1.12

1 ff'~ ...... [7] 1


0 2 3 4 5 6
n = ......[7] 0 6 6 6

b) 4 est le reste de la division euclidienne de 1 789 par 7 donc 1789=4[7]. Donc


1 789 3 = 4 3[7] =1 [7].
c) 1 789 = 3 x 596 + 1 donc 1 789 1789 = 1 7893 x 596+ 1 = (1 7893 ) 596 x 1 789.
d) 1 789 1789 =: (1 789 3 ) 596 X 1 789[7] =: 1596 X 1 789[7] =: 1 789[7] =: 4[7].
Le reste de la division euclidienne de 1 789 1789 par 7 est 4.

11191 a= b [n J donc il existe un entier naturel k tel que a- b = kn.


"'O
0
c = d [n J donc il existe un entier naturel k' tel que c- d = k'n.
c
:J
0
.,,:<:; a) a-b+c-d=kn+k'n~(a+c)-(b+d)=(k+k')n. Puisque (k +k')n est un
li)
..--t c::
:l
0
N
~
multiple de n, cela prouve que a+ c = b + d [n J.
"
@
.......
~
0
J:: :; b) a - b = kn => p(a - b) = pkn => pa - pb = (pk )n . Puisque (pk)n est un multiple
O'l
·;:::: "'0c::
den, on a prouvé que pa = pb[ n J.
>- c::
o. c::
.9
0
u ü
.,,
:l

2
o. c) a-b=kn~a=b+kn et c-d=k'n~c=d+k'n.
~
"
:;
0
1-
Alors ac= (b + kn)(d + k'n) =bd+ bk'n + dkn+ kk'n 2 =bd+ (bk'+ dk + kk'n)n.
.,,
1
0
c:
:l
Donc ac - bd = (bk '+ dk + kk 'n )n , qui est un multiple de n, donc on a prouvé que
0
QJ ac = bd[n].

31
Chapitre l • Arithmétique

llld a) 1 est son propre inverse.


2 x 4 = 8 =1[7] donc 2 et 4 sont inverses l'un de l'autre.
3 x 5 = 15 =1[7] donc 3 et 5 sont inverses l'un de l'autre.
6 x 6 = 36 =1 [7] donc 6 est son propre inverse.
b) 3x = 4[7] <=> 5 X 3x = 5 X 4[7] <=>X= 6[7]
Les solutions de l'équation sont tous les entiers congrus à 6 modulo 7.
Les solutions comprises entre 100 et 140 sont: 104, 111 , 118, 125, 132, 139.
llf4a)
Tableau 1.1 3
Nombre l 2 3 4 5 6 7 8 9 10

Inverse modulo 11 1 6 4 3 9 2 8 7 5 10

b) 4x + 7 = 8[11] <=::> 3(4x + 7) = 3 X 8[11] <=::> l2x + 21= 24[11] <=::> x = 3[11]
Les solutions de l'équation sont tous les entiers congrus à 3 modulo 11
llf:) a) v = 22, on additionne 22 + 0 + 2 + 3 + 8 + 7 + O+ 4 + 0 + 3 + 3 + 4 = 56.
Dans la division par 9, le reste est 2 donc ce billet est un faux.
m = 13, on additionne 13 + 1 + 2 + 0 + 6 + 5 + 9 + 7 + 4 + 4 + 3 + 8 = 62. Dans la
division par 9, le reste est 8 donc le billet est un vrai.
b) s = 19. Si on note x le dernier chiffre, la somme est 51 + x. Le reste dans la divi-
sion par 9 est 8 lorsque x = 2 (c'est la seule possibilité avec 0 ~ x ~ 9).
c) Notons a la valeur lettre manquante, 0 ~a~ 26. La somme est a+ 27, elle doit
être congrue à 8 modulos 9. Donc comme 27 = 0[9], alors on doit avoir a= 8[9] ce
qui donne comme possibilités a = 8, a = 17, a = 26 c 'est-à-dire les lettres i, q et z.
~ d) Taper un 9 à la place d'un 0 ne changerait pas le reste de la division euclidienne,
§ c'est donc une erreur non détectable.
0

~ llQl a) Pour le premier code:


N

@ Tableau 1.1 4
.......
J::
Ol
·;:::: Chiffre 4 9 7 l 8 5 0 l 3 8 l 6
>-
0..
0
u Coefficient
1 3 1 3 1 3 1 3 1 3 1 3
multiplicateur
Résultat 4 27 7 3 8 15 0 3 3 24 1 18

La somme totale est 113. Le reste dans la division par 10 est 3 donc la clé est
10 - 3 = 7.

32
Exercices corrigés

Pour le deuxième code :

Tableau 1.1 5
Chiffre 6 5 4 7 5 3 1 1 8 3 6 7

Coefficient
1 3 1 3 1 3 1 3 1 3 1 3
multiplicateur

Résultat 6 15 4 21 5 9 1 3 8 9 6 21

La somme totale est 108. Le reste dans la division par 10 est 8 donc la clé est :
10 - 8 = 2
b) Pour le premier code : soit x le chiffre inconnu, la somme est :
9 + 21+8+6 + 2 + 3 + 6 + 3x + 6 + 4 + 21=89 +X
La clé est 4 donc le reste de la division par 10 doit être 6. C ' est possible uniquement
avec x = 7.
Pour le deuxième code : soit x le chiffre inconnu, la somme est :
3 + 6 + 8 + 6 + 1 + 3x + 2 + 18 + 2 + 27 + 1 + 9 = 83 + 3x
La clé est 4 donc le reste dans la division par 10 doit être 6. C'est possible unique-
ment si x = 1.

"'O
0
c
:J
0
li)
..--t
0
N
@
.......
~0
J:: :;
O'l
·;:::: "'c:
0
>- c:
0. c:
0 .9
u ü
:::l

2o.
~
'l.)
:;
~
1
"8c:
:::l
0
QJ

33
"'O
0
c
::J
0
li)
r-t
0
N
@
.....,
.s::
Ol
'i:
>-
0.
0
u
SUITES NUMÉRIQUES

2.1 Généralités
2.2 Suites particulières
2.3 Variations d'une suite
2.4 Limite d'une suite

> Étude de phénomènes discrets


> Comparaison de modèles mathématiques et étude de la tendance
à long terme
> Étude de situations relevant de suites arithmétiques ou géométriques

2. 1 GÉNÉRALITÉS
Une liste de nombres réels du type (u0 ; u 1 ; u2 ; u3 ; ..• ) ou (u 1 ; u2 ; u 3 ; ... ) s'appelle
une suite numérique et peut se noter plus simplement (un) . Les éléments de cette
liste sont appelés les termes de la suite. Lorsque un est définie par une formule du
type un = f(n) , on dit que f(n) est le terme général de la suite.

"'O
0 Exemple
c
:J
0 La li ste (1 ; 3 ; 5 ; 7 ; 9 ; 11 ; 1 3 ; ... ) des entiers naturels impairs peut être gén érée
li)
.,,:<:; en posant, pour tout entier n ~ 0, un= 2 n + 1 :
..--t c::
:l
0
N
~ Uo = 2 X 0 + 1 = 1 ; u, = 2 X 1 + 1 = 3 ; Uz = 2 X 2 + 1 = 5 ; etc.
" Il s'agit donc de la suite (un) de terme général 2 n + 1.
@
.......
~ 0
J:: :;
O'l
·;:::: "'0c:: Lorsqu'une suite a été définie à l'aide de son terme général, on parle de suite
>- c::
o. .9
c::
définie explicitement.
0
u .,,ü
:l

2
o.
~
"
:;
0
Exemple
1-
.,,1 La suite <vn) défini e pour tout entier n ~ 1 par vn = 2/ n admet pour terme général
0
c:
:l 2/n.
0
QJ Se s termes so nt v 1 = 2/1 = 2 ; v2 = 2/2 = 1 ; v3 = 2/3, etc.

35
Chapitre 2 • Suites numériques

On peut aussi générer une suite sans connaître son terme général, à l'aide de son
premier terme et d ' une relation entre des termes consécutifs comme dans l'exemple
suivant. On parle alors de suite définie par récurrence.

Exemple
Soit (un) la suite définie par u 0 = 2 et Un+l = 2un+ 1 (pour tout n 2 0). Les termes de
cettesuitesontu0 =2;u 1 =2u0+1 =2x2+1 =5;u2 =2u1+1 =2x5+1 =11;
U3 = 2 U2+ 1 = 2 X 11 + 1 = 2 3 ; etc.
On a utilisé un tableur pour obtenir les premiers termes de cette suite. Dans la
cellule 82, on a saisi 2, puis « = 2*82+ 1 » dans 83 avant de l'étirer vers le bas.
On a représenté ci-dessous en sélectionnant la plage A2:812, les onze premiers
termes (de u0 à u 10).

A 3500
1
2
n
0
... Un
2
3000 •
1 5 2500
4 2 ... 11
5
6
7
3
4
5
-
.....
23
47
95
2(XX)

1500

8 6 .. 191 1000
9 7 383
500

10 8 767 •
11
12
9
10
1535
3071
O•
0
• • • • • •
2 3 4 5 6 7 8 9 10

Figure 2.1

Le menu « suites » des calculatrices graphiques permet d'obtenir, sous la forme


d'une table de valeurs, les premiers termes d'une suite (définie par récurrence ou
explicitement).

Exemple
"'O
0 Pour une suite récurrente comme celle de l'exemple précédent, on peut aussi utili-
c
::J ser le menu « calcul » en saisissant la séquence d'instructions suivante :
0
lJ) 2, EXE, ANSx2+ 1, EXE, EXE, EXE, etc.
......
0
N
@
.....,
.s::
Ol
2.2 SUITES PARTICULIÈRES
'i:
>-
8 2.2.1 Suites arithmétiques
On dit qu' une suite (un) est arithmétique lorsqu'on passe d'un terme de cette suite
au suivant en ajoutant toujours le même nombre, c' est-à-dire s'il existe un réel r tel
que pour tout entier n, un+I =un+ r. Le nombrer est alors appelé la raison de la suite
(un).

36
2.2 • Suites particulières

Exemple
Soit (un) la suite définie par u 0 = 3 et Un+l =un+ 2. On passe d'un terme de la suite
(un) au suivant en ajoutant 2 : u1 = u 0 + 2 = 3 + 2 = 5 ; u 2 = u 1 + 2 = 5 + 2 = 7 ; u 3 =
u 1 + 2 = 7 + 2 = 9 ; etc. La suite (un) est arithmétique de raison 2 et de premier
terme 3.

Propriété 2.1
Si (un) est une suite arithmétique de raison r, alors :
- Pour tout entier n ~ 0, un= u0 + nr.
- Pour tout entier n ~ 1, un= u 1 + (n-l)r.
- Pour tout entier n ~ 2, un= u2 + (n-2)r.
-Etc.

Exemples
- Soit (un) la suite numérique définie par u 0 = 5 et Un+l = Un + n.
On a u1 = u0 + 0 = 5 + 0 = 5 et u2 = u1 + 1 = 5 + 1 = 6. Cette suite n'est pas arithmétique
car on ne passe pas d'un terme au suivant en ajoutant toujours le même nombre
(on ajoute 0 pour passer de u0 à u 1 et on ajoute 1 pour passer u1 de à u2 ) .
- Soit (vn) la suite numérique définie par v 0 = 7 et Vn+l = vn - 0, 1. Cette suite est
arithmétique de raison r = - 0, 1 puisqu'on ajoute toujours - 0, 1 pour passer d'un
terme au suivant. On a donc, pour tout entier n ~ 0, vn= v 0 + n x (-0, 1) = 7 - 0, 1 n.

Propriété 2.2
Une suite de terme général an+ b (avec a ,b E IR{) est arithmétique de raison a.
En effet si un= an+ b, alors un+ 1 = a(n + 1) + b =an +a + b =an+ b +a= un+ a .

"'O Exemples
0
c Des suites de termes généraux 7 n + 2, -3 ,2 n + 5 et n - 10 sont arithmétiques de
:J
0 raisons 7, -3,2 et 1 respectivement.
li)
.,,:<:;
..--t c::
:l
0 ~
N
" Nous allons voir dans la propriété suivante que si (un) est une suite arithmétique,
@
.......
~ on peut calculer toute somme de termes consécutifs de cette suite (par exemple
0
J:: :;
O'l
·;:::: "'c:: S = uw + u 11 + ... + u 100 ) en utilisant uniquement le nombre de termes, le premier et
0
>- c::
o. .9
c:: le dernier terme de cette somme (S peut donc se calculer à partir de 91, u 10 et u 100).
0
u ü
.,,
:l

2
o.
~
"
:;
Propriété 2.3
0
1-
.,,1 Si S est une somme de termes consécutifs d'une suite arithmétique, alors on a:
0
c:
:l
S = nombre de termes x (premier terme + dernier terme)/ 2
0
QJ

37
Chapitre 2 • Suites numériques

Cas particuliers importants - Si (un) est une suite arithmétique alors :


.
• Pour tout entier n ;::: 0, Uo + u, + ... +un = (n + 1) u 0 +un
2
u 1 +un
• Pour tout entier n ;::: 1, u, + ... + u = n (*)
n 2
n(n+ 1)
• Pour tout entier n ;::: 1, 1 + 2 + ... + n = (**)
2
On obtient l'égalité(* *) en utilisant(*) avec la suite arithmétique (un) de terme
général n.

Exemple
l + 2 + ... + 99 + l OO = l OO x (l OO+ l) / 2 = 5 050

( Exercice d'application 2. 1
Soit (un) la suite arithmétique de raison r = 3 et de premier terme u0 = 5.
a) Exprimer un en fonction den.
b) Calculer u0 + u 1 + ... + u 89 .

SOLUTION. a) un = Uo + nr = 5 + 3n
b) Uo + u, + ... + Ug9 = 90 X (uo + Ug9)12 = 90 X (5 + (5 + 3 X 89))/2 = 12 465
_)
2.2.2 Suites géométriques
On dit qu' une suite (un) est géométrique lorsqu'on passe d'un terme de cette suite
au suivant en multipliant toujours par le même nombre, c'est-à-dire s'il existe un
réel q tel que pour tout entier n, un+l =un x q. Le nombre q est alors appelé la raison
"'O
0
de la suite (un).
c
:J
0 Exemples
li)
..-t
0
Soit (v11) la suite définie par v0=3 et vn+l = 2vn- On passe d'un terme de la suite (v11)
N au suivant en multipliant par 2 : v1 = 2 v0 = 3 x 2 = 6 ; v2 = 2 v1 = 6 x 2 = 12 ;
@
.......
v3 = 2 v2 = 1 2 x 2 = 24 ; etc. La suite (v11) est géométrique de raison 2 et de premier
.!::
O'l
terme 3 .
·;::::
>-
0.
u
0 Propriété 2.4
Si (un) est une suite géométrique de raison q alors :
- Pour tout entier n ;::: 0, u11 = u 0 x qn.
- Pour tout entier n ;::: 1, un= u 1 x qn- 1•
- Pour tout entier n ;::: 2, un = u2 x qn-2 .
- Etc.

38
2.2 • Suites particulières

Exemples
• Soit (un) la suite numérique définie par u 1 = 2 et Un+l = nun. On a u 2 = 1 x u 1
= 1 x 2 = 2 et u 3 = 2 x u2 = 2 x 2 = 4 . On ne multiplie pas toujours par le même
nombre pour passer d'un terme au suivant : on multiplie par 1 pour passer de u1 à
u 2 et par 2 pour passer de u2 à u 3 . Cette suite n'est donc pas géométrique.
• Soit (vn) la suite numérique définie par v0 = 2 et vn+i = vn/l O. Cette dernière
égalité peut s'écrire vn+i = 0, 1 vn. On multiplie donc toujours par 0, 1 pour passer
d'un terme au suivant, ce qui montre que la suite (vn) est géométrique de raison
0, 1. On a alors , pour tout entier n ~ 0, vn = v0 x 0, 1 n = 2 x 0 , 1 n.

Propriété 2.5
Une suite de terme général a x bn (avec a,b E Iffi.) est géométrique de raison b.
En effet si u n =a x bn ' alors u n + l = a x bn+ 1 = a x bn x b = un x b ·

Exemple
Des suites de termes généraux 3n, 6 x (-2)n et -4 x 1 ,sn sont géométriques de
raisons 3, -2 et 1 ,8 respectivement.

Nous allons voir dans la propriété suivante que si (un) est une suite géométrique
de raison q, on peut calculer toute somme de termes consécutifs de cette suite
(comme par exemple S = u0 + u 1 + u 2 + ... + u80) en utilisant uniquement la raison
de la suite, le nombre de termes et le premier terme de la somme (S peut donc se
calculer à partir des nombres q, 81 et u0 ).

Propriété 2.6
Si S est une somme de termes consécutifs d' une suite géométrique de raison q 'i=- 1,
alors on a S =premier terme X (1 -qnombredetermes) / (l - q).

"'O Cas particuliers importants - Si (un) est une suite géométrique de raison q i= l
0
c
:J
alors :
0
li) ~ 1- n+ I
..--t
0 ~ • Pour tout entier n ~ 0, u0 + u1 + ... + u = u0 X
11
q (*)
N V 1 -q
@
.......
~0 1-q Il
J:: ~
O'l
·;:::: c: • Pourtoutentiern ~ l,u1 +u2 + ... +u,, =u1 x - - -
>-
0.
~ 1- q
0 .9
u ü
:::l
1- 11+1
Pour tout entier n ~ 0, 1 + q + q2 + ... + q =
"8 11
5.
~
• q (**)
V 1-q
:;
~
1
"8c:
:::l
0
QJ

39
Chapitre 2 • Suites numériques

On obtient(**) en utilisant(*) avec la suite géométrique (un) de terme général qn.


Si q = 1, tous les termes de la suite (un) sont égaux à u0 , donc :
Uo+ U1 + ... +Un= (n+l)uo

Exemple
l + 2 + 2 2 + ... + 2 20 = (l - 2 21 ) / (l - 2) = 2 097 l 51

(Exercice d'application 2.2


Soit (un) une suite géométrique de raison q = 0,9 et de premier terme u0 = 1 O.
a) Exprimer un en fonction de n.
b) Déterminer u0 + u 1 + ... + u24.

SOLUTION. a) un= u0 X qn = 10 X 0,9n


b) Uo+ U1 + ... + U24 = Uo X (1-q 24+1) / (1-q) = 10 X (1-0,9 25 ) / (1-0,9);:::: 92,82
(à 10- 2 près)
__ )

2.3 VARIATIONS D'UNE SUITE


On dit qu'une suite (un) de nombres réels est:
• si ses termes sont rangés par ordre croissant, c'est-à-dire si pour tout n,
Un~ Un+I·
• si ses termes sont rangés par ordre décroissant, c'est-à-dire si pour
tout n, Un;::: Un+ J·
• monotone si elle est croissante ou décroissante.

Exemples
"'O - Soit (un) la suite définie pour tout n ~ 0 par u0 = 36 et un+l = un/2 + 4.
0
c Ses premiers termes sont : u0 = 36 ; u 1 = 36/2 + 4 = 22 ; u 2 =22/2 + 4 = 1 5
:J
0 u 3 = 1 5/2 + 4 = l l ,5 ; etc. On les a obtenus avec un tableur: en rentrant 36 dans
li)
..--t
la cellule 82 puis « =82/2+4 » dans la cellule 83 avant de l'étirer vers le bas. On
0
N
peut remarquer que les termes sont rangés par ordre décroissant, la suite (un) est
@ donc décroissante.
.......
J::
- Soit (un) la suite définie pour tout n ~ 0 par un= 3n + l. Ses termes sont l, 4, 7,
O'l
·;:::: l 0, etc. Ils sont rangés par ordre croissant. La suite (un) est donc croissante.
>- - Les termes de la suite (vn) définie pour tout n ~ 0 par vn = (- 2)n sont v0 = l, v1 = - 2 ,
0.
0
u v2 = 4, v3 = -8, etc. Ils ne sont rangés ni par ordre croissant, ni par ordre décroissant,
la suite n'est donc pas monotone.

40
2.3 • Variations d'une suite

A 40
1
2
n
0
~
Un
36
+ 35•
30
4
1
2
22
15
l 25
5
6
3
4
~
11 ,5
9,75
+ 20 •
+ ...
7 5 8,875 15

8 6 8,4375 10 • • • •
9
10 8
7 8,21875
8L109375 5
• • • •
11 9 8,0546875 0
12 10 8,02734375 0 2 3 4 5 6 7 8 9 10

Figure 2.2

Propriété 2.7
Soit ( ) une suite arithmétique de raison . Si > 0 alors ( ) est croissante, si
< 0 alors ( ) est décroissante.

Exemples
Une suite de terme général 5 n-3 est croissante.
Une suite de terme général l 7-3 n est décroissante.

Propriété 2.8
Soient un nombre réel strictement positif et ( ) une suite de terme général
Si 0 < < 1 alors ( ) est décroissante. Si > 1 alors ( ) est croissante.

Exemples
"'O Une suite de terme général 2 n est croissante.
0
c Une suite de terme général 0,9n est décroissante.
::J ..;
0 '03
lJ)
...... ""'c:
::l
0
" (Exercice d'application 2.3
~
N
@ ]
..._,
.s::
Ci
:; Soit (un) la suite définie pour tout n ;:: 0 par un= 0,7 3n. Quel est le plus petit
Ol
'i:
"'c:0 entier n tel que un< 10-4 ?
>-
o.
c:
c:
0 .9
u ü::l SOLUTION. un= 0,7 3n = (0,7 3 )n = 0 ,343n ; 0 < 0,343 < 1, la suite (un) est donc
""'2P.
!.:!
décroissante. Avec une calculatrice, on obtient u8 ~ 2 x 10-4 et u9 ~ 7 x io- 5, d' où
2l
::l
0
u8 > 10-4 et u9 < 10-4. La valeur cherchée est donc 9.
1-
1 _J
""'c:0
::l
0
©

41
Chapitre 2 • Suites numériques

2.4 LIMITE D'UNE SUITE


Soient (un) une suite numérique et L un nombre réel :
• On dit que la limite de la suite (un) est L (ou que la suite tend vers L) lorsque, pour
tout entier n suffisamment grand, tous les un peuvent être rendus aussi proches de
L qu'on le souhaite. On peut alors noter: lim u,, = L.
n-+too
• On dit que la limite de la suite (un) est+= (ou que la suite tend vers+=) lorsque,
pour tout entier n suffisamment grand, tous les un peuvent être rendus aussi grands
qu'on le souhaite. On peut alors noter: lim ut!=+=.
n-+too
• On dit que la limite de la suite (un) est -oo (ou que la suite tend vers -oo) lorsque,
pour tout entier n suffisamment grand, tous les un peuvent être rendus aussi petits
qu'on le souhaite. On peut alors noter : lim ut! = - 00 .
n~+oo

Exemple
Soient (un), (vn) et (wn) les suites numériques définies pour tout n ~ l par :
Un= 100/n, Vn= n 2 et Wn= 1 - lOn.
On a représenté à partir d'un tableur les premiers termes de ces suites.

c 250 '
A
n
B
Un Vn
D
Wn
200
• •
1
2
100
50
1
4
-9
-19 150
• •
• •
3 33,33333333 9 -29
100 •
4 25 16 -39

•• •• •• •• • • • •
5 20 25 -49 •Un
50

'• •
6 16 ,66666667 36 -59 + Vn
7
8
14,28571429
12,5
49
64
-69
-79
Ot • •
! y 5 6 7 8 9 10 11 12
•••
13 14 15
• Wn

9 11, 111 11111 81 -89 -50 1 T T T T


10 10 100 -99 T
-100 T T
11 9,090909091 121 -109 T
12 8 ,333333333 144 -119 T T
-150 T
13 7,692307692 169 -129
14 7,142857143 196 -139 -200

Figure 2.3

"'O
0 On peut conjecturer et on pourrait démontrer que pour n suffisamment grand :
c
::J - Tous les un peuvent être rendus aussi proches de 0 qu'on le souhaite.
0
lJ) - Tous les vn peuvent être rendus aussi grands qu'on le souhaite.
......
0 - Tous les wn peuvent être rendus aussi petits qu'on le souhaite .
N
La limite de la suite (un) est donc 0, celle de la suite (vn) est +oo et celle de la suite
@
..._, (wn) est - oo . On peut écrire: lim u =0; lim v = +oo ; limw,, = -oo .
11 11
.s:: n-H ·oo n-t+oo n-H ·OQ
Ol
'i:
>-
0. Considérons la suite (un) définie pour tout n;;::: 0 par un= (-1)'1. Les termes de cette
0
u suite sont 1 ; -1 ; l ; -1 ; 1 ; ... Lorsque n devient grand, les un ne se stabilisent vers
aucune valeur particulière. On dit que cette suite n'a pas de limite.

Exemple
Soient (un), (Vn) les suites géométriques définies pour tout n ~ 0 par Un = l 0 X o,sn
et vn = 0,8 x l ,2n. On a représenté fig . 2.4 les premiers termes de ces suites.

42
2.4 • Limite d'une suite

30

25 •
20 •

15
• • Un
+ Vn

10•

0
• . ..
....' ..: .... ••••••
~-·-·
• • •
·~~~~~~~~•

0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Figure 2.4

On peut conjecturer que (un) a pour limite 0, tandis que (vn) a pour limite +oo.

Propriété 2.9
Soient q et A, des nombres réels avec q > 0 :
- Si 0 < q < 1 alors ,~1!: (A X qn) = 0

-Si q > 1 et A> 0 alors lim


n--?-t<x>
(A. x qn) = +oo
- Si q > 1 et A,< 0 alors lim (A, x q") = -oo.
11--?+oo

Exemples
lim 0,98" = 0 car 0 < 0,98 < 1.
11- H-oo

lim(3x l,01")=+= car 1,01 > l et 3 >O.


11--H-oo

"'O
0
c
lim 1,22 " = lim (1,22 )" = lim 1,44" = + 00 car l ,44 > l .
11-1+oo ll - H·oo 11-H-oo
::J ..;
0 '03
lJ)
""'c: lim(-6 x2,4" )=-oo car 2,4 >let -6 <O.
...... ::l
0 ~
N
"
@ ] Propriété 2.10
..._, Ci
.s::
Ol
:;
"'c:0 Soit (un) une suite, soient L et A, des nombres réels. Si lim u 11
=L alors
'i:
>- c: lim (un+ A.)= L+ A. iH+oo
o. c:
.9 n--?+oo
0
u ü::l
""'2P.
!.:!
2l
::l
Exemple
0
1-
lim 0,9" =0 car 0 < 0,9 < 1, donc lim (s+0,9")=5
1
,,,+oo n ~+oo

""'c:0
::l
0
©

43
Chapitre 2 • Suites numériques

TD - Évolution d'une liste de diffusion

Le responsable d'un site internet a mis en place une liste de diffusion pour fidéliser
ses utilisateurs. Cette liste compte actuellement exactement 10 000 inscrits.
Depuis sa création, on a pu constater que chaque semaine 20 % se désinscrivent
alors que dans le même temps 4 800 utilisateurs s'inscrivent. On suppose que le
nombre d'inscrits va suivre cette évolution.
Le but de ce TP est alors de répondre aux questions suivantes :
• Question 1 : le nombre d'inscrits va-t-il finir par se stabiliser ?
• Question 2 : arrivera-t-on à dépasser les 23 000 inscrits ? Si oui, en combien de
temps?
Pour cela, on note un le nombre d'inscrits (en milliers) dans n semaine(s). On a
donc:
u0 = 10 et un+l = 0,8un + 4,8

1. Conjecture
À l'aide d'une calculatrice, émettre une conjecture sur la limite de la suite (un).

2. Suite auxiliaire
Pour tout n E N, on pose vn = (24 - un)/ 14. On a utilisé un tableur, avec la disposi-
tion de la fig. 2.5, pour obtenir les premiers termes de la suite (un) et ceux de la
suite (vn).
A c
n Vn
0
3 1
2
"O
0 5 3
c
::J 6 4
0
LI)
,...-l Figure 2.5
0
N
@
a) Qu'a-t-on saisi dans la cellule B2, dans la cellule B3 avant de l'étirer vers le bas et
..... dans la cellule C2 avant de l'étirer vers le bas ?
L
Ol
·c b) Émettre une conjecture sur l'expression de vn en fonction den.
>-
0.
0
u
3. Démonstrations
a) Montrer que (vn) est une suite géométrique de raison 0,8 et de premier terme v0 = 1.
b) En déduire l'expression de vn, puis celle de un en fonction den.
c) Combien devrait-il y avoir d'inscrits dans dix semaines ?

44
Solution du TD

4. Conclusion
a) Répondre à la question 1.
b) Écrire puis implémenter un algorithme permettant de répondre à la question 2.

Solution du TD

1. Conjecture
On saisit « 10 » puis on valide. On saisit ensuite « ANSx0.8+4.8 » puis on valide un
certain nombre de fois. On obtient les premiers termes de la suite (un). On peut alors
conjecturer que lim un = 24.
n -+too

2. Suite auxiliaire
a) Dans les cellules B2, B3 et C2 on a saisi respectivement« 10 », « =0,8*B2+4,8 »
et« =(24-B2)/14 ».
A B c
n Un .. Vn
2 0 10 1
3 1 12,8 0,8
4 2 15,04 +
0,64
5 3 16,832 ~
0,512
6 4 18,2656 0,4096

Figure 2.6
b) On peut conjecturer que vn = 0,8n.

3. Démonstrations
"'O
0 a) Vn+l = (24 - Un+l) f 14 = (24 - (0,8un + 4,8)) f 14 = (24 - 0,8un - 4,8) /14
c
::J ..; = (19,2 - 0,8un) I 14 = 0,8 X (24 - un )/14 = 0,8vn
0 '03
lJ)
...... ""'c: La suite (vn) est donc une suite géométrique de raison 0,8. Son premier terme est
::l
0
" v0 = (24 - u 0 ) 1 14 = (24 - 10) / 14 = 1.
~
N
@ ]
..._, Ci
.s:: :; b) V n = Vo X 0,8n = 1 X 0,8n = 0,8n
Ol
'i:
"'c:0
>-
o.
c:
c: Vn = (24 - Un) f 14 donc 24 - Un= 14 Vn, d'où Un= 24 - 14 Vn = 24 - 14 X 0,8n.
0 .9
u ü::l 10
""'2P. c) u 10 = 24 - 14 x 0,8 z 22,497. Dans dix semaines, il devrait y avoir environ
!.:! 22 500 inscrits.
2l
::l
0
1-
1

""'c:0 4. Conclusion
::l
0
© a) Puisque 0 < 0,8 < 1, alors lim (- 14 X 0,8 11
) = 0, d' où lim un= 24 + 0 = 24.
11-+too n -+too

45
Chapitre 2 • Suites numériques

Réponse à la question 1 : le nombre d'inscrits va finir par se stabiliser vers 24 000.

b) Puisque lim u
n-+too
11
= 24, tous les un, à partir d'un certain rang, dépassent 23. Le
nombre d'inscrits finira donc par dépasser 23 000. L'algorithme suivant permet
d'obtenir la première semaine où ce nombre sera effectivement dépassé.
Variable : n (entier)
Début
n +-- 0
TantQue 24-14*0.8"n<=23 Faire
1 n +-- n+ 1

FinTantQue
Afficher n
Fin

L'exécution de l'algorithme donne n = 12.


Réponse à la question 2 : le palier des 23 000 inscrits sera franchi en 12 semaines.

Exercices corrigés

Dl Calculer les trois premiers termes de la suite (un) définie pour tout entier
n :2:: 0 par un = n 2- l 0 n.
m Soit la suite définie par
(vn) Vo = 1,2 et pour tout entier n ; : : 0 par Vn+l = 1Ovn
+ 0, 1. Calculer v et v1 2.

œ Soit la suite définie par


(un) = 2 et pour tout entier n;;:::: 0 par Un+/= 2un + 3.
Uo
Pour tout n E ru, on pose Sn= Uo + U1 + ... +un. On souhaite déterminer, à l'aide
d'un tableur, quelques valeurs particulières de un et de Sn- On adopte pour cela la
-0
0
c
disposition de la fig. 2.7.
::J
0 A B c

-- -
LI)
,...-l 1 n Un Sn
0
N 2 0 +
@
.....
L
3
4
1
2
.. +

Ol t +
·c 5 3
>-
0.
0
6 4
u
Figure 2.7

a) Que doit-on rentrer dans la cellule B2 ?


b) Quelle formule doit-on saisir dans la cellule B3, avant de l'étirer vers le bas ?
c) Que peut-on rentrer dans la cellule C2?

46
Exercices corrigés

d) Quelle formule doit-on saisir dans la cellule C3, avant de l'étirer vers le bas?
e) Déterminer, à l'aide du tableur, les valeurs de u 12 et S 12 .
BJ On place 5 000 €sur un compte bancaire rémunéré à 1,2 % par an. Cela signi-
fie que chaque année, on perçoit des intérêts d'un montant égal à 1,2 % du capital,
qui s'ajoutent alors au capital. Le montant du capital sera donc de 5 000 x 1,012
= 5 060 €au bout d'un an, puis de 5 060 x 1,012 = 5 120,72 €au bout de deux ans,
etc.
On souhaite déterminer, à l' aide d'un tableur, la durée, en année, à partir de laquelle,
le capital dépassera 6 000 €. On utilise pour cela un tableur avec la disposition de la
fig. 2.8.

A
1 Année Capital
-1 1

3
0
1
1 r
4 2
5 3 1 1

Figure 2.8

a) Que doit-on rentrer dans la cellule B2 ?


b) Quelle formule doit-on rentrer dans la cellule B3, avant de l'étirer vers le bas?
c) Quel sera le capital acquis à 5 ans ?
d) Répondre au problème posé.
œ Quels sont les SÎX premiers termes de la suite (un) définie par Uo = 1, U1 = 1 et
Un+2 = Un+l + Un ?
m Soient (un), (vn) et (wn) les suites définies pour tout entier naturel n par
un = n , vn = 5 n et w n = 3n12. Pour chacune de ces suites, dire si elle est arithmétique,
3

"'O géométrique ou ni arithmétique et ni géométrique.


0
c
0
::J ..;
'03
fB Dans chacun des cas suivants, calculer u k.
lJ)
...... ""'c: a) (un) est une suite arithmétique de raison 3 et on a u0 = -11 et k = 12.
::l
0 ~
N
@ ]
" b) (un) est une suite arithmétique et on a u0 = 12, u4 = 20 et k = 20.
..._,
.s::
Ol
'i:
Ci
:;
"'c:0
m Dans chacun des cas suivants, calculer u k. ·
>-
o.
c:
c: a) (un) est une suite géométrique de raison 5 et on a u0 = 0,44 et k = 7.
0 .9
u ü::l
b) (un) est une suite géométrique de raison 0,4 et on a u3 = 16 et k = 8.
""'2P.
!.:! c) (un) est une suite géométrique de raison q > 0 et on a u4 = 4,8, u6 = 19,2 et k = 9.
m
2l
::l

Soit (un) une suite arithmétique de premier terme Uo = 3 et de raison r = 2.


0
1-
1
"8c:
Montrer que la suite (vn) définie par vn = 3" est géométrique. Préciser son premier
11

::l

~ terme et sa raison.

47
Chapitre 2 • Suites numériques

flle1 Le nombre 10 peut-il être le premier terme d'une suite arithmétique de raison
3 dont un des termes est 101 ?

flll Le nombre 3,75 peut-il être le premier terme d' une suite géométrique de
raison 2 dont un des termes est 240 ?

flt1'1 Soit (wn) la suite définie par w 0 = 1 et wn+l = wnl(wn+ 1).


1) Calculer w 1 et w 2 .
2) Soit (vn) la suite définie pour tout entier naturel n par vn = llwn.
a) Montrer que (vn) est une suite arithmétique. Préciser sa raison.
b) En déduire l'expression de vn puis celle de w n en fonction de n.
fllJ Calculer les sommes suivantes :
• s = 1 + 2 + 2 2 + 2 3 + ... + 230
• T=0,1 +0,2+0,3+ ... +9,9+ 10
flll Calculer les sommes suivantes :
• u = 2 + 4 + 6 + 8 + .. . + 998 + 1 000

où (vn) est une suite géométrique de premier terme v0 = 10 et de raison q = 0,5.


fl ..1 Déterminer l'entier n tel que 1 + 2 + 2 2 + 2 3 + ... + 2n = 2 047.
flld Calculer la somme des cent premiers nombres impairs positifs.
flf4 (Complexité d'un algorithme) On considère l'algorithme suivant:
Variables : i, j, n, S (entiers)
Début
"'O
0
c
s +--- 0
:J Saisir n
0 Pour i de l à n Faire
LI)
.--t Pour j de l à i Faire
0
N 1 s +--- 5+2
@ Fin Pour
....... Fin Pour
J::
Ol
·;:::: Afficher S
>- Fin
0..
0
u
a) Déterminer, en fonction de l'entier n 2:: 1 saisi par 1' utilisateur, le nombre d' addi-
tions effectuées pendant l'exécution de l'algorithme.
b) Quelle valeur (en fonction de n) de S sera affi chée, après exécution ?
c) En déduire la valeur affichée lorsque l' utilisateur saisit 50.

48
Exercices corrigés

fJl:J (Complexité d'un algorithme) On considère l'algorithme suivant:


Variables : i, j, k, n, S (entiers)
Début
s +--- 0
Saisir n
Pour i de l à n Faire
Pour j de l à i Faire
Pour k de l à i Faire
1 s +--- 5+3
Fin Pour
Fin Pour
Fin Pour
Afficher S
Fin

a) On admet que pour tout entier n ~ 1, on a 12 + 2 2 + 3 2 + n 2 = n(n + 1)(2n + 1) / 6.


En déduire, en fonction de l'entier n ~ 1 saisi par l'utilisateur, le nombre d'additions
effectuées pendant l' exécution de l'algorithme.
b) Quelle valeur (en fonction de n) de S sera affichée, après exécution ?
c) En déduire la valeur affichée lorsque l'utilisateur saisit 20.

fJl#l Soit (un) la suite définie par u0 =20 et pour tout entier naturel n par un+l =0 ,2un-
l) a) Quelle est la nature de cette suite ?
b) En déduire l'expression de un en fonction den.
2) Pour tout n E ru, on pose Sn= Uo+ u, + ... +un.
a) Déterminer une expression simplifiée de Sn en fonction de n.
b) En déduire l'arrondi à l0- 3 près de S 12 .
f...lf;JI] Soit (un) la suite arithmétique de premier terme u0 = 12 et de raison r = 16.
"'O
0
Pour tout entier naturel n, on pose Sn = u0 + u 1 + ... + un.
c
:J
0
li)
.,,:<:; 1) a) Donner l'expression de un en fonction den.
..--t c::
0
:l
~
b) Déterminer le plus petit entier n tel que un > 500.
N
"
@
.......
~ 2) a) Donner l'expression de Sn en fonction den.
0
J:: :;
O'l
·;:::: "'0c:: b) Déterminer, à l' aide d'un tableur, le plus petit entier n tel que Sn> 1 000.
>- c::
o. c::
.9
0
u .,,ü
:l f...lt.JI Donner le sens de variations de chacune des suites (un), (vn) et (wn) définies
2
o.

"
~
:;
0
pour tout n E ru par Un= ( .J2fn, Vn = 1- 2n et Wn = l/4n.
1-
.,,
1
0
c:
:l
f...lt.J.:a Montrer que la suite (un) définie pour tout entier n ~ 0 par u11 = n/2n n ' est pas
0
QJ monotone.

49
Chapitre 2 • Suites numériques

f..fJJ Soit (un) la suite définie par un= 1,5n + 9.


a) Déterminer le plus petit entier naturel n tel que un > 300.
b) Écrire un algorithme permettant de déterminer le plus petit entier n tel que un> 10 12 .

f..fJI Soit (un) la suite définie par un= 5 x 2- 2n+l.


a) Déterminer le plus petit entier naturel n tel que un< 10- 6 .
b) Écrire un algorithme permettant de déterminer le plus petit entier n tel que un< 10- 20 .

f..f.J1 Soit (un) la suite définie par u0 = 1 et un+l =(un+ 1)/4.


a) Calculer u 1 et u2 .
b) Émettre une conjecture sur lim u11 (à partir d'une calculatrice).
n-+too

f ..f;,(d Déterminer les limites sui vantes :

B = lim 1 or = n-H=
11
A= lim 0 3 C li m (-5 X 1, 7'1)
'
ll ~ +oo n-++= '

5x2'1
D= lim - -
n~-too 3n E = lim T 211
n ~+oo

f..IJ4 Déterminer les limites suivantes :


A = lim ( 7 - 0, 77'1)
/l ~ -too
B = lim (3 + 0, 99n)
n~ +oo

2x3n
C = lim (50 - 3 X 0, 09n) D= lim 6+ - 11-
n -+t oo n-+too 5

f..f..fJ:J On
achète 430 € un ordinateur portable. On estime, qu'une fois sorti du
magasin sa valeur un (en euro) après n mois est donnée par la formule :
"'O
0 Un= 40 + 300 X 0,95n
c
:J
0 a) Que vaut l'ordinateur à la sortie du magasin?
LI)
.-t
0 b) Que vaut l'ordinateur un an après l'achat ?
N
@ c) À long terme, à quel prix peut-on espérer revendre cet ordinateur ?
.......
J::
Ol
·;::::
d) Déterminer le mois à partir duquel l'ordinateur aura une valeur inférieure à 100 € .
>-
0..
u
0
f..fil Avec un tableur, on saisit « 1 » dans la cellule Al , puis « =2*Al+ 1 » dans la
cellule A2 avant de l'étirer vers le bas (fig. 2.9).
Pour tout entier n :2:: 1, on note un la valeur contenue dans la cellule An.
1) Donner u 1, u2 , u 3 et u4 .
2) Exprimer un+ I en fonction de un'

50
Exercices corrigés

B
1
B
=2*A1+11
1
3
3
4
7
5
15
6
31
7
63
8
127
9
255
l

Figure 2.9

3) Calculer u9 .
4) Émettre une conjecture sur l'expression de un en fonction de n .
5) Soit (v,) la suite définie pour tout entier n ~ 1 par vn =un+ 1.
a) Montrer que la suite ( vn) est géométrique.
b) En déduire l'expression de vn puis de un en fonction den.
c) À partir de quelle ligne n, le nombre contenu dans la cellule An sera-t-il supérieur
à 1010 ?

f..flII] La
population mondiale était de 7,2 milliards en 2014. Elle augmente de
1,2 % par an. On note un la population mondiale (en milliards) de l' année 2014 + n.
a) Donner une estimation de la population mondiale en 2016.
b) Quelle est la nature de la suite (un) ?
c) Exprimer un en fonction den.
"'O
0
d) Quelle devrait être la population mondiale en 2030 ?
c
0
::J ..; e) À partir de quelle année, devrions-nous dépasser les 10 milliards d ' habitants sur
'03
lJ)
...... ""'c: Terre?
::l
0 ~
N
" f..1111 Le
1er janvier 2014, on place une somme de C0 = 10 000 €sur un compte
@ ]
..._, Ci
.s:: :; bancaire au taux annuel de 3 % avec intérêts composés, ce qui signifie que des inté-
Ol "'c:0
'i:
>- c: rêts d'une valeur de 3 % du capital s'ajoutent au capital chaque 31 décembre. On
o.
u
0
c:
.9
ü
::l
note en
le capital obtenu le 1er janvier de l'année 2014 + n .
""'2P. a) Calculer C et C .
!.:! 1 2
2l
::l
0 b) Quel sera le capital obtenu le 1er janvier 2017?
1-
1

""'c:0 c) Montrer que la suite (Cn) est géométrique. Préciser son premier terme et sa raison.
::l
0
© d) En déduire l'expression de Cn en fonction de n.

51
Chapitre 2 • Suites numériques

e) À partir de quelle année le capital dépassera-t-il 15 000 € ?


f) Déterminer la somme des intérêts perçus entre le 31 décembre 2014 et le
31décembre2024 inclus (arrondir au centime d'euro près).
f..llt..fl Le responsable d'un magasin de matériel informatique a le choix entre deux
grossistes qui lui proposent leurs contrats d'achat pour s'approvisionner en tablettes
d' un certain type :
• Grossiste A : le nième mois, chaque tablette achetée sera facturée :
150 + 10 X 2-n+ 2 €
• Grossiste B : le nième mois, chaque tablette achetée sera facturée 151 €.
Chacun de ces contrats est valable deux ans.
Pour tout entier n ;:::: 1, posons un= 150 + 10 x 2-n+2 .
a) Quel est le contrat le plus avantageux le premier mois ? Le dernier mois ?
b) À partir de quel mois le grossiste A deviendra-t-il plus avantageux?
c) Calculer lim un. En déduire le montant vers lequel se stabilisera le prix du maté-
n -H·=

riel avec le grossiste A.


d) Le responsable du magasin prévoit une commande de 10 tablettes par mois
pendant deux ans. Quel est alors le grossiste le plus avantageux ?

Solutions

m Uo = 02 - 10 X 0 = 0 ; U 1 = 12 - 1Ü X 1 = -9 ; U2 = 22 - 10 X 2 = -16
œ V1=10vo +0,1=10 X 1,2 + 0,1=12,1;
V2= 10v 1 +0,1=10 X 12,1+0,1=121,1
BJ a) 2 b) =2*B2+3 c) 2 d) = C2+B3
-0
e) u 12 = 20 477 (cellule B14, fig. 2.10) et S12 = 40 916 (cellule Cl4, fig. 2.10).
0
c A B
::J
0
LI)
,...-l
1
2
n
0
.. Un
2
Sn
2
0
N
3 7 9
@ 4 2 17 26
..... 5 3 37 63
L
Ol
·c
6 4 +
77 140
>-
0.
7 5 157 297
0 8 6 317 614
u 9
10
7
8
.. 637
1277
1251
2528
+
11 9 2557 5085
12 10 5117 10202
13 11 .. 10237 20439

15
12
13
+
20477
40957
40916
81873
l Fig ure 2. 10

52
Exercices corrigés

BJ a)5000 b) =l,012*B2
c) Au bout de 5 ans, on obtient un capital d'environ 5 307,29 €(cellule B7, fig. 2.11).

A
1 Année Capital

~ -[
2 0 5000
3 1 5060
4 2 5120,72
5 3 5182,16864
6 4 5244 ,354664
7 5 5307,28692
8 6 5370,974363
9 7 5435,426055
10 8 5500,651168
11 9 5566,658982
12 10 5633,458889
13 11 5701 ,060396
14 12 5769,473121
15 13 5838,706798
16 14 5908,77128
17 15 5979 676535

19
16 16051 :432654 l
17 6124,04984L

Figure 2.11

d) Le capital dépassera 6 000 €au bout de 16 ans (environ 6 051,43 € , cellule Bl8,
fig. 2.11).

œ Les six premiers termes de la suite (un) sont: Uo = 1 ; = 1 ; U2 = + Uo = 1u, u,


+ 1 = 2 ; U3 = U2 + U l = 2 + 1 = 3 ; U4 = U 3 + U2 = 3 + 2 = 5 ; U 5 = U4 + U3 = 5 + 3 = 8
- u 0 = 0 ; u 1 = 1 ; u 2 = 8. On ne passe d'un terme de la suite (un) au suivant en
"'O
0 ajoutant le même nombre, ni même en multipliant par un même nombre, cette suite
c
0
::J ..; n'est donc ni arithmétique, ni géométrique.
'03
lJ)
...... ""'c: • (vn) est une suite arithmétique de raison 5 car vn+ = vn + 5.
::l
0 ~
1
N
" • (wn) est une suite géométrique de raison 3 car wn+I = 3ww
@ ]
..._, Ci
.s::
Ol
'i:
:;
"'c:0 fB a)un=u0 +n x3=-11+3n ;u 12 =-11+3x12=-11+36=25
>-
o.
c:

0
c:
.9 b) Soit r la raison de la suite (un) ; un= u0 + nr = 12 + nr
u ü::l
""'2P. u4 = 12 + r x 4 = 20 donc 4r = 20 - 12, d' où r = 2.
!.:!
2l
::l Un= 12 + 2n donc U20 = 12 + 2 X 20 = 52.
m
0
1-
1

""'c:0 a) Un= Uo X 5n = 0,44 X 5n ; U7 = 0,44 X 5 7 = 34 375


::l
0
© b) Ug = U3 X 0,4 5 = 16 X 0,45 = 0,16384

53
Chapitre 2 • Suites numériques

c) Soit q la raison de la suite (un). u6 = u4 x q 2, donc 19,2 = 4,8 x q2 d'où


q 2 = 19,2/4,8 = 4. Puisque q > 0, on a q = -f4 = 2.
Un= Uo X qn = Uo X 2n ; U4 = Uo X 24 = 4,8 donc Uo = 4,8/2 4 = 0,3.
Un= 0,3 X 2n donc U9 = 0,3 X 29 = 153,6.
m Un= Uo + nr = 3 + 2n
Vn = 3 3+2n = 33 X (3 2)n = 27 X 9n
Vo = 27 X 9o = 27
V n+ 1 = 27 X 9n+ = 27 X 9 x 9 = Vn X
1 11
9
(vn) est la suite géométrique de premier terme v0 = 27 et de raison q = 9.
fJll] Si (un) est une suite arithmétique de premier terme u0 = 10 et de raison r = 3,
alors un= u0 + nr = 10 + 3n. Si de plus, un des termes de la suite est 101, alors il
existe un entier n tel que un= 101 , donc tel que 3n + 10 = 101. On aurait alors 3n =
91, d'où n = 9113, ce qui est impossible, car 9113 n'est pas un entier.
Le nombre 10 ne peut pas être le premier terme d'une suite arithmétique de raison 3
dont un des termes est 101.
fJll Soit (un) la suite géométrique de premier terme u0 = 3,75 et de raison q = 2.
On a alors u11 = u0 x qn = 3,75 x 2n.
U
n
= 240 <::::> 3 ' 7 5 X 2 = 240 <::::> 2 = 240/3 ' 75 <::::> 2 = 64 <::::> n = 6
11 11 11

Cette suite (un) convient. Le nombre 3,75 peut effectivement être le premier terme
d'une suite géométrique de raison 2 dont un des termes est 240.
fJt~ 1) w 1 = wof(w0 + 1) = 11(1 + 1) = 112; w 2 = w/(w 1 + 1) = (112)/(1/2 + 1) = 113
2) a) vn+l = llwn+I = (wn + l)/wn = wn/wn + llwn = 1 + vn. La suite (vn) est donc arith-
métique de raison 1.
b) Pour tout n ~ 0, vn = v0 + n x 1 = 1/w0 + n = 1 + n, donc wn = 1/vn = l/(n + 1).
-0
0
c
:J
fJIJ S = 1 + 2 + 22 + 23 + ... + 2 30 = (1 - 231 )/(1 - 2) = 2 147 483 647 (somme de
0
LI)
la forme 1 + q + q 2 + ... + qn).
.--t
0
N T = 0,1 + 0,2 + 0,3 + ... , 9,9 + 10 = 100 x (0,1 + 10)/2 = 505 (somme de 100 termes
@ consécutifs d'une suite arithmétique de raison 0,1) .
.......
J::
Ol
·;:::: fJEI U = 2 + 4 + 6 + ... + 998 + 1 000 = 500 x (2 + 1 000)/2 = 250 500 (somme
>-
0..
0 de 500 termes consécutifs d'une suite arithmétique de raison 2).
u
V= Vl + V2+ ... + V10 = Vl X (1 - 0,5 10)/(l - 0,5) = 5 X (1 - 0,5 10)/(1 - 0,5) :::> 9,99
(somme de 10 termes consécutifs d'une suite géométrique de raison 0,5).
fJ.1 1+ 2 + 22 + 23 + ... + 2n = (1 - 211+1)/(1 - 2) = 2n+l - 1
2n+L 1 = 2 047 <=> 2n+I = 2 048 <=> n + 1 = 11. <=> n = 10. L'entier cherché est 10.
54
Exercices corrigés

fJld La somme des 100 premiers nombres impairs positifs est u0 + u 1 + u2 + ...
+ U99 (OÙ Un= 2n + 1), donc Uo + U1 + U2 + ... + U99 = 100 X (Uo + U99)/2
= 100 X (1 + 199)/2 = 10 000.
tJf4 a) Pour chaque valeur dei (de 1 à n), on compte i additions. On a donc au
total 1 + 2 + 3 + ... + n = n(n + 1)/2 additions.
b) Pour obtenir la valeur « finale » de S, on ajoute n(n + 1)/2 fois 2 à 0, donc
S= n(n + l)/2x 2= n(n + 1).
c) Lorsque l'utilisateur saisit 50, on obtient laffichage « 2 550 », qui correspond au
produit 50 x 51.
fJl:J a) Pour chaque valeur dei (de 1 à n), on compte i2 additions. On a donc au
total 12 + 22 + 32 + ... + n2 = n(n + 1)(2n + 1)/6 additions.
b) Pour obtenir la valeur« finale» de S, on ajoute n(n + 1)(2n + 1)/6 fois 3 à O. Donc
S = n(n + 1)(2n + 1)/6 x 3 = n(n + 1)(2n + 1)/2.
c) Lorsque l'utilisateur saisit 20, on obtient l'affichage« 8 610 »,qui correspond à
(20 X 21 X 41)/2.
fJ@l 1) a) La suite (un) est géométrique (de raison 0,2).
b) Un= Uo X 0,2n = 20 X 0,2n
2) a) Sn= Uo + U1 + ... +un= Uo X (1 - o,2n+l)/(l - 0,2)
= 20 x(l - 0,2n+l)/(1- 0,2) = 25 X (1 - 0,2n+l)
b) S12 = 25 x (1 - 0,2 13 )::::: 25 (à 10- 3 près)
f..f..f{I] 1) a) un= u 0 + nr = 12 + 16n
b) un> 500 {::::> 12 + 16n > 500 {::::> 16n > 488 {::::> n > 30,5. Le plus petite entier n tel
que un> 500 est 31.
2) a) Sn= (n + 1) x (u0 + un)/2 = (n + 1) x (12 + 12 + 16n)/2
= (n + 1) x (24 + 16n)/2 = (n + 1)(12 + 8n)
"'O
0 b) On a saisi« =(A2+1)*( 12+8*A2) »dans la cellule B2 avant de l'étirer vers le bas.
c
0
::J ..; Le plus petit entier n tel que Sn> 1 000 est 10.
'03
lJ)
...... ""'c:
::l A

--
0 ~
N n
" 1 .§[)
@ ] 2 1 40
..._,
.s::
Ol
'i:
>-
o.
Ci
:;
"'c:0
c:
c:
.9
3
4
5
2
3
4
-- 84
144
220
0
u ü::l
""'2P.
6
7 6
5
.. 312
420
!.:! +-
2l
8 7 544
-+-

--
::l
0
1-
9 8 684
1 10 9 840
""'c:0
0
©
::l
u
10
11
1 1012
1200
.+
r Figure 2.1 2

55
Chapitre 2 • Suites numériques

fl'..fll un = ( (.J2)4 )n = 4n et 4 > 1, donc (un) est croissante.

(vn) est décroissante (c'est une suite arithmétique de raison -2).


wn = (l/4)n et 0 < 1/4 < 1 donc (wn) est décroissante.

tl'/11 u0 = (0/2°) =Oil = 0 ; u 1 = (1/2 1) = 112 = 0,5 ; u2 = (2/2 2) = 214 = 112 = 0,5 ;
u3 = (3/23 ) = 3/8 = 0,375 . Les quatre premiers termes de la suite (un) ne sont rangés
ni par ordre croissant, ni par ordre décroissant. Cette suite n'est pas monotone.
fl'JJ a) l,Y + 9 > 300 <=> l,5n > 291. Puisque 1,5 > 1, une suite de terme général
1,5n est croissante. De plus 1,5 13 < 291et1,5 14 > 291 (1,5 13 ""' 194,6 et 1,5 14 ""'291,9).
La plus petite valeur de l'entier n telle que un> 300 est donc 14.
b)

Variable : n (entier)
Début
n-o
TantQue 1, SAn+9<= 1QA1 2 Faire
1 n - n+l
FinTantQue
Afficher n
Fin

fJ'JI a) 5 X 2- 2 n+I < 10- 6 <=> 5 X 2 X (2- 2 )n < 10- 6 ""' 0 ,25n < 10- 6/10 <=> 0,25n < 10- 7
Une suite de terme général 0,25n est décroissante (car 0 < 0,25 < 1).
0,25 11 > 10- 7 et 0,25 12 < 10-7 , la plus petite valeur de l'entier n telle un< 10- 6 est
donc 12.
b)

Variable : n (entier)
-0
Début
0
c n-o
:J TantQue 5'" 2"(-2n+ 1)>=1 QA(-20) Faire
0
LI) 1 n - n+l
.--t
0
FinTantQue
N Afficher n
@ Fin
.......
J::
Ol

-~ fl'J1 a) u 1 = (u0 + 1) / 4 = 2 / 4 = 0,5 ; u2 = (u 1 + 1) / 4 = 1,5 / 4 = 0,375.


0
u b) On saisit « 1 » puis on valide. On saisit alors « (ANS+ 1)/4 » puis on valide un
certain nombre de fois. On obtient les premiers termes de la suite (un). On peut
remarquer (valider au moins 18 fois) que l'on arrive à l'approximation 0,333333333.
On peut conjecturer que lim un= 1I3.
n -+t<><>

fl';.{ij A = 0 (car 0 < 0,3 < 1) ; B = +00 (car 1. ,07 > 1) ; C= -00 (car 1,7 > l et - 5 < 0)

56
Exercices corrigés

D = lim
11-Hoo
5x3 2 11
11

= lim 5 x -
3
11- H oo
( ( 2) n ) = 0 (car 0 < 2/3 < 1)

11
E = lim 2- 2 11
= lim (2-2 ) = lim 0, 25" = 0 (car 0 < 0,25 < 1)
11-+t oo 11 -+too 11-+t oo

f..ftJ~ lim 0, 77" = 0 car 0 < 0,77 < 1 donc A= lim (7 - 0, 77'1) = 7
11-H-oo 11~-too

11 11
lim 0,99 = 0 car 0 < 0,99 < 1 donc B = lim (3+ 0,99 ) =3
11 ~-too n~-too

11 11
lim(-3x0,09 )=0car0<0,09<1 donc C= lim(50-3x0,09 )=50
rz ~-too 11~-too

11 11 11

D= lim 6+ 2 Xn3 ) = lim 6+2x -3( ) = lim 6+2x -3 )


( ( )
n~-too ( 5 n~-too 5 11
n~-too 5

et}~')!. ( 2x ( ~ r) = 0 (car 0 < 315 < !), donc D = 6.

f..ft.J:J a)
À la sortie du magasin, l'ordinateur vaut u0 = 40 + 300 x 0,95°
= 40 + 300 = 340 €.
b) Un an après l'achat, l'ordinateur vaut u 12 = 40 + 300 x 0,95 12 ~ 202,11 €.

c) lim ( 300 X 0, 95") = 0 (car 1 < 0,95 < 1) donc lim un = 40.
n~+oo 11 ~ -too

À long terme, on peut espérer revendre cet ordinateur au prix de 40 €.


d) 40 + 300 X 0,95n < 100 <::::> 300 X 0,95n < 60 <::::> 0,95n < 60/300 <::::> 0,95n < 0,2
Une suite de terme général 0,95n est décroissante (car 0 < 0,95 < 1).
De plus 0,95 31 >0,2 et 0,95 32 < 0,2. L'ordinateur aura une valeur inférieure à 100 €à
"'O
partir du 32ème mois.
0
c
0
:J
f..ft..PJ 1) U1 = 1 ; U2= 3 ; U3 = 7 ; U4 = 15.
li)
.,,:<:;
..--t c::
0
:l
~
2) Un+l = 2un+ 1
N
"
@
.......
~ 3) U9 = 2ug + 1 = 2
0
X 255 + 1 = 511
J:: :;
O'l
·;:::: "'0c:: 4) Conjecture : pour tout entier n ~ 1, un= 2n - 1.
>- c::
o. c::

u
0 .9 5) a) Vn+I = Un+l + 1=2un + 1+1=2un + 2 = 2(un + 1) = 2vn
.,,ü
:l

2
o. La suite (vn) est donc géométrique de raison 2.
~
"
:;
1-
0 b) Pour tout entier n ~ 1, vn = v 1 x 2n- 1, or v 1 = u 1 + 1 = 1 + 1 = 2 donc vn = 2n
.,, et U n = V n - 1 = 2n - 1
0
1

c:
:l
0
QJ

57
Chapitre 2 • Suites numériques

Puisque 2 > 1, une suite de terme général 2n est croissante. De plus 2 33 < 10 10 + 1 et
234 > 10 10 + 1. Le nombre contenu dans la cellule An devient donc supérieur à 10 10 à
partir de la 34ème ligne.
f..l{I] a) 2 016 = 2 014 + 2 ; en 2016 il devrait y avoir environ 7,2 x 1,0122
~ 7,37 milliards d'habitants sur Terre.

b) La suite (un) est géométrique de raison 1,012 puisque un+ 1 =un x 1,012.
c) On en déduit que un= u0 x 1,012n = 7,2 x l,012n.
d) En 2030 la population mondiale devrait s'élever à u 16 = 7,7 x 1,01216
~ 8,7 milliards.

e) 7,2xl,012n > 10 <=> 1,012n > 1017,2. Une suite de terme général 1,012n est crois-
sante (car 1,012 > 1). De plus 1,01227 < 1017,2 et 1,01228 > 10/7,2. Nous devrions
donc dépasser les 10 milliards d'habitants à partir de l'année 2014 + 28 = 2 042.
t..flll a) cl= Co+ 0,03Co = 10 000 + 0,03 X 10 000 = 10 300 €
C2 = C1 + 0,03C1 = 10 300 + 0,03 X 10 300 = 10 609 €
b) Le capital obtenu le 1er janvier 2017 est:
C3 = C2+ 0,03C2 = 10 609 + 0,03 X 10 609 = 10 927,27 €
c) Cn+ i = Cn + 0,03Cn = (1+0,03)Cn = 1,03Cn. La suite (Cn) est donc géométrique de
raison 1,03. Son premier terme est C0 = 10 000.
d) Pour tout entier naturel n, en= Co X 1,03n = 10 000 X l,03n.
e) e n> 15 000 <=> 10 000 X 1,03n > 15 000 <=> 1,03n > 1,5. Puisque 1,03 > 1, une suite
de terme général 1,03n est croissante. De plus 1,03 13 < 1,5 et 1,03 14 > 1,5. Le premier
capital qui dépassera 15 000 €est donc C 14 . 11 sera obtenu le 1er janvier 2028.
f) La somme des intérêts perçus entre le 31 décembre 2014 et le 31 décembre 2024
inclus est la différence entre le capital acquis le 1er janvier 2025 et le capital de
départ, c'est-à-dire :
"'O
0
c
Cu - C0 = 10 000 x 1,03 11 - 10 000 ~ 3 842,34 €
:J
0
LI)
150 + 10 x 2- 1+2 = 150 + 10 x 2 = 170. Le contrat le plus avantageux
t..flJ'"I a) u1 =
.--t
0 le premier mois est celui du grossiste B car u 1 > 151.
N
@ u24 = 150 + 10 x 2-24+2 = 150 + 10 x 2-22 ~ 150 (à 10-2 près). Le contrat le plus avan-
.......
J::
Ol tageux le 24ème mois est celui du grossiste A car u24 < 151.
·;::::
>-
0..
0
b) Le grossiste A devient plus avantageux que le grossiste B lorsque un< 151.
u
U < 151<::::>150+10 X 2-n+2 < 151<::::>10 X 2-n+ 2 < 1<::::>2-n+2 < 0 1
n '
<::::> 4/211 <0, 1 <::::> 211 > 4/0, 1 = 40
Puisque 2 > 1, la suite de terme général 2n est croissante.
De plus 25 = 32 < 40 et 26 = 64 > 40. Le grossiste A devient donc plus avantageux
que le grossiste B à partir du 6ème mois.

58
Exercices corrigés

c) 10 X 2-n+2 = 10 X 22 X (2-1)n = 40 X 0,5°. Puisque 0 < 0,5 < 1 alors


lim(40x0,Y)=O, d'où 1imun =150+0=150. Le prix du matériel finira par se
n~- n~-

Stabili ser vers 150 €.


d) Coût du grossiste A :

10u1 +10u 2 + ... +10u 24


1 2 24
= 10((150 + 40 X 0,5 ) + (150 + 40 X 0,5 ) + ... + (150+ 40 X 0,5 ))

= (1500+ 400 X 0,5 1) + (1500+ 400 X 0,5 2 ) + ... + (1500+ 400 X 0,5 24 )
=24 x 1500+400x(0,5 1 +0,5 2 + ... +0,5 24 )
24
= 3600+ 400 X 0,5 X (1-0,5 )/(1-0,5)
z 36 400 € (au centime près)
Coût du grossiste B: 24 x 10 x 151=36 240 €
Pour une commande de 10 tablettes par mois pendant deux ans, le grossiste B est
plus avantageux.

"'O
0
c
:J
0
li)
..--t
0
N
@
.......
~0
J:: :;
O'l
·;:::: "'c:
0
>- c:
0. c:
0 .9
u ü
:::l

2o.
~
'l.)
:;
~
1
"8c:
:::l
0
QJ

59
"'O
0
c
::J
0
li)
r-t
0
N
@
.....,
.s::
Ol
'i:
>-
0.
0
u
CALCUL MATRICIEL

3.1 Généralités
3.2 Calcul matriciel élémentaire
3.3 Inverse d'une matrice carrée
3.4 Résolution d'un système à l'aide de matrices
>- Comprendre la notion de matrice.
>- Maîtriser le calcul matriciel élémentaire.
>- Maîtriser la notion d'inverse.
>- Savoir résoudre un système de n équations à n inconnues.

3. l GÉNÉRALITÉS
Une matrice A , à n lignes et p colonnes est un tableau de la forme :
al ,I a 1.2 a1 , p

a 2,I a 2.2 a 2,p


A=

a 11 ,l an,2 an, p

"'O
0
où ai ,J désigne le nombre de la ième ligne et/me colonne. On peut noter plus simplement
c

.,,:<:; A= (a ..).
:J
0
1, j
li)
..--t c::
0
N
:l
~
• Si n = p , on parle de matrice carrée d' ordre n.
" • Si n = 1, on parle de matrice ligne.
@
.......
~
0
J:: :; • Si p = 1, on parle de matrice colonne ou de vecteur colonne.
O'l
·;:::: "'0c::
>- c::
o. c::
.9
Exemple
0
u ü
.,,
:l On considère les matrices suivantes :
2
o.
~ 2 6 8 5
"
:;
0
1- A= 4 5 1 B=(7 8 2 4) C= -3
.,,
1
0
c:
:l
0 2 10 4
0
QJ

61
Chapitre 3 • Calcul matriciel

A est une matrice carrée d'ordre 3. Si on note A= (ai,J ) alors a2 ,, = 4, a, ,2 = 6


et a33 =10 .
Best une matrice ligne et C est une matrice colonne .

Pour que deux matrices A= (al , j.) et B = (b l,j


. .) soient égales, elles doivent être de
même taille (même nombre de lignes et même nombre de colonnes) et avoir les
mêmes éléments (c'est-à-dire, pour tous i et j, a. 1. = b,.,j.). Par exemple:
l ,

0 0 0 0 0
0 0 0 0 0
On appelle matrice nulle toute matrice dont tous les éléments sont nuls.
On appelle matrice identité d'ordre n, la matrice carrée d'ordre n, notée l n et
définie par:
1 0 0
0 1 0
l Il =
0 0 1

1 est donc la matrice telle que a.l , j. = 1 si i = 1· et a.l , j. = 0 si i 7:- 1· .


11

Exemple
0 0
0 0
(o o o), et 0 0 sont des matrices nulles.
0 0
0 0
1 0 0
1 0
/2= et 13 = 0 1 0 sont les matrices identité d'ordres 2 et 3.
0 1
0 0

"O
0
c
Une calculatrice graphique effectue le calcul matriciel. Pour définir une matrice sur
0
:J une calculatrice Casio (Graph 3 5-65), sélectionner le menu RUN-MAT puis
li) MAT(Fl), ensuite le nom de la matrice (Mat A, Mat B, ... , Mat Z), ses dimensions
..--t
0 (son nombre de lignes met son nombre de colonnes n), et enfin ses éléments en
N
@
validant chacun d'eux par EXE. Sur une calculatrice Tl (82, 83, 85), appuyer sur
....... MATRX, mettre en surbrillance EDIT, sélectionner le nom de la matrice (l :[A], 2:[B],
J::
O'l
·;::::
... , 5:[E]), valider, rentrer les dimensions de la matrice (nombre de lignes X nombre
>-
0.
de colonnes), puis saisir les éléments en validant chacun d'eux par ENTER.
0
u
3.2 CALCUL MATRICIEL ÉLÉMENTAIRE
Soient A= (al , j . ) et B = (b) l ,j
deux matrices à n lignes et p colonnes. La somme des
matrices A et B est la matrice C = (cl,j . . ) à n lignes et p colonnes telle que pour tous
. . =al., j . + bl , j . On peut alors noter C = A+B.
i etj on ait cl,j

62
3.2 • Calcul matriciel élémentaire

Exemple

3 1 0 1 -2 4
Si A= et B=
4 -5 6 8 2 -7

3+1 1-2 0+4 4 4-1


alors A+B= =
4+8 -5+2 6-7 12 -3 -1
Pour effectuer cette opération sur Casio, on tape simplement Mat A + Mat B puis
EXE dans le menu RUN (Mat s'obtient directement avec SHIFT puis la touche 2). Sur
Tl, appuyer sur MATRX puis 1 :[A], taper sur+, puis de nouveau MATRX, sélection-
ner 2:[B] et enfin valider le calcul par ENTER.

Propriété 3.1
Si A est une matrice et O une matrice nulle de même taille, alors
A+ 0 = 0 +A= A (on dit qu' une matrice nulle est élément neutre pour l'addi-
tion matricielle).
Pour toutes matrices A , B et C de même taille, on a : A + B = B + A et
A + ( B + C) = (A + B) + C , que 1' on peut alors noter A + B + C.

Exemple
0 3 3 0 3
+
-]
= -]
+ = -1
0 0
8 -5 -3 2 -3 2 8 -5 5 -3
1 2
+
1 5
= 1 5
+
1 2
= 2 7

2 -6 4 1 -3 1 3 -4
+
-1 5
+ =
3 0 8 -1 10 4
"'O
0
c
:J
0
li)
.,,:<:; Le produit d'une matrice A= (ai,j) à n lignes et p colonnes par un nombre réel k
..--t c::
:l est la matrice B = ( b i,j ) à n lignes et p colonnes telle que pour tous i et j on ait
0
" b . . = k x a . .. On note B = kA .
~
N
l,j l ,j
@
.......
~
0 La matrice (-1) A se note plus simplement -A et est appelée opposée de A .
J:: :;
O'l
·;:::: "'0c::
>- c:: Exemple
o. c::
.9
0
u ü
.,,
:l
3 1 0
2
o. Si A= et k = 2,
~ 4 -5 6
"
:;
0
1-
.,,
1
2x3 2x l 2x0 6 2 0
0
c:
:l
alors kA = 2A = =
0
QJ
2x4 2 x (- 5) 2x6 8 -10 12

63
Chapitre 3 • Calcul matriciel

Pour effectuer cette opération sur Casio, on tape 2* Mat A puis EXE dans le menu
RUN . Sur Tl, taper 2'" puis appuyer sur MATRX, sélectionner l :[A] puis valider le
calcul par ENTER.

Soient A= (ai,J ) une matrice à n lignes et p colonnes et B = (b i,J ) une matrice à


p lignes et m colonnes. Le produit des matrices A et B est la matrice C = (c .) à n
l ,j

lignes et m colonnes telle que pour tous i et 1· on ait ct,j. =a. 1 x b1, j. +ai, 2 x b2, j.
L,

+ ... + ai,p xbp,J . On peut alors noter C =A x B ou même C =AB.

Pour que l' on puisse effectuer le produit de A par B, il faut que le nombre de
colonnes de A soit égal au nombre de lignes de B.

Exemple
On pose:

!I
2 0
A= 5 3 et B = [ ~
l 2

A a 3 lignes et 2 colonnes, Ba 2 lignes et 2 colonnes. Le produit de A par Best


donc une matrice à 3 lignes (nombre de lignes de A) et 2 colonnes (nombre de
colonnes de 8).
Calculons les éléments de la matrice C =A x B:
c1•1 =a1•1 x b1, 1 +a1•2 x b2 •1 =2 x 6+0 x 2=12
(on a multiplié entre eux les nombres de la première ligne de A avec les nombres
de la première colonne de B.)
c1•2 = a 1•1 x b1•2 + a 1•2 x b2•2 = 2 x 3 + Ox 4 = 6
(on a multiplié entre eux les nombres de la première ligne de A avec les nombres
"O
0
de la deuxième colonne de B), etc.
c On obtient alors :
:J
0
li)
..--t
2 x 6+0 x 2 2 x3 +0 x 4 12 6
0
N AxB= 5 x 6 + 3 x 2 5x 3+3 x4 = 36 27
@
....... lx6 + 2 x 2 l x 3 +2x 4 10 11
J::
O'l
·;::::
10 x 3+7 x (-4) 12
l~I
>- 10 7
0.
0 Si A= S et B= aorsA
1 x B= [ =
u 1 6 6 x3+5x (-4) -2

Pour effectuer cette opération sur Casio, on tape Mat A ~' Mat B puis EXE dans le
menu RUN. Sur Tl, appuyer sur MATRX puis l :[A], taper sur X, puis de nouveau
MATRX, sélectionner 2: [B] et enfin valider le calcul par ENTER.

64
3.2 • Calcul matriciel élémentaire

(Exemple d'application 3. 1
Une société commerciale, AZER, possède deux magasins dont l'aménagement
du parc informatique est le suivant :
- Magasin 1 : 12 PC, 5 tablettes, 10 mobiles.
-Magasin 2: 17 PC, 6 tablettes, 14 mobiles.
On peut associer à cet équipement la matrice suivante :
12 5 10
17 6 14
La société AZER souhaite améliorer son équipement de la façon suivante :
- Magasin 1 : + 3 PC, + 2 tablettes, + 2 mobiles.
- Magasin 2 : + 5 PC, + 3 tablettes, + 4 mobiles.
Ce nouvel équipement peut être associé à la matrice :
3 2 2
5 3 4

1) Quelle opération matricielle faut-il effectuer pour déterminer le nouvel


aménagement du parc informatique des deux magasins ?
Effectuer cette opération.
2) Pour acheter le nouvel équipement, la société AZER a le choix entre deux
fournisseurs dont les prix sont donnés dans le tableau 3. 1
Tableau 3.1
Fournisseur 1 Fournisseur 2

"'O PC 600,00 € 550,00 €


0
c
:J
0 Tablette 180,00 € 200,00 €
li)
.,,:<:;
..--t c::
0
:l
~
Mobile 60,00 € 50,00 €
N
"
@
.......
~ 0 On peut associer ces prix à la matrice :
J:: :;
O'l
·;:::: "'0c::
>-
o.
c::
c:: 600 550
0 .9
u ü
.,,
:l 180 200
2
o.
~ 60 50
"
:;
0
1-
.,,1 Quelle opération matricielle faut-il effectuer pour déterminer le prix de
0
c:
:l
l 'aménagement du nouvel équipement selon le magasin et le fournisseur ?
0
QJ Effectuer cette opération.

65
Chapitre 3 • Calcul matriciel

SOLUTION. 1) On obtient alors la nouvelle répartition de l'équipement des maga-


sins en opérant ainsi :
12 5 10 3 2 2 15 7 12
17 6 14
+
5 3 4
= 22 9 18
2) On obtient les prix de 1' aménagement selon les magasins et les fournisseurs en
opérant comme sur la fig. 3.1.

.......
.....
~
"'"'
ï§
;:::l
0
~

~~~1
600
180
(
:~:.::21x18(:+2:60 ~)6~
50
3x550+2x200+2x50

Magasin 2 5 3 ~)\
? 7
" · : :J
~
5x600+3xl80+4x60 5x550+3x200+4x50
Figure 3.1

Il faut donc multiplier des matrices, et on obtient :


600 550
3 2 2 2280 2150
X 180 200 =
5 3 4 3780 3550
60 50

Par exemple le prix de l'investissement pour le magasin 1 est de 2 280 € avec le


"'O fournisseur 1 et de 2 150 €avec le fournisseur 2.
0
c
:J
_J
0
li)
..--t
0
Si A est une matrice carrée d'ordre n alors A x 1 =ln x A= A. On dit qu'une
11
N matrice identité est élément neutre pour la multiplication.
@
....... En général, on n'a pas A x B = B x A. De plus, même si un produit A x B de
J::
O'l
·;::::
matrices est défini, B x A ne l'est pas forcément.
>-
0.
0 Exemple
u
10 7 6 3 74 58 78 57
Si A = et B = , alors AXB= et B X A =
6 5 2 4 46 38 44 34

66
3.2 • Calcul matriciel élémentaire

Propriété 3.2
Si A , B et C sont des matrices et k un nombre réel, on a les propriétés
suivantes:
(A x B) x C =A x (B x C) que l'on peut alors noter A x B x C
A x (B + C) = A x B +A x C
A X (kB) = (kA) X B = kA X B

Si A est une matrice carrée, on note A2 , A3 , .•• , An (pour n;;:::: 2 ), les matrices
définies par : A2 =A X A, A3 =A X A X A, ... , An= An-IX A= A X An-I.

Exemple
3 -] 8 -5
Si A= alors A
2
=
1 2 5 3
8 -5 3 -1 19 -1 8
et A
3
= A2 x A = X
5 3 1 2 18 1

Pour effectuer cette opération sur Casio, on tape Mat A A2 puis EXE dans le menu
RUN. Sur Tl, appuyer sur MATRX puis 1 :[A], puis taper A2 et valider par ENTER.

Si A et B sont deux matrices de même tai11e, la différence des matrices A et B, que


l'on note A- B, est la matrice A+ (- 1) x B.
Exemple
"'O 5 0 -8 2 6 3
0 Si A = et B =
c 3 4 11 -4 4 1
:J
0
li) 5-2 0-6 - 8 - 3 3 -6 -11
..--t
0 alors A-B = =
N 3 - (- 4) 4 - 4 ll- 1 7 0 10
@
.......
J::
O'l
·;:::: 3 -] -1 2 12 - 4 -3 2 15 -6
>- Si A =
1 2
et B = alors 4A-A x B= =
0. 0 4 4 8 - 1 10 5 -2
0
u
Pour effectuer cette opération sur Casio, on tape Mat A - Mat B puis EXE dans le
menu RUN. Sur Tl, appuyer sur MATRX pui s 1 :[A], taper sur - , puis de nouveau
MATRX, sélectionner 2:[8] et enfin valid er le calcul par ENTER.

67
Chapitre 3 • Calcul matriciel

3.3 INVERSE D'UNE MATRICE CARRÉE

1 1 2 -0,5
Considérons les matrices A = et B=
2 4 -1 0,5

1 1 2 -0 5 1 0
AxB= X '
2 4 -1 0,5 0 1

2 -0,5 1 1 1 0
B x A= X
-1 0,5 2 4 0 1

On constate que A x B = B x A= / 2 • Pour la matrice A, on a trouvé une matrice B


telle que les produits A x B et B x A soient égaux à la matrice identité. On dit que la
matrice B est l'inverse de A, que l'on peut noter A- 1. La matrice A est dite inversible.

Définition 3.1
Soit A une matrice carrée d'ordre n. S'il existe une matrice carrée B d'ordre n
telle que A x B = B x A = I ,, , alors on dit que la matrice A est inversible et que
sa matrice inverse est B, notée A- 1.

Pour effectuer cette opération sur Casio, on tape Mat A A(-1) puis EXE dans le
menu RUN. Sur Tl, appuyer sur MATRX puis 1 :[A], puis taper A(-1) et valider par
ENTER.

Si A x B = B x A = l ,, , alors B est l' inverse de A mais on peut aussi dire que A est
l'inverse de B.
Quand elle existe, l 'inverse d' une matrice est unique. En effet, supposons que B et
B' soient inverses de A. Calculons le produit B x A x B' de deux façons :
"'O
0
c
:J BxA x B'=(BxA) x B'=l,, xB'=B'
0
li)
..--t
0
et B xAx B'=Bx(AxB')=B x l ,, =B
N
@ Cela prouve que B = B' et par conséquent l'unicité de l'inverse.
.......
J::
O'l
En pratique, pour vérifier qu'une matrice Best l'inverse d'une matrice A, un seul
·;::::
>- calcul suffit: A x B ou B x A.
0.
0
u Exemple

0 2 -1 - 0,2 1 - 0, 6 1 0 0
Soient A= 1 1 1 et B= 0,4 0 0,2 ;AxB= 0 1 0 -
- /3

0 1 2 - 0,2 0 0,4 0 0 1
donc Best l'inverse de A.

68
3.4 • Résolution de systèmes à l'aide de matrices

3.4 RÉSOLUTION DE SYSTÈMES À L'AIDE DE MATRICES

Exemple introductif
2x+3y = 15
Considérons le système (5) de deux équations à deux inconnues :
3x+4y = 12

. 2 3 X 15 2 3 X 2x + 3 y
51 on pose A= , X= et B = , alors AX = x =
3 4 y 12 3 4 y 3x + 4 y
Ainsi le système peut s'écrire AX =B. On a écrit le système (5) sous forme matri-
cielle.

Théorème 3.1

Si un système den équations à n inconnues peut s'écrire sous la forme matricielle


AX = B et si A est inversible, alors ce système possède une unique solution X
donnée par X= A- 1 x B.

En effet, si AX = B et si A est inversible, alors :

A- 1 xAX =A- 1 xB
(A- 1 xA)X = A- 1 x B
l x X= A- xB 1

X =A- 1 xB

Exemple
Reprenons le système (5) de l'exemple introductif. La matrice A est inversible et,

"'O
0
avec une calculatrice, on trouve A- 1 = 1-34 3
-2
.
c
:J
0
li)
..--t
0
.,,:<:;
c::
:l
Par conséquent, X= A- x B =
1
1-34 3
-2
15
112 = 1
-21
24

~
N
" Donc x = -2 4 et y = 21 . La solution du système (S) est (-24 ; 21 ).
@
.......
~ 0
J:: :; X+ 2z = 9 1 Û 2 X 9
O'l
·;:::: "'0c::
>- c:: Le système y -3z =-4 s'écrit AX=B avec: A= O 1 -3, X= y et B = -4
o. .9
c::

u
0
ü
.,,
:l
X + 2y = 5 1 2 Û Z 5
2
o.
~ 1,5 -0,5 7
"
:;
1-
0 À la calculatrice, A-'= -0,75 -0,5 0,75 et X = A-'xB = -1
.,,
0
1
--0, 25 - 0, 5 0, 25 1
c:
:l
0
QJ Donc x = 7, y = - 1 et z= l. La solution du système est (7; - 1 ; 1).

69
Chapitre 3 • Calcul matriciel

Exercices corrigés

Dl On considère les matrices A= (ai,j) et B = (b1,j), carrées d 'ordre 3, définies


par al., j . = i et bl., j . = i - j . Écrire ces matrices sous la forme de tableaux de nombres.

l!J Soit A= (a l., j . ) la matrice à 3 lignes et 4 colonnes telle que ,al,j . . = Max(i, j) et
B = (b.l , j ) la matrice à 2 lignes et 5 colonnes telle que bl , j . = i x ;· . Ecrire les matrices
A et B sous la forme de tableaux de nombres.

-1 2 3 1
Ill On considère les matrices A=
1 0
et B =
5 10
a) Calculer A + B et A - B .
b) Calculer (A+ B) + (A - B) . Expliquer le résultat.

œ On considère la matrice A =
0 3
4
'
-2
1

a) Déterminer A+ A, 3A et -IOA.
b) Est-il possible de trouver un nombre réel x tel que xA = I 2 ? (Justifier)

10 20
le Soit A la matrice définie par A =
100
. Déterminer le plus petit entier
8
naturel non nul n tel que tous les éléments de lin x A soient strictement inférieurs à
0,01.

m Soient A =
7 0
4 -2 -2
-1
et B =
-9
0
1
-6 -5
3

-0
0
c
a) Calculer 2A- B et 3A-4B.
:J
0
LI)
b) Déterminer les deux matrices C et D telles que C + D = A et C - D = B.
IB Un groupe pharmaceutique produit trois types de médicaments Ml, M2 et M3
..--t
0
N
@ dans chacun de ses deux laboratoires LI et L2. On associe la matrice A suivante à la
.......
..c production mensuelle (en milliers) de ces médicaments dans chaque laboratoire .
O'l
·;::::
>-
0..
0 54 27 31
u A=
12 9 10

Par exemple, le groupe produit chaque mois 12 000 médicaments du type Ml dans
le laboratoire L2.
a) Combien le laboratoire LI produit-il de médicaments du type M3 par mois ?

70
Exercices corrigés

b) On peut obtenir, à partir d'une matrice colonne B, le nombre total de médicaments


produits par chaque laboratoire en effectuant le calcul A x B. De quelle matrice
colonne s'agit-il?

0 1
m On considère les matrices A = 2 3 et B =
l
3 4
2

4 5

a) Calculer A x B puis A x ( 2B).


b) Vérifier que A x (2B) = 2(A x B) .

-1 0
m On considère les matrices A = 5 1 ,B=
5 -5
1 4
et C=
0
l
3
1
3 -6
a) Calculer A x B et A x C.
b) Peut-on calculer B x A et C x A ? (Justifier)
c) Calculer B + C puis A x (B + C).

d) Calculer A x ( B + C)- A x B - A x C . Expliquer le résultat.

1 3
1 5 4
Qin On considère les matrices A= , B = et C = 5 -2
-3 2 l
0 1
Faire tous les produits possibles de deux matrices.

7 -1 -1 2 1 -1
1111 On considère les matrices A= 5 ' B= -6 0 9 et C= 2 l
-0
0 -2 4 3 -4 0 4
c
0
:J
Faire tous les produits possibles de deux matrices.
li)
.,,:<:;
..--t c::
:l
0 ~
5 2 -1 2 2 0
N
" Qt11 on considère les matrices A= B= et C=
@
.......
~ 0
3 1 ' 3 -5 0 -1
J:: :;
O'l
·;:::: "'0c:: Calculer A X B, B X A et A X C X B.
>- c::
o. .9
c::

u
0 -2 1 1
.,,ü
:l
5 2
2
o. QIJ On considère les matrices A= et B= 1 -2 1
~
1 2
"
:; 1 1 -2
0
1-
.,, a) Calculer A 2 puis A 3 •
0
1

c:
:l
0
QJ b) Calculer B 2 puis B 3 •

71
Chapitre 3 • Calcul matriciel

0 1 5
Qll Soit B = 0 0 6
0 0 0

a) Calculer B 2 et B 3 •
b) Montrer que B 4 = 0 (matrice nulle) puis que, pour tout n ~ 3 , Bn = 0 .
llJ1 Une usine fabrique trois types de matériel électronique Ml , M2 et M3 en
assemblant des composants Cl, C2 et C3 suivant la répartition du tableau 3.1.

Tableau 3.1
Ml M2 M3

Nombre de composants Cl 2 7 3

Nombre de composants C2 0 2 6

Nombre de composants C3 3 5 2

Les masses et prix unitaires des composants sont donnés par le tableau 3.2.

Tableau 3.2
Cl C2 C3

Masse unitaire (en g) 2 l 3

Prix unitaire (en €) l5 6 4

2 7 3
2 1 3
On note A = 0 2 6 et B=
15 6 4
"'O
0 3 5 2
c
:J
0
LI)
a) Calculer B x A et interpréter ce que représentent les lignes de la matrice obtenue.
..--t
0
N b) Le directeur de l'usine souhaite fabriquer en une journée 50 matériels Ml,
@ 70 matériels M2 et 60 matériels M3.
.......
..c
O'l
·c
>-
50
0..
8 Onpose D= 70
60

Quelle opération matricielle permet d'obtenir le nombre de composants de chaque


sorte permettant de réaliser les assemblages ? Effectuer l' opération puis donner la
décomposition.

72
Exercices corrigés

2 5 3 -5
lllij On considère les matrices A= et B=
1 3 -1 2
Calculer A x B et B x A. Que peut-on dire des matrices A et B?

2 0 1 -0 4 0,2 0,2
'
llf~ On considère les matrices A= 0 -1 2 et A'= 3,6 -1,8 -0,8
9 1 0 1,8 -0,4 -0,4
Montrer que A' est l'inverse de A .

0 3 -1 1
1 -1
lll:JOn considère les matrices A= -3 4 -3 et B= 3 -1 3
-1 1 0 1 -1 3
Calculer A x B . Quelle est la matrice inverse de A ?

3 1 -2 1 4 1
QpJ On considère les matrices A= 0 -1 -1 et B= 2 -10 -1
2 1 2 -2 1 1
Calculer A x B. Quelle est la matrice inverse de A ?

7 5 -1 -2,5
I f}I] On considère les matrices A= et B =
-4 - 2 2 3,5

Calculer A x B et B x A . En déduire la matrice A- 1 •

5 1 4 a -5 -7
If.JI On considère les matrices A= 2 1 -3 et B = 7 17 23
-3 - 1 1 1 2 3
"'O
0
c
a) Dans le produit A x B , calculer, en fonction de a, les coefficients manquants :
:J
0
li)
.,,:<:; ................. 0 0
..--t c::
0
N
:l
~ Ax B = ................. 1 0
"
@
.......
~ 0
.................. 0 1
J:: :;
O'l
·;:::: "'0c:: b) Déterminer alors la valeur de a pour que B soit la matrice inverse de A.
>- c::
o. c::

u
0 .9 2 1 3 -1 2 1
.,,ü
:l
1
2
o.
~
I fJ;;I On considère les matrices A = 2 0 - 1 et B= - 11 a -8
3
"
:; 1 1 5 -2 1 2
0
1-
.,, a) Calculer le produit A x B .
0
1

c:
:l
0
QJ b) Déterminer alors la valeur de a pour que B soit la matrice inverse de A.

73
Chapitre 3 • Calcul matriciel

a b
UJJ Soit A = . On suppose que ad - be -:t O.
e d

1 d -b
a) Montrer que la matrice A' = est la matrice inverse de A .
ad -be -e a

7 3
b) Application : déterminer la matrice inverse de A=
12 8

3 1
ltJI On donne A=
4 1

a) Calculer A 2 - 4A.
b) Montrer que A 2 - 4A =A x (A - 4/2 ) et en déduire que A est inversible.
Quelle est sa matrice inverse ?

-2 -3
ltJ1Soit A=
s 7
a) Calculer A2 -SA.

b) Montrer que A est inversible et déterminer A- 1 •

13 -S
lt;:(dSoit A=
-6 2

a) Calculer A 2 - ISA

-0 b) Montrer que A est inversible et déterminer A- 1 •


0
c
:J
0 2x - 3y =S
LI)
ltJ~ a) Écrire le système sous la forme matricielle AX =B .
..--t
0
N
-3x+ Sy = -2
@
....... Déterminer A- 1 à la calculatrice et résoudre le système .
..c
O'l
·;::::
>-
0.. / dre le systeme
b) Resou , 7 X + 16 y = 31 a, }' ai.de d e matnces.
.
0
u Sx+I2 y =2S

Sx-3 z =4
c) Résoudre le système 3x + 4 y + z = 2 à l'aide de matrices.
x - y - z=2

74
Exercices corrigés

-4x+ y+O,lz=-1
U..tJ:JOn considère le système S d'inconnues x, y et z : 1 lx -3y- 0, 2z = 1
- 6x+2y+O,lz=4

a) Écrire le système sous la forme AX = B en précisant quelles sont les matrices A,


X et B.

1 1 1
1
b) Avec une calculatrice, on a obtenu A- = 1 2 3 . Résoudre le système.
40 20 10

Uil Résoudre chaque système à l'aide des matrices :


x+ y+ z = 23 Sx+ y+ 2 z = 25 6x+ y+3z =5
a) 2x+3y-z=27 b) 2x - y - z = - 7 c) 2x+ z = 0
-x+y+4z=27 x+3y+ z = 27 -x+3y-z=16

x+y+z=a
1111] a, b et c étant trois réels, on considère le système : 2x + y+ 3z = b
x-y+z=c

1) a) Écrire le système sous forme matricielle.


b) Exprimer x, y et zen fonction de a, b etc.

2) Utiliser les résultats de la question a) pour résoudre les systèmes suivants :

x+y+z=12 x+y+z=7 3x + 3 y+ 3z = 27
(S1) 2x+y+3z=25 (S2) 2x +y+ 3z = 18 (S3) 6x + 3y + 9z =6
x-y+ z =lO x-y+z=9 3x - 3y +3 z =15
"'O
0
c
0
:J
llJI Au magasin de fournitures de bureau:
li)
.,,:<:; - 4 stylos, 2 gommes et 3 pochettes coûtent 10,70 euros .
..--t c::
:l
0
" - 1 stylo, 1 gomme et 5 pochettes coûtent 7 ,80 euros.
~
N
@
.......
~ - 2 stylos, 1 gomme et 4 pochettes coûtent 8, 10 euros.
0
J:: :;
O'l
·;:::: "'0c:: a) Traduire l'énoncé par un système puis l'écrire à l'aide de matrices.
>- c::
o. c::

u
0 .9 b) Combien coûte un stylo ? une gomme ? une pochette ?
.,,ü
:l

2
o.
~
llt~ Pour une fabrication, une entreprise utilise x pièces de type 1, y pièces de type
"
:; 2 et z pièces de type 3. La masse et le coût de chaque type de pièce sont donnés dans
0
1-
.,,01 le tableau 3.3.
c:
:l
0
QJ

75
Chapitre 3 • Calcul matriciel

Tableau 3.3

Pièce de type 1 Pièce de type 2 Pièce de type 3

Masse en grammes 2,5 2 l

Coût en euros l l, 5 0,5

L'entreprise effectue une étude en vue d'optimiser cette fabrication. Pour cela, elle
doit considérer le nombre total N de pièces employées, leur masse totale M en
grammes et leur coût total C en euros.
1) Calculer N, Met C lorsque x = 20, y = 30 et z = 35
2) Exprimer N, Met C en fonction de x, y et z.

x+y+z=N
3) On se propose de résoudre le système 2,5x + 2y + z =M
x+ l ,5y + 0,5 z = C
dont les inconnues sont x, y et z.

1 1 1
a) Soit A= 2,5 2 1 . Avec la calculatrice, déterminer A- 1 •
1 1,5 0,5
b) En déduire la solution du système en fonction de N, Met C.
4) L'étude a montré que la fabrication est optimale lorsque sont employées 140
pièces, pour une masse totale de 275 g et un coût total de 135 euros. Dans ces condi-
tions, calculer le nombre de pièces de chaque type qui seront utilisées pour cette
fabrication.
llJ:J Le responsable d'un club informatique souhaite acheter des souris, des clés
"'O
0
c
USB et des tapis de souris, les matériels de chaque type étant identiques.
:J
0 - S'il achète 3 souris, 5 clés USB et 3 tapis, il paiera 132,10 €.
LI)
.--t
0 - S'il achète 6 souris, 4 clés USB et 5 tapis, il paiera 172,90 € .
N
@ - Enfin, il paiera 118,90 € pour 4 souris, 6 clés USB et 1 tapis.
.......
J::
Ol
a) Traduire les données par un système de trois équations dont les inconnues sont les
·;::::
>- prix en euros des trois types de matériels.
0..
0
u b) Résoudre ce système à 1' aide des matrices.
c) Combien coûte chaque type de matériel ?
11§1 On a demandé aux 215 étudiants de BTS SIO d'une académie de dire quel est
leur langage de programmation préféré parmi Python, Xcas, Java et C. Chaque
étudiant devait fournir une seule réponse.

76
Exercices corrigés

On sait que 163 étudiants ont déclaré préférer Python ou Xcas, 65 ont déclaré préfé-
rer Xcas ou C, 158 ont déclaré préférer Python ou C.
a) Traduire les données par un système de quatre équations à quatre inconnues.
b) Résoudre ce système par les matrices.
c) Quelle est la répartition des préférences pour les quatre langages ?
1§1 Dans un repère du plan, on considère les points A(-3;-23), B(2;12) et C(4;-2)
et on cherche s'il existe une parabole passant par ces trois points. Pour cela, on prend
y = ax 2 + bx + c comme équation générale d'une parabole.
a) Montrer que A est sur la parabole si et seulement si 9a - 3b + c = -23.
b) Traduire le fait que les points B et C appartiennent à la parabole.
c) Résoudre le système de trois équations dont les inconnues sont a, b etc.
d) Quelle est 1' équation de la parabole ?
llJd Dans un repère du plan, on considère les points A(-2;-7), B(-1;3,5), C(2;17)
et D(3;25,5). En s'inspirant de l'exercice 3.35, trouver les nombres réels a, b, cet d tels
que les points A, B, Cet D appartiennent à la courbe d' équation y= ax3 + bx2 + ex + d.
2 -1 1
llfi On considère les matrices A = -2 3 - 2 et B = / 3 +A.
-4 4 -3
1) Calculer A 2 . En déduire que B x A = 2A .
2) On admet que, pour tout entier n ~ 1, il existe un unique réel a 11 tel que
11
8 = / 3 +a A.
11

a) Que vaut a1 ?
b) Exprimer 8 11+1 en fonction de / 3 , A et a 11 +,, puis en fonction de / 3 , A et a 11 •

"'O
c) En déduire que pour tout entier n ~ l, a,,+, = 1+2a 11

0
c
:J
d) Déterminer a 2 , a 3 et a4 •
0
li)
.,,:<:; 3) On peut démontrer (voir exercice 2.29 du chapitre sur les suites numériques), que
..--t c::
:l
0
N
~ pour tout entier n ~ 1 , on a a = 2" - 1 . En déduire 1' expression de 8 en fonction
11
11

"
@
.......
~ den.
0
J:: :;
O'l
·;:::: "'0c::
>- c::

u
o.
0
c::
.9
ü
Solutions
.,,
:l

2
o.
~
"
:; 1 1 1 0 -1 -2
0
1-
.,,
0
1

c:
:l
m A= 2 2 2 B= 1 0 -1
0
QJ
3 3 3 2 1 0

77
Chapitre 3 • Calcul matriciel

1 2 3 4
1 2 3 4 5
l!J A= 2 2 3 4 ;B=
2 4 6 8 10
3 3 3 4

2 3 -4 1
IBJ a) A+B=
6 10
;A-B=
-4 -10

-2 4
b) (A+B)+(A-B)=
2 0

On trouve 2A . C'était prévisible car (A + B) + (A - B) = A + B + A - B = A + A = 2A .

~ 0,6 2 0,9 3 -3 -10


s.aii a) A+ A = ; 3A= · -lOA=
, -40 20
8 -4 12 -6

0,3x = 1
0,3x X 1 0 x=O
b)xA=/2 <=>
4x -2x
= 0 1
<=>
4x=O
-2x=l

Ce système n'a pas de solution, il est donc impossible de trouver x tel que xA = 12 •

10 20

llJ _!_ A=
n
n
8 100
n . Le plus grand élément de la matrice est 100/n. Tous les

n n
éléments de la matrice seront donc strictement inférieurs à 0,01 dès que 100/n < 0,01.

100 100
- < 0,01<=>100 < O,Oln <=> - - < n <=> 10000 < n
-0
0
n 0,01
c
:J
0 Le plus petit entier cherché est donc 10001.
LI)
..--t
0 23 - 1 - 5 57 -4 - 15
N
@ ID a) 2A-B=
8 2 1
; 3A-4B=
12 18 14
.......
..c
O'l
·;::::
>- C+D=A
0..
0
b) On a les deux équations :
u C-D=B

Par addition, ( C + D) + (C - D) = A + B , donc 2C = A+ B ,


1 - 1 0,5 1
d'où C =-(A + B) =
2 2 - 4 - 3,5

78
Exercices corrigés

Par soustraction, ( C + D )-( C - D) = A - B donc 2D = A - B ,


1 8 -0 5 -2
d'où D= - (A-B)= ' .
2 2 2 1,5

IB a) Le laboratoire Ll produit 31 000 médicaments de type M3 par mois.


1
b)B= 1
1

3 4 6 8
2 4
m a) AxB= 11 16 ; 2B= ; Ax(2B)= 22 32
6 8
19 28 38 56

b) La vérification est facile.

-5 5 0 -3
lm a) AxB= 26 -21 A xC = 1 16
9 -39 -6 3
b) On ne peut pas calculer B x A et C x A car le nombre de colonnes de B et de C
n'est pas égal au nombre de lignes de A.

-5 2
5 -2
c) B+C= A x ( B + C) = 27 -5
2 5
3 -36

d) Ax(B+C)-AxB-AxC=O (matricenulle)
"'O
0
c Le résultat était prévisible puisque A x ( B + C) = A x B +A x C .
:J
0
li)
.,,:<:;
..--t
0
c::
:l
~
Ille] Les
produits possibles sont A 2 , A x B , C x A et C x B. En effet, dans
N
" chaque cas, le nombre de colonnes de la première matrice est égal au nombre de
@
.......
~ lignes de la seconde.
0
J:: :;
O'l
·;:::: "'0c::
>- c::
o. .9
c::
-14 15 9
u
0
ü
.,,
:l
Az= A x B=
2
o.
-9 - 11 -10
~
"
:; -8 11 7
0
1-
.,,
0
1
CxA = 11 21 C x B = 18
c:
:l
0
QJ
-3 2 1

79
Chapitre 3 • Calcul matriciel

15 7 -19 -16 -3 8
2
1111 B = 42 33 -48 BxA= -60 BxC= -6 42
- 38 - 16 51 51 10 - 17

-16 30
llt;I A x B = B x A= / 2 AxCxB=
-9 17

27 14 149 82
Ill) a) A2 = A3 =
7 6 41 26

6 -3 -3 -18 9 9
b) B 2 = -3 6 -3 B3 = 9 -18 9
-3 -3 6 9 9 -18

0 0 6 0 0 0
1111 a) 2
B = 0 0 0 B3= 0 0 0 =0
0 0 0 0 0 0

b) B 4 = B 3 X B = 0 X B = 0 et pour tout n ~ 3 , B 11 = Bn- 3 x B 3 = Bn- 3 x 0 = 0 .

13 31 18
ll ..1 a) Bx A=
42 137 89
13, 31 et 18 sont les masses unitaires respectives (en grammes) des matériels Ml,
M2etM3.
42, 137 et 89 sont les prix unitaires respectifs (en euros) des matériels Ml, M2
etM3.
"'O
0
c
770
:J
0 b) On doit calculer le produit A x D = 500
LI)
..--t
0 620
N
@ 770 composants Cl, 500 composants C2 et 620 composants C3 seront nécessaires.
.......
..c
O'l
·;:::: llld Ax B = B x A= / 2 donc A et B sont inverses 1 'une de l'autre.
>-
Q.
0
u llf~ On calcule A x A' ou A 'x A. Dans les deux cas, le résultat est / 3 •

2 0 0
1
llt:J Ax B= 0 2 0 = 2/3 donc A x - B = / 3 .
2
0 0 2

80
Exercices corrigés

l,S -0,S O,S


L'inverse de A est donc _.!._ B = l,S -0,S l,S
2
O,S - 0 ,S l,S

9 0 0
QpJ AxB= 0 9 0 =9/3 donc Ax _.!_B =/3.
9
0 0 9

1 4 1
- - -
9 9 9
2 10 1
L'inverse de A est donc _.!._ B = - - - - -
9 9 9 9
2 1 1
- - - -
9 9 9

1
- -
s
3 0 1 1 3 6
lf;JI] Ax B=BxA= = 3/ donc A- = - B =
3
0 3 2 2 7
-
3 6

Sa + 7 + 4 = Sa+ 11
lfjl a) Les coefficients manquants sont: 2a + 7 -3 = 2a + 4
- 3a - 7 + 1 = -3a - 6

Sa +11 =1
b) Best l'inverse de A si et seulement si 2a + 4 = 0 .
"'O -3a-6 = 0
0
c
:J
0
li)
.,,:<:; Ces trois équations ont la même solution : a= - 2 .
..--t c::
:l
0 ~
N
" Donc: B=A- ' Ç::>a= -2
@
.......
~
0
J:: :;
O'l
·;:::: "'0c:: 7+a
>- c:: 1 0
o. c::
.9
3 7+a 0 3
0
u ü
.,, UJ'I a) A x B = _.!._ 0
2
:l

o. 3
3 0 = 0 1 0
~
" 0 7+a 3 7+a
:;
0 0 1
1-
.,,
1 3
0
c:

b) B sera la matrice inverse de A si et seulement si (7 +a) /3 = O c'est-à-dire a = - 7 .


:l
0
QJ

81
Chapitre 3 • Calcul matriciel

a b 1 d -b 1 ad-be -ab+ab
ftJJ a) AxA'=
c d
X
ad-be -c a
=
ad-be cd-cd -cb+ad
1 ad - be 0
= ad-be ad-be
0

Donc A x A'= 12 , ce qui prouve que A' est l'inverse de A.

1 8 -3 0,4 -0,lS
b) A-' = X =
7x8-3x12 -12 7 -0,6 0,3S

Par conséquent, A x (A- 412 ) = 12 • Le produit de A par A- 412 est égal à la matrice
3 I I 0 -I I
12 , donc A est inversible et A-' =A - 412 = - 4x =
4 I 0 I 4 -3

ltJ1 a) ~ - SA= 12

b)A 2 - SA= - 12 <=>-A 2 +SA=l2 <::::>Ax(- A+S12 )=12 donc A est inversible et
on a:
-2 -3 I 0 7 3
A-' =-A+Sl2 =- +S =
s 7 0 1 -S -2

lt}d a) A 2 -ISA= 412


"'O
0

ISA= 412 <=> -I( A 2 ISA ) = 12 <=>A x A-ISl2


c
0
:J
b) A 2 - - = 12 donc A est inversible
LI)
.--t
4 4
0
N
et on a:
@
....... 2 -0,S -1, 2S
J::
Ol
A-' = _!_(A-ISl2 ) = _!_ - -S =
·;:::: 4 4 - 6 - I3 - 1,S - 3,2S
>-
0..
0
u
2 -3 X S
l!J4 a) Le système s' écrit AX = B avec A= , X= et B =
-3 s y -2

s 3
À la calculatrice, on obtient A-' =
3 2

82
Exercices corrigés

19
La solution est X= A-' x B = , d 'où x = 19 ety = 11.
11
b)x=-7;y=5
c) x = 3 ; y = -8/3; z= 11/3

-4 1 0.1 X -1
ltl:J a) A= 11 -3 -0.2 X= y B= 1
-6 2 0.1 z 4
4
b) X =A-' xB= 13
20

If.Pl a) X = 10, y = 5, Z =8 b) X = 2, y = 7, Z = 4 C) X = 1, y = 5, Z = -2

1 1 1 X a
Ille] a) Le système s'écrit AX = B avec A= 2 1 3 , X= y et B = b
1 -1 1 z c

b) X =A-' B d'où: x=2a-b+c; y=0,5a-0,5c; z=-1,5a+b - 0,5c


2) Pour (S1), a = 12, b = 25 etc = 10 donc x = 9, y = 1 et z = 2.
Pour (S2 ), a = 7, b = 18 etc = 9 donc x = 5, y = -1 et z = 3.
En divisant tous les coefficients de (S3) par 3, on obtient un système similaire aux
deux autres: a = 9, b= 2 etc = 5 d'où x = 21, y = 2 et z = -14.
llJI a) On appelle x, y et z les prix respectifs, en euros, d' un stylo, d' une gomme
et d' une pochette.
"'O
0
c
:J 4x+2y+3z= l0,70
0
.,,:<:;
li)
..--t c::
:l
L'énoncé se traduit par le système : x+ y +5 z = 7,80
0 ~
N
" 2x+ y +4z = 8,10
@
.......
~ 0
:;
J::
O'l "'0c:: b) Un stylo coûte 1,40 euro, une gomme 0,90 euro et une pochette 1,10 euro.
·;::::
>- c::
o. c::

u
0 .9 l@"I 1) Pour x = 20 pièces de type 1, y = 30 pièces de type 2 et z = 35 pièces de
.,,ü
:l

2
o.
type 3:
~
"
:; N = 20 + 30 + 35 = 85 (pièces)
0
1-
.,,
0
1
M = 20 x 2,5 + 30 x 2 + 35 x 1=145 (grammes)
c:
:l
0
QJ C = 20 x 1 + 30 x 1,5 + 35 x 0,5 = 82,50 (euros)

83
Chapitre 3 • Calcul matriciel

2) N = x +y + z M = x x 2,5 + y x 2 + z x 1 = 2,5x + 2y + z
C=xx 1+ yx 1,5 + zx 0,5 = x + 1,5y + 0,5z

-0,5 1 -1
- 1
3) a) = -0,25 -0,5 1,5
1,75 -0 5 -0 5
' '
=-0,5 +
- 1 X =-0,25 -0,5 + 1,5
b) = donc
=1,75 -0,5 -0,5

4) La fabrication est optimale lorsque N = 140, M = 275 et C = 135.


On a alors x = 70, y = 30 et z = 40 c'est-à-dire 70 pièces de type 1, 30 de type 2 et
40 de type 3.

mJ a) On note , et le prix en euros d'une souris, d'une clé USB et d'un tapis.

3 + 5 + 3 = 132,10
x, y, z sont solutions du système : 6 + 4 + 5 = 172, 90
4 + 6 + = 118, 90
132,10 132,10
b) Le système s'écrit = avec = 172,90 = et = 172,90
118,90 118,90
6,90
= -i x = 12,50 donc = 6,90, = 12,50 et = 16,30.
16,30

"'O
c) Une souris coûte 6,90 €,une clé USB 12,50 €et un tapis 16,30 €.
0
c
0
:J
INI a) On note et le nombre d'étudiants préférant respectivement
LI)
..--t
0
Python, Xcas, Java et C .
N
@
.......
+ = 163
..c
O'l
·;:::: D'après l'énoncé, on a + = 65 et p+x+j+c=215
>-
Q.
0 + =158
u
+ =163
+ =65
d'où le système
+ =158
+ + + = 215

84
Exercices corrigés

b) p = 128, X= 35, j = 22 et C = 30.


c) Les préférences sont donc : 128 pour Python, 35 pour Xcas, 22 pour Java et 30
pour C.

11191 a) Dans l'équation de la parabole, on remplace x et y par les coordonnées de A :


2
-23 = a X ( - 3) + b X (- 3) + c <=> 9a - 3b + c = -23

b) L'appartenance de B à la parabole se traduit par 4a + 2b + c = 12 . Celle de C par


l6a+4b+c=-2.

c) a=-2; b=5; c=lO

d) L' équation de la parabole est y = -2x 2 + Sx + 10 .

llI#J a= 0,5; b =-l ; c = 4; d = 9. L'équation de la courbe est y= O,S.x3 - x 2


+ 4x + 9.

llfi 1) On trouve que A2 =A, donc :

B x A=(13 +A) xA= l 3 xA+ A 2 =A+A=2A

2) a) a,= 1
b) D ' une part, B 11+' = 13 +a,,+,A.
D'autre part, B n+i = B n X B = (13 + a A) X (13 +A)
11

=~X~+~ x A+~A x ~+~AxA


2
=13 +A+anA+a11 A
=13 +A+a A+a, A
11 1

=13 +(l+2a11 )A
"'O
0
c
:J
0
li)
..--t
0
N
@
.......
J::
1+2(2n-1) -(2/l -1)
O'l
·;::::
>-
0.
- 2(2 -1)
11
1+3( 2n -1) -2(2n -1)
0
u -4(21! - 1) 4( 2 - 1)
11
1- 3( 2n - 1)

85
"'O
0
c
::J
0
li)
r-t
0
N
@
.....,
.s::
Ol
'i:
>-
0.
0
u
LOGIQUE

1
4.1 Calcul des propositions
4.2 Calcul des prédicats
4.3 Calcul booléen

> Introduction d'éléments de logique en lien avec l'informatique


> Se familiariser avec le calcul portant sur des énoncés

4.1 CALCUL DES PROPOSITIONS

4.1.1 Généralités
Une proposition est un énoncé ayant un sens et dont on peut dire avec certitude,
qu'il est vrai (on dit alors que VRAI est sa valeur de vérité) ou qu'il est faux (on dit
alors que FAUX est sa valeur de vérité).

"'O
Exemples
0
c - Les énoncés « Grand » et « 8 » ne sont pas des propositions car il n'ont aucun
:J
0 sens.
li)
.,,:<:;
..--t c::
:l - L'énoncé «Je vais gagner au loto» n'est pas une proposition car on ne peut pas
0
N
~

" dire avec certitude qu'il est vrai ou faux .


@
.......
~ 0
- Les énoncés « 4 = 9 » et « 7 + 9 > 11 » sont des propositions. Leurs valeurs de
J:: :; vérité sont respectivement FAUX et VRAI.
O'l
·;:::: "'0c:: - Les énoncés, écrits en langage Python, « 6* 5==30 » et « 2 ! =2 » sont aussi des
>- c::
o. .9
c::
propositions, ils signifient respectivement « 6 x 5 est bien égal à 30 » et « 2 est
0
u ü
.,,
:l différent de 2 ». La valeur de vérité du premier est VRAI, celle du second est FAUX.
2
o.
~
"
:;
0
Pour voir si un énoncé est une proposition, il est important de savoir dans quel
.,, langage il est écrit. Par exemple l'énoncé « 1==2 » a bien un sens en langage Python,
1-
1
0
c:
:l
tandis qu'il ne veut rien dire en français. De même, en Python, une écriture du type
0
QJ « A=5 » ne peut pas être une proposition car elle signifie « on affecte à A la valeur 5 ».

87
Chapitre 4 • Logique

Les propositions sont très utilisées en programmation. Considérons le programme


Python suivant :
Wiile N<IO:
N=N+l
pr i nt (' bonj our' )

Il se traduit par: Tant que la valeur de vérité de la proposition « N<lO » est VRAI,
augmenter N de 1 et afficher« bonjour ».

4.1.2 Connecteurs logiques


a) La négation d'une proposition
La négation d ' une proposition P que l'on note non(P) ~st définie par la table de
vérité du tableau 4.1 (on peut aussi noter ---, P ou même P ).
Tableau 4.1
p non(P)
FAUX VRAI
VRAI FAUX

~ La négation d'une proposition change sa valeur de vérité.

Exemples
Considérons la proposition P : « 4 < 3 » . Sa négation est non(P) : « 4 ~ 3 » . La
valeur de vérité de Pest FAUX donc celle de non(P) est VRAI.
En langage Python, « non » se note « not » . Considérons par exemple la série
d'instructions suivante :
>>> A=( 2==2) #l a va ri a ble A pr e nd l a va leur (2==2 )
>>> A # a pp e l de l a va l e ur de A
Tru e
"'O
0 >>>not ( A) # app e l de l a va l e ur de not ( A)
c
:J Fal s e
0
li)
..--t La négation de la négation d ' une proposition, c'est la proposition elle-même. Par
0
N exemple, si P : « 2 = 3 », alors sa négation est non(P) : « 2 -=t 3 » et la négation de
@
....... non(P) est non(non(P)): « 2 = 3 ».Ceci est toujours vrai et se traduit par le fait,
J::
O'l
·;::::
que pour toute proposition P, les propositions Pet non(non(P)) ont la même valeur
>-
0. de vérité (voir tableau 4.2).
0
u
Tableau 4.2

p non(P) non(non(P))

FAUX VRAI FAUX

VRAI FAU X VRAI

88
4.1 • Calcul des propositions

b) Équivalence de deux propositions


Si P et Q sont deux propositions, la proposition notée P <::::> Q (lire « P équivaut à
Q ») est définie par la table de vérité présentée dans le tableau 4.3.

Tableau 4.3

p Q p <=> Q

FAUX FAUX VRAI

FAUX VRAI FAUX

VRAI FAUX FAUX

VRAI VRAI VRAI

~ Deux propositions ne sont équivalentes que si elles ont la même valeur de vérité.

Exemples
- La proposition « 2 + 3 = 5 ~ 5 < 6 » est vraie (équivalence de deux propositions
vraies), de même que « 8 ~ l 0 ~ 4 = 3 » (équivalence de deux propositions
fausses).
- La proposition « 5 + 7 = l 2 ~ 2 = 3 » est fausse (équivalence de deux proposi-
tions dont l'une est vraie et l'autre fausse).
- En Python, l'équivalence se note aussi « == ». Testons, sur la console Python, la
valeur de vérité de quelques propositions :
>>> (5<6)==(1==4) # 5<6 e s t v rai e t 1==4 es t faux
False
>>> (6<5) ==( 1==4) # 6 <5 e s t f aux e t 1==4 e s t f aux
True
Montrons, à l'aide d'une table de vérité, que la proposition (P ~ non(non(P))) est
-0
0 vraie, quelle que soit la valeur de vérité de la proposition P (voir tableau 4.4).
c
:J
0
li)
.,,:<:;
..--t c::
:l
Tableau 4.4
0 ~
N
" p
@
.......
~ 0
non(P) non(non(P)) P <=> non(non(P))
J:: :;
O'l "'0c:: FAUX VRAI FAUX VRAI
·;::::
>- c::
o. .9
c:: VRAI FAUX VRAI VRAI
0
u ü
.,,
:l

2
o.
~
"
:; c) Conjonction de deux propositions
0
1-
.,,1
0
c:
:l
Si P et Q sont deux propositions, la proposition notée « P et Q » est définie par la
0
QJ table de vérité du tableau 4 .5 (on peut aussi noter P /\ Q).

89
Chapitre 4 • Logique

Tableau 4.5
p Q Pet Q
FAUX FAUX FAUX
FAUX VRAI FAUX
VRAI FAUX FAUX
VRAI VRAI VRAI

~ «Pet Q » n'est vraie que si Pet Q sont vraies.

Exemples
- La proposition « 14 - 3 = 11 et 2 > 3 » est fausse (conjonction d'une proposition
vraie et d' une proposition fausse). La proposition « l OO est pair et l OO= l 0 2 »est
vraie (conjonction de deux propositions vraies) .
- En Python, « et » se note « a nd ». Testons, sur la console Python, la valeur de
vérité de quelques propositions (« ! = » signifie « est différent de »).
>>> (4==4 ) and ( 6 ! =6) # 4==4 es t v rai e t 6 ! =6 es t fau x
Fal se
>>> ( 4 <5 ) a nd ( 6 < 10) # 4 <5 es t v r a i e t 6 < 10 es t v r a i
Tru e

d) Disjonction de deux propositions


Si P et Q sont deux propositions, la proposition notée « P ou Q » est définie par la
table de vérité ci-après (on peut aussi noter P v Q).
Tableau 4.6
p Q Pou Q
FAUX FAUX FAUX
FAUX VRAI VRAI
VRAI FAUX VRAI
VRAI VRAI VRAI
"'O
0
c
0
:J
~ « Pou Q » n'est vraie que si au moins une des propositions Pou Q est vraie.
li)
..--t
0
N
@
.......
J::
O'l
Exemples
·;::::
>- - La proposition « 14 - 3 = 11 ou 2 > 3 » est vraie (disjonction d'une proposition
0.
0 vraie et d'une proposition fausse) . La proposition « l OO est pair ou l OO= l 0 2 » est
u aussi vraie (disjonction de deux propositions vraies).
- En Python, « ou » se note « o r ». Testons, sur la console Python, la valeur de
vérité de quelques propositions :
>>> ( 2 !=2) or ( 5<7 ) # 2 !=2 es t f a ux e t 5 <7 es t v r a i
Tru e
>>> (7<3) o r (6 ==7) # 7<3 e s t f a u x e t 6 ==7 es t f a u x
Fa l se

90
4.1 • Calcul des propositions

e) Implication
Si Pet Q sont deux propositions, la proposition notée « P => Q » (lire « P implique
Q »)est définie par la table de vérité du tableau 4.7.
Tableau 4.7
p Q P :::::> Q
FAUX FAUX VRAI
FAUX VRAI VRAI
VRAI FAUX FAUX
VRAI VRAI VRAI

~ Le faux implique« n'importe quoi» mais le vrai n'implique que le vrai.

Exemples
- La proposition « 5 < 5 ~ 5 = 5 » est vraie (le faux implique le vrai), tandis que la
proposition « 5 = 5 ~ 5 < 5 » est fausse (le vrai n'implique pas le faux).
- En Python, « ~ » se note « <= ». On a donc True <=Tru e, Fal se<=True ,
Fals e<=Fal se, mais on n'a pas Tr ue <=Fa l se . Testons, sur la console Python, la
valeur de vérité de quelques propositions :
>>> (3 ==2) <= (5<7) # 3==2 est faux et 5<7 est vra i
True
>>> (2<4) <= (3>5) # 2<4 est vrai et 3>5 es t faux
Fal se

4.1.3 Propriétés
Exemples
Montrons que la proposition ((P et Q) Ç::} (Q et P)) est vraie, quelles que soient les
valeurs de vérité des propositions P et Q.
-0
0 Tableau 4.8
c
:J
0 p Q Pet Q Qet P ((P et Q) ~ (Q et P))
li)
.,,:<:;
..--t c::
0
:l
~
FAUX FAUX FAUX FAUX VRAI
N
" FAUX VRAI FAUX FAUX VRAI
@
.......
~ 0
J:: :; VRAI FAUX FAUX FAUX VRAI
O'l
·;:::: "'0c::
>- c:: VRAI VRAI VRAI VRAI VRAI
o. .9
c::
0
u ü
.,,
:l

2 Montrons à l'aide d'une table de vérité que la proposition suivante est une tautolo-
o.
~ gie, c'est-à-dire une proposition toujours vraie, quelles que soient les valeurs de
"
:;
vérité des propositions P, Q et R :
0
1-
.,,1 ((P ou (Q et R)) Ç::} ((P ou Q) et (P ou R))
0
c:
:l Pour condenser la table, nous noterons T cette proposition, Fau lieu de FAUX et V
0
QJ au lieu de VRAI.

91
Chapitre 4 • Logique

Tableau 4.9

p Q R Qet R Pou (Q et R) Pou Q Pou R (P ou Q) et (P ou R) T


F F F F F F F F V
F F V F F F V F V
F V F F F V F F V
F V V V V V V V V
V F F F V V V V V
V F V F V V V V V
V V F F V V V V V
V V V V V V V V V

De la même manière, on pourrait démontrer l'ensemble des points de la


propriété 4.1.

Propriété 4.1
Quelles que soient les valeurs de vérité des propositions P, Q et R, les proposi-
tions suivantes sont vraies (ce sont des tautologies) :
- (Pet Q) <::::> (Q et P) (commutativité de l'opérateur et)
- (Pou Q) <::::> (Q ou P) (commutativité de l'opérateur ou)
- ((Pet Q) et R) <::::>(Pet (Q et R)) (associativité de l'opérateur et)
- ((Pou Q) ou R) <::::>(Pou (Q ou R)) (associativité de l'opérateur ou)
- (Pou (Q et R)) <::::>(Pou Q) et (Pou R) (distributivité de ou par rapport à et)
- (Pet (Q ou R)) <::::>(Pet Q) ou (Pet R) (distributivité de et par rapport à ou)
- (P => Q) <::::> (non(P) ou Q)
- non( Pet Q) <::::> ((non(P)) ou (non Q)) (loi de Morgan)
- non( Pou Q) <::::> ((non(P)) et (non Q)) (loi de Morgan)

L'utilisation de la propriété précédente permet de simplifier l'écriture de certaines


"'O
0 propositions.
c
:J
0
li) Exemple
..--t
0
N
La proposition « On n'a pas : x = l ou x > 4 » peut se noter non(x = l ou x > 4),
@ donc d'après une loi de Morgan, elle peut s'écrire (non(x = l) et non(x > 4)), d'où
.......
J::
plus simplement « x * 1 et x ::;; 4 » .
O'l
·;::::
>-
0.
u
0
4.2 CALCUL DES PRÉDICATS
Le symbole V signifie « pour tout » et est appelé quantificateur universel.
Le symbole ::3 signifie « il existe » et est appelé quantificateur existentiel.

92
4.2 • Calcul des prédicats

Exemples
«V x E ~. x 2 ~ 0 » se lit « pour tout réel x, x 2 ~ 0 ».
« ::3 x E ru, n 2 = n » se lit« il existe un entier naturel n tel que n 2 =n ».

Dans les énoncés « x 2 = 9 », « x < y », « n est divisible par 3 » on trouve des


variables (x, y et n).
Ces énoncés ne sont pas des propositions car ils n'ont aucune valeur de vérité.
Cependant, en ajoutant des quantificateurs, chacun de ces énoncés peut devenir une
proposition. Prenons par exemple le prédicat« x 2 = 9 »et considérons les énoncés :
P:«V x E ~. x 2 = 9 » Q : « :J X E ru, x 2 = 9»

Pet Q sont bien des propositions puisque ces énoncés ont un sens et une valeur
de vérité : Q est vraie puisque, par exemple on a 32 = 9, tandis que Pest fausse car
x 2 = 9 n'est pas vrai pour tout réel x (par exemple 5 2 -=F 9).
Une variable est un élément (nombre, matrice, etc.) pouvant prendre plusieurs
valeurs.
Un prédicat est un énoncé sans valeur de vérité, dans lequel intervient au moins
une variable, et qui devient une proposition par ajout de quantificateurs.

Exemples
- La proposition « ::3 x E ~. x < 1 » qui signifie « il existe un nombre réel x tel que
x < 1 » est vraie puisque par exemple 0 < 1. Cette proposition est constituée d'un
quantificateur existentiel et du prédicat« x < 1 ».
- Considérons les propositions P: « ::3 x E ~. x2 = 3 »et Q: « ::3 x E ru, x2 = 3 », dans
lesquelles intervient le prédicat x2 = 3 . La proposition P est vraie puisque, par
exemple fi/= 3 , tandis que Q est fausse . En effet, 3 n'est le carré d'aucun
nombre entier.
- Soient S et T deux propositions construites autour du prédicat « x < y» (prédi -
cat à deux variables) :
s : « V X E ~. ::3 V E ~. X < V » T : « ::3 V E ~. V X E ~. X < V »
La proposition S signifie : « pour tout réel x, il existe un réel y tel que x < y ».
Celle-ci est vraie puisque, quel que soit le nombre réel x, on peut toujours trouver
"'O
0 un réel y qui lui est supérieur (il suffit de prendre y= x + 1).
c
:J La proposition T signifie« il existe un réel y tel que pour tout réel x, x < y ». Celle-
0
li)
ci est fausse car il n'existe aucun nombre réel supérieur à tous les autres et à lui-
..--t
0 même .
N
@

A\ L'ordre dans lequel interviennent les quantificateurs V et ::3 a une importance .


.......
J::
O'l
·;:::: On ne peut pas le changer sans changer le sens de la proposition.
>-
o.
0
u
On ne peut pas changer, dans une proposition, l'ordre des quantificateurs V et ::3
sans changer son sens, mais on peut librement intervertir des quantificateurs de
même nature. Par exemple une proposition du type « V x > 0, V y E ~' etc. » peut
s' écrire«'\/ y E ~'V x > 0, etc.» et une proposition du type « ::3 n E ru, ::3 x > 1, etc.»
peut s' écrire « :J X> 1, :J n E ru, etc.».

93
Chapitre 4 • Logique

Exemples
- La négation de « Tous les chats sont gris » est « JI existe un chat non gris » et la
négation de « JI existe un chat gris» est « Tous les chats sont non gris».
- De même, la négation de « 3 x E ~. x 2 = 9 » est « '\/ x E ~. x 2 * 9 » et la négation
de « 3 x E ~. x2 * 9 » est « '\/ x E ~. x 2 = 9 ».

Plus généralement, on observe la propriété 4.2.

Propriété 4.2
Si p ( x) est un prédicat, alors :
- la négation de la proposition« V x, p(x) »est« 3 x, non (p(x)) » ;
- la négation de la proposition« 3 x, p(x) »est« V x, non (p(x)) ».

Exemples
- La négation de la proposition P : « '\/ n E ru, 2n < 1OO » est « 3 n E ru, 2n ~ 1OO ».
La proposition P est fausse puisque toutes les puissances de 2 ne sont pas infé-
rieures à 1OO. Sa négation est donc vraie (on peut le vérifier en prenant par
exemple n = 10 puisque 2 10 = 1 024 ~ 100).
- La négation de la proposition Q: « 3 n E ru, n/3 E ru» est«'\/ n E ru, n/3 ~ ru». La
proposition Q est vraie car par exemple 6 E ru et 6/3 = 2 E ru. Sa négation est donc
fausse (elle signifie qu'aucun entier naturel n'est divisible par 3).

Quelle est la négation de la proposition « V x E Iœ., 3 y E Iœ., x < y » ?


En appliquant les règles de négation précédentes, on obtient successivement :
« 3 x E Iœ., non(::! y E Iœ., x < y) » puis « 3 x E Iœ., V y E Iœ., non(x < y) », d'où
« 3 X E Iœ., V y E Iœ., X ~ y ».

Propriété 4.3
On obtient la négation d'une proposition formée d' une suite de quantificateurs
suivie d'un prédicat en changeant partout V par 3 et 3 par V puis en changeant
le prédicat par sa négation.
"'O
0
c
:J Exemple
0
li)
..--t
La négation de la proposition P : « '\/ n E ru, 3 p E ru, p = n/2 » est nonP : « 3 n E ru,
0 V p E ru, p * n/2 ».
N
@ P est fausse puisqu'elle exprime que tout entier naturel est divisible par 2 . Sa
.......
J::
négation est donc vraie ; elle exprime qu'il existe un entier naturel n qui ne soit
O'l
·;:::: pas divisible pas 2 (par exemple 3 n'est pas divisible par 2).
>-
0.
0
u Pour démonter une affirmation, on peut montrer qu ' elle est vraie, mais il peut être
plus simple de montrer que sa négation est fausse et pour montrer qu'une affirmation
est fausse, il peut être aussi plus simple de montrer que sa négation est vraie. Par
exemple, pour démontrer que l'affirmation « V x E Iœ., x 3 t 8 » est fausse, on peut
montrer que sa négation « 3 x E Iœ., x 3 = 8 » est vraie en remarquant que 2 3 = 8 (on
dit qu' il s' agit d 'un contre-exemple).

94
4.3 • Calcul booléen

4.3 CALCUL BOOLÉEN

4.3.1 Exemple introductif

a) Premier montage
On considère la portion de circuit électrique suivante :

Figure 4.1 - A et B sont deux interrupteurs et Lest une lampe.

On crée trois variables numériques a, b et l ne pouvant prendre que les valeurs


0 ou 1 en décidant que :
• a= 0 si l'interrupteur A est ouvert (le courant ne passe pas) et a= 1 si A est fermé .
• b = 0 si B est ouvert, b = 1 si B est fermé.
• l = 0 si la lampe L est éteinte, l = 1 si L est allumée.
Pour ce montage, on a la table présentée dans le tableau 4.10.
Tableau 4. 10

a b I

0 0 0
0 l 0
l 0 0
l l l

On voit que l = 1 seulement lorsque a ET b valent 1.


"'O
0
c
b) Deuxième montage
:J
0
li)
.,,:<:; On considère maintenant le montage suivant :
..--t c::
:l
0 ~
N
"
@
.......
~
0
J:: :;
O'l
·;:::: "'0c::
>- c:: L
o. c::
0 .9 B
u ü
.,,
:l

2
o. Figure 4.2
~
"
:;
0
1-
.,,
1 Pour ce montage, la table est présentée dans le tableau 4.11.
0
c:
:l
0
QJ

95
Chapitre 4 • Logique

Tableau 4. 11

a b 1

0 0 0

0 1 1

1 0 1
1 1 1

On voit quel = 1 lorsque a OU b valent 1.

c) Bilan
Dans ces deux cas, on a défini des variables ne prenant que deux valeurs : 0 et 1. On
dit que ce sont des variables booléennes.
Dans le premier montage, lest le produit des variables a et b, ce que l'on écrit
l = a·b ou plus simplement l = ab.
Dans le deuxième montage, lest la somme des variables a et b, ce que l'on écrit
l =a+ b.

4.3.2 Algèbre de Boole


Considérons :
• un ensemble dont les éléments sont des variables (souvent notées a, b, c, .. . ) ne
pouvant prendre que deux valeurs : 0 et 1.
• et trois opérations appelées addition, multiplication et complémentation défi-
nies dans le tableau 4.12.
Tableau 4. 12
"'O
0
c
a b a+ b a b ab
:J
0
li) 0 0 0 0 0 0 a a
..--t
0
N 0 1 1 0 1 0 0 1
@
.......
J::
1 0 1 1 0 0 1 0
O'l
·;::::
>- 1 1 1 1 1 1
0.
0 addition multiplication complémentation
u

On dit que l'ensemble de ces variables, muni de ces trois opérations, a une struc-
ture d'algèbre de Boole. Les variables sont appelées variables booléennes.
Un lien évident avec la logique montre que l'addition correspond à OU, la multi-
plication à ET et la complémentation à NON.

96
4.3 • Calcul booléen

Propriété 4.4
Dans une algèbre de Boole :
- L'addition et la multiplication sont commutatives : a+ b = b +a ; ab= ba .
- L' addition et la multiplication sont associatives : (a+ b) + c =a+ (b + c) ;
(ab)c = a(bc).
- La multiplication et l'addition sont distributives l'une par rapport à l' autre :
a (b + c) = ab + ac ; a + be = (a + b )(a + c) .
- 0 est élément neutre de l'addition : 0 +a =a+ 0 =a .
- 1 est élément neutre de la multiplication : la= al= a .
- 1 est élément absorbant de l'addition: a+ 1=1+a=1.
- 0 est élément absorba_!!t de la f!!Ultiplication: Oa = aO = 0.
- Quel que soit a: a+ a= 1 ; aa = 0.

Les démonstrations de la distributivité seront proposées dans l'exercice 4.20, les


autres propriétés sont très simples à démontrer.

Exemple
Montrons que 0 est élément neutre de l'addition :
Si a= 0, alors a+ 0 = 0 + 0 = 0 et 0 + a= 0 + 0 =O . Le résultat est égal à la valeur
de a.
Si a= 1, alors a+ 0 = 1 + 0 = 1 et 0 + a= 0 + 1 = 1. Le résultat est encore égal à
la valeur de a.
Donc, quel que soit a, on a 0 + a= a+ 0 = a.

Dans une expression, la complémentation est prioritaire sur la multiplication, qui


est elle-même prioritaire sur l'addition.
_ Si_ on doit calculer a + b c pour a = 0 , b = 1 et c = 0 , on commence par calculer
c = Ü= l.
- -
Puis on calcule le produit be= 1·1=1 et enfin la somme a+ be= 0+1=1.
a+ a= a et plus généralement a+ a+ ...+ a= a.
"'O
0
aa = a et plus généralement aa ... a = a .
c
:J Ces formules montrent qu' en calcul booléen, il n'y a ni multiple ni puissance.
0
li)
.,,:<:;
..--t c::
:l
0
N
~

" 4.3.3 Lois de Morgan


@
.......
~ 0
J:: :; Propriété 4.5 (lois de Morgan)
O'l
·;:::: "'0c::
>-
o.
c::
c::
Quelles qu~ sol_ent les variables a et b d'une algèbre de Boole, on a : a+ b = a· b
.9
u
0
ü et a·b = a+b.
.,,
:l

2
o.
~
"
:;
Les démonstrations peuvent se faire avec des tables de vérité comme illustré par
0
1- les tableaux 4.13 et 4.14.
.,,01
c:
:l
Les r~s_.!:lltats identiques dans les colonnes ~olQ_rées du tableau 4.13 montrent que
0
QJ a+ b = ab et dans le tableau 4.14, que ab = a+ b.

97
Chapitre 4 • Logique

Tableau 4.1 3
-- - - --
a b a+b a+b a b ab
0 0 0 1 1 1 1
0 1 1 0 1 0 0
1 0 1 0 0 1 0
1 1 1 0 0 0 0

Tableau 4. 14
- - - - -
a b ab ab a b a+b
0 0 0 1 1 1 1

0 1 0 1 1 0 1

1 0 0 1 0 1 1

1 1 1 0 0 0 0

4.3.4 Tableaux de Karnaug h


Les tableaux de Kamaugh permettent de représenter facilement des expressions
booléennes. Dans le cadre du programme, on se limitera à deux ou trois variables.

a) Cas de deux variables


Le ta~e~u ~-Karnaugh comprend quatre cases, correspondant aux quatre produits
ab, ab, ab, ab.
Tableau 4.1 5
-
b b
-
"'O
0 ab ab a
c
:J
0 - --
li) ab ab a
..--t
0
N
- -
@
.......
La premièr~ ligne correspond à ab+ ab =a (b + b) =a· l =a, la deuxième ligne
J::
O'l correspond à a.
·;:::: -
>- De même, la première colonne est b et la deuxième est b. Pour représenter une
0.
0
u expression dans un tableau de Karnaugh, on colore les cases concernées par
1'expression.

Exemples
-
L'expression a+ b est représentée par le tableau 4.16, dans lequel on colore la
ligne a et la colonne b.

98
4.3 • Calcul booléen

Tableau 4.16
-
b b

b) Cas de trois variables


Le tableau de Karnaugh comprend huit cases, correspondant aux huit produits
- - -- - - --
abc, abc, abc, abc, abc, abc, abc, abc.
Tableau 4.1 7
- -
be be be be
- -- -
abc abc abc abc
- - - --- --
abc abc abc abc : 1 1 1 1 1

Exemples
L'expression c est représentée par le tableau 4.1 8.

Tableau 4. 18
- -
be be be be
a

a
1 1 1 1 1

"'O Pour l'expression a+ b, on réunit la ligne a et les colonnes b (+ équivaut à OU


0
c et à réunion).
:J
0
li)
.,,:<:; Tableau 4.19
..--t c::
:l
0 ~
N
" - -
@
~ be be be be
....... 0
J:: :;
O'l
·;:::: "'0c:: a
>- c::
o. .9
c::
0
u .,,ü
:l
a
2 1 1 1 1 1
o.
~
"
:; Pour a c, on prend l'intersection de la ligne a avec les colonnes c (.équivaut à ET
0
1-
.,,1 et à intersection).
0
c:
:l
0
QJ

99
Chapitre 4 • Logique

Tableau 4.20
- -
be be be be
a
a
1 1 1 1 1

Inversement, un tableau de Karnaugh permet de retrouver une expression


(Fig. 4.3).

be be be be
a
-
a ~-=t=-=t:=====±=====:±===~

Figure 4.3

Il s'agit de l'expression a+ be

TD - Expression booléenne

La connexion à un site Internet nécessite la saisie d'un mot de passe comportant de


8 à 12 caractères. Ces caractères peuvent être des lettres majuscules de l'alphabet
français, ou des chiffres, ou des caractères spéciaux (tels que&,*,/,§ etc).
Un mot de passe est valide si l'une au moins des trois conditions suivantes est
-0 réalisée:
0
c • Il comporte au moins trois chiffres et trois caractères spéciaux.
::J
0
L()
• Il comporte au moins cinq lettres.
,......
0
N
• Il comporte moins de trois chiffres mais au moins cinq lettres et trois caractères
@ spéciaux.
.._,
..c
Ol
ï::::
>- Partie A - ReconnaÎtre si un mot de passe est valide
a.
0
u a) Parmi les mots de passe suivants, quels sont ceux qui sont valides ?
H32EXZ&K5= LUC230598** 123(M*K<4
b) Alice veut créer un mot de passe avec quatre lettres, quatre chiffres et quatre
caractères spéciaux. Ce mot de passe sera-t-il accepté ? Et un mot de passe de huit
lettres ?

100
TD - Expression booléenne

Partie B - Écriture d'une expression booléenne


On définit trois variables booléennes a, b et c de la façon suivante :
• a = 1 si le mot de passe contient au moins trois chiffres, sinon a =O.
• b = 1 si le mot de passe contient au moins cinq lettres, sinon b = O.
• c = 1 si le mot de passe contient au moins trois caractères spéciaux, sinon c = O.
ainsi que la variable A telle que A = 1 si le mot de passe est valide, A = 0 sinon.
a) Traduire chacune des trois conditions de validité d'un mot de passe à l'aide des
variables a, b etc. En déduire l'expression de A.
b) Représenter A avec un tableau de Karnaugh. En déduire une expression simplifiée
de A.
c) Par calculs, retrouver la forme simplifiée de A.
d) Exprimer par une phrase la condition pour qu'un mot de passe soit valide.

Partie C - Les mots de passe non valides


a) En utilisant le tableau de Karnaugh, déterminer l'expression de A .
b) Retrouver le résultat par calculs.
c) Exprimer par une phrase la condition pour qu' un mot de passe soit refusé.

SOLUTION DU TD

Partie A - ReconnaÎtre si un mot de passe est valide


a) H32EXZ&K5= est valide car il a cinq lettres.
"'O
0
c LUC230598** ne remplit aucune des trois conditions donc il n' est pas valide.
:J
0
li)
.,,:<:; 123(M*K<4 est valide car il remplit la première condition (quatre chiffres et trois
..--t c::
0
:l
~
caractères spéciaux).
N
"
@
.......
~ b) Un mot de passe avec quatre lettres, quatre chiffres et quatre caractères spéciaux
0
J:: :;
O'l
·;:::: "'0c:: est valide, car la première condition est remplie. Un mot de passe de huit lettres
>-
o.
c::
c:: convient aussi car la deuxième condition est vérifiée.
0 .9
u .,,ü
:l

2
o.
~ Partie B - Écriture d'une expression booléenne
"
:;
0
1-
.,, a) Les trois conditions s'expriment respectivement ac, b et abc. Donc
0
1

c: -
:l
0
QJ
A = ac+ b +a be .

101
Chapitre 4 • Logique

b)

Tableau 4.2 l
- -
be be be be
a

a
1 1 1 1 1

-
Le tableau 4.21 montre que l'on peut écrire A=: b +abc, ou plus simplement, pour
minimiser le nombre de symboles, A = b + ac .
-
c) A = ac + b + a be
-
=c(a+ab)+b (1)
= c(a +b) +b (2)
= ac+bc+b (3)
= ac+b(l +c)

=ac+b (4)
(1) en factorisant par c ; (2) en utilisant un tableau de Karnaugh à deux variables
(voir tableau 4.22); (3) par distributivité de la multiplication; (4) car l+c=l.
Tableau 4.22 - Tableau montrant que a+ ab= a+ b.
-
b b

a
"'O
0
c
:J
0 d) Un mot de passe est valide lorsqu' il a au moins cinq lettres ou qu'il a au moins
LI)
..--t trois chiffres et au moins trois caractères spéciaux.
0
N
@
....... Partie C - Les mots de passe non val ides
..c
O'l
·;::::
>-
Q.
a) Pour trouver 1'expression de A grâce au tableau, il faut considérer les cases
0
u restées blanches : la troisième colonne correspond à b c et les deux dernières cases
de la deuxième ligne correspondent à ab donc A = ab + b c .

102
Exercices corrigés

b) A=ac+b
=>A= ac+b
- --
=>A= ac ·b (1)

=>A=(~+ ~)b (2)


- -- --
=>A=ab+bc
(1) d 'après une loi de Morgan; (2) d'après l'autre loi de Morgan.
c) Un mot de passe est refusé lorsqu'il a moins de cinq lettres et moins de trois
chiffres, ou moins de cinq lettres et moins de trois caractères spéciaux.

Exercices corrigés

llM Écrire sans implication la proposition« x> 1 =>y= 3 ».


1'4 On considère la proposition p: « \::/ n ru, 3p ru, n = 2P ».
E E
Énoncer la négation de P puis donner, en justifiant, la valeur de vérité de P.
IQ L'affirmation « la présente affirmation est fausse » est-elle une proposition ?
Ill On note P et Q les affirmations suivantes :
• P = « Paul aime le foot »
• Q = « Paul aime les maths »
Représenter les affirmations suivantes sous forme symbolique en utilisant P, Q et des
connecteurs logiques.
• A=« Paul aime le foot mais pas les maths »
• B = « Paul n'aime ni le foot, ni les maths»
• C = « Paul aime le foot ou il aime les maths et pas le foot »
"'O • D = « Paul aime les maths et le foot ou il aime les maths mais pas le foot »
0

0
c
:J

.,,:<:;
ll'W Quelles sont les valeurs de vérité des propositions suivantes :
li)
..--t c::
:l
• A = « n = 5 et 2 + 3 = 5 »
0
N
~

" • B = « 7r = 5 ou 2 + 3 = 5 »
@
.......
~ 0
• C= « 7f ::::: 3,14=>5+6=11»
J:: :;
O'l
·;:::: "'0c:: • D= « 7r=5 =>2 +3=5 »
>- c::
o. .9
c:: • E = « 4 = 5 => A est vraie » (A est la proposition citée plus haut)
0
u ü
.,,
:l • F= « 5+5=10<=:>7r=ll »
2
o.

"
~ 1111 Quelles sont les valeurs de vérité des propositions suivantes :
:;
1-
0
A = « 11 > 0 et 3 < 2 » D = « 3 < 2 => 5 = 5 »
.,,1
0
c: B = « 11 > 0 ou 3 < 2 » E =« 4 't= l => 4=1»
:l
0
QJ c = « 3 > 6 ou 6 > 20 » F = « 4 < 5 <::::::> 10 = 1 + 9 »

103
Chapitre 4 • Logique

lf4 Montrer, à l'aide d'une table de vérité, que les propositions suivantes sont des
tautologies, c'est-à-dire qu ' elles sont vraies quelles que soient les valeurs de vérité
des propositions Pet Q.
a) non(P et Q) <=> (nonP ou nonQ) b) (P => Q) <=>(non Pou Q)
l l:M Montrer, à l'aide d ' une table de vérité, que les propositions suivantes sont des
tautologies, c'est-à-dire qu ' elles sont vraies qu'elles que soient les valeurs de vérité
des propositions qui les composent.
a) non(P ou Q) <=> (nonP et non Q)
b) (Pet (Q ou R)) <=>((Pet Q) ou (Pet R))
IQ Vrai ou faux ? (Justifier)
a) ::3 X E Iffi., x2 = X c) ::3 x E Iffi., (x + 1)2 = x2 + 2x + 1
b) V x E Iffi., x/3 = (l/3)x d) V x E Iffi., x2 + 1 < 101
1111] Énoncer deux propositions de valeur de vérités différentes dans lesquelles
apparaît le prédicat « x = 2x + 1 ».
1111 Dans chacun des cas suivants, énoncer deux propositions dans lesquelles
apparaît le prédicat donné : l'une vraie, l'autre fausse.
a)x2 ::'.:::x b)y=2x
llt;t Vrai ou faux ? (Justifier)
a) V x E Iffi., ::3 y E Iffi., y = x - 1 b) ::3 X E Iffi., V y E Iffi., y = X - 1
lllJ Vrai ou faux ? (Justifier)
a) V X E Iffi., V n E ru' X + nx = ( n + 1)x
b) :::J X E lffi., :::J n E ru, X + nx = (n + 1)X
c) ::3 n ru, ::3 p E
E ru, p - n est divisible par 2
-0
0 d) V n E ru, V p E ru, p - n est divisible par 2
c
:J
0
LI)
1111 Pour chaque proposition, donner sa valeur de vérité, énoncer sa négation puis
..--t
0 donner la valeur de vérité de celle-ci .
N
@ a) ::3 x E Iffi., 3x = 2
.......
..c
O'l
·;::::
b) V X E Iffi., X = X +1
>-
Q.
0 c) V X E Iffi., V y E Iffi., X :::;; y
u
11 ..1 Pour chaque proposition, donner sa valeur de vérité, énoncer sa négation puis
donner la valeur de vérité de celle-ci.
a) ::3 x E Iffi., V y E Iffi., x 2 = y
b) V x E Iffi., ::3 y E Iffi., x 2 = y

104
Exercices corrigés

llld Pour les valeurs de a, b et c données, calculer les expressions A, B et C :


- - -
A=a+b+c, B=ab+c, C=(a+b)~
a) a = 0, b = 1, c = 1
b) a = 1, b = 1, c =1
c) a = 1, b = 1, c = 0
tif~ Démontrer à l'aide d'une table de vérité les formules suivantes:

a) a+ab=a b) a(a+b)=a
lll:J Démontrer à l ' aide d'une table de vérité les formules suivantes :
-
a) a+ab = a+b b) (a + b) (a + b) = a
llQJ Démontrer à l'aide d'une table de vérité les formules suivantes :
a) a+ b + a · b = 1 b) (a+b)a·b=O
lf4flll Démontrer à l'aide d'une table de vérité les formules suivantes:
a (b + c) = ab + ac (distributivité de la multiplication)
a + be = (a + b) (a + c) (distributivité de l'addition)
If.JI Démontrer par calculs les formules suivantes:
a) a+ab=a b) a(a+b)=a
lfJ"I Démontrer par calculs les formules suivantes:
-
a) a+ab = a+b b) (a + b) (a + b) = a
lfJJ Démontrer par calculs les formules suivantes:
"'O a) a+ b + a · b =1 b) (a+b)a·b = O
0
c
0
:J

.,,:<:;
If.JI Démontrer à l' aide d ' un tableau de Kamaugh les formules suivantes:
li)
c:: -
..--t
0
:l
~
a) a+ab= a+b b) a + b + a·b=l
N
"
@
.......
~ 0 lfJ1 a) Représenter par un tableau de Kamaugh les expressions :
J:: :;
O'l "'0c:: - -
·;::::
>- c:: A = ab+ c et B = a +be
o. .9
c::
0
u .,,ü b) Utiliser le tableau pour déterminer les expressions de A et B.
:l

2
o.

"
~
:;
0
lf4Jd a) Représenter par un tableau de Kamaugh les expressions :
1- -
.,,
0
1
A = a c + b c + abc et B = ab+b c +a c
c:
:l
0
QJ b) Utiliser le tableau pour déterminer les expressions de A et B .

105
Chapitre 4 • Logique

- - -
IfJ~ Soit A = ab + e et B = a +be. Montrer par calculs que A = a e +be et que
- -
B=ae+ab.
If.J:J Par calculs, démontrer la formule (a+ b) (a + e) = a +be.
IfJl On considère la loi * définie par la table de vérité du tableau :
Tableau 4.23

a b a*b
0 0 0
0 l l
l 0 l
l l 0

a) En logique, quel est l'équivalent de cette loi ?


b) À l'aide d' une table de vérité, montrer que a* b =a· b +a· b
c) Démontrer par calculs que a * b = (a+ b) · (~ + "b).
-
llJI] Soit A =a· b +ab+ b. Montrer qua A= 1 de deux façons : table de vérité et
calculs.
1111 Soit A = ab+ abc + ab. Montrer qua A=a de deux façons : tableau de
Karnaugh et calculs.
llt.<ISoit A = ~· b-~+abc+~·b+ab-~ . Simplifier A avec un diagramme de
Karnaugh, puis vérifier par des calculs.
IQ On définit une loi * par a * b = ~ ·b +a· b
a) Montrer que a *a = 0 c) Calculer a * 1
-
"'O
b) Calculer a *a d) Montrer que 0 est élément neutre pour la loi *
0

0
c
:J 1111 On désigne par j, la loi définie par a j, b = a + b où a et b sont des variables
LI) booléennes.
..--t
0
N
a) Que valent a j, 0 et a J, 1 ?
@
.......
..c
O'l
b) Soit A= (a J, b) + (a J, a). Simplifier A par le calcul.
·;::::
>-
Q. c) Soit a, b et c trois variables booléennes. A-t-on (a j, b) J, c = a J, (b J, c) ?
0
u
lti1 Dans un grand magasin, le service clientèle a organisé une classification des
clients en trois catégories :
• Si le client achète un article, il est classé en catégorie A et a= 1, sinon a= O.
• Si le client échange ou rend un article, il est classé en catégorie E et e = 1 sinon
e =O.

106
Exercices corrigés

• Si le client demande des renseignements, il est classé en catégorie R et r = 1 sinon


r= O.
-
Soit F =a· e · r +a· e · r
a) Faire le diagramme de Karnaugh de F.
b) En déduire une forme simplifiée de F.
c) Retrouver la forme simplifiée de F par calcul.
d) Quel type de client est un client de type F ? Est-ce un client peu intéressant,
assez intéressant ou très intéressant pour le magasin ? Donner l'écriture la plus
simple de F.
llJd Une société désire recruter en interne des collaborateurs pour sa filiale en
Asie. Pour chaque employé, on définit les variables booléennes suivantes :
a= 1 s'il a plus de cinq ans d'ancienneté dans l'entreprise.
b = 1 s'il possède un BTS SIO.
c = 1 s'il parle couramment l' anglais.
La direction des ressources humaines décide que pourront postuler les employés :
• qui satisfont aux trois conditions ;
• ou qui ont moins de cinq ans d'expérience mais qui maîtrisent l'anglais;
• ou qui ne maîtrisent pas l'anglais mais ont un BTS SIO.
a) Écrire une expression booléenne E traduisant les critères de sélection de la direction.
b) Représenter l ' expression Epar un tableau de Karnaugh.
c) À l'aide du tableau, donner une expression simplifiée de E.
d) Retrouver le résultat par calcul.
e) Déduire des questions 3 ou 4 une version simplifiée des critères de la direction.
llfi On considère l'expression E = ;~ + b~ +ab+;/; c.
-0
0 a) Simplifier l'écriture de E à l'aide d' un diagramme de Karnaugh et en déduire que
c
:J
0 E = b + c . Retrouver par calcul la forme simplifiée de E.
li)
..--t c::
0
N
~ b) Dans un organisme qui aide des personnes au chômage à retrouver un emploi, on
"
@ ~ considère pour ces personnes les trois variables booléennes a, b etc définies ainsi :
....... 0
J::
O'l ~c::
• a = 1 si la personne a 45 ans ou plus, sinon a = O.
·;::::
~ • b = 1 si la personne est au chômage depuis un an ou plus, sinon b = O.
0
>-
0.
0 .9
u g • c = 1 si la personne a déjà suivi une qualification l'année précédente, sinon c = O.
2o.
~ Une formation sera mise en place pour les personnes vérifiant au moins un des
:;
~ critères suivants :
1

2 • Avoir 45 ans ou plus et être au chômage depuis moins d'un an.


=
0
QJ • Avoir moins de 45 ans et ne pas avoir suivi de formation l'année précédente.

107
Chapitre 4 • Logique

• Être au chômage depuis un an ou plus et ne pas avoir suivi de formation l'année


précédente.
• Avoir moins de 45 ans, être au chômage depuis moins d'un an et avoir suivi une
formation l'année précédente.
Les personnes qui ne répondent à aucun de ces quatre critères pourront participer à
un stage d'insertion en entreprise.
1) Écrire l'expression booléenne Fen fonction de a, b etc qui traduit le fait que la
personne pourra suivre cette formation.
2) En déduire les personnes qui ne pourront pas participer à la formation et qui
participeront donc à un stage d'insertion en entreprise.

llJ:J Une entreprise décide de choisir de nouveaux chefs de service parmi ses
employés en se servant des variables booléennes suivantes :
• a= 1 si et seulement si l'employé a plus de 10 ans d'ancienneté dans l'entreprise.
• b = 1 si et seulement si l'employé arrive souvent en retard.
• c = 1 si et seulement si l'employé a des relations difficiles avec ses collègues.
L'entreprise fait une première sélection parmi ses employés en considérant les
critères suivants : « l'employé est ponctuel et s'entend bien avec ses collègues» ou
« l'employé est dans l'entreprise depuis au moins 10 ans ».
a) Donner l'expression booléenne E correspondant à un employé qui respecte les
conditions pour devenir chef de service.
b) Donner l'expression de E à l'aide du tableau de Karnaugh. Retrouver le résultat
par calculs.

llJlil Le gérant d'un magasin de vente de matériel d'occasion décide de réaliser


une enquête sur les critères de choix des clients concernant l'achat d'ordinateurs.
"'O
0
c
Il examine trois critères, associés à trois variables booléennes a, b etc.
:J
0 • La variable a concerne l'ancienneté. a = 0 si l'ordinateur a moins d'un an, a = 1
LI)
..--t
0
s'il a plus d'un an .
N
@ • La variable b concerne l'état. b = 0 si l'ordinateur est un peu abimé, b = 1 s'il est
.......
..c en bon état.
O'l
·;::::
>-
Q.
• La variable c concerne la fiabilité. c = 0 si la marque est réputée peu fiable, c = 1
0
u smon.
Après dépouillement, il apparaît que les clients achètent un ordinateur si :
• il a moins d'un an et que sa marque est réputée fiable ;
• ou s'il a plus d' un an mais qu'il est en bon état;
• ou si sa marque est réputée peu fiable mais qu'il a moins d' un an.

108
Exercices corrigés

a) Traduire par une variable booléenne E 1'ensemble des critères d'achat.


b) Faire la table de Kamaugh de E et donner une expression simplifiée de E.
Traduire par une phrase cette expression simplifiée.
c) Montrer par calculs, que E =a+ b. En déduire une expression de E et traduire
cette expression par une phrase.

SOLUTIONS

llM On sait que (P => Q) <::::> ((non(P)) ou Q) est toujours vrai (c'est une tautolo-
gie), donc:

( x > 1 => y= 3) ~ (non ( x > 1) ou y= 3)


<::::> (x ~ 1ouy=3)
La proposition « x > 1 => y = 3 » peut donc s'écrire « x ~ 1 ou y = 3 ».
lf.:W nonP: «3 n E ru, V p E ru, n =!= 2? ».Par exemple pour n = 3, tout entier p
vérife 2P =!= 3 car 3 n'est pas une puissance de 2. Cela démontre que nonP est vraie,
donc que P est fausse.
IQ L'affirmation« la présente affirmation est fausse» n'est pas une proposition
car on ne peut pas lui attribuer une valeur de vérité. En effet, si la valeur de vérité de
l'affirmation est VRAI, c'est que ce qu'elle affirme est vrai, donc que l'affirmation
est fausse, c'est-à-dire que sa valeur de vérité est FAUX. De même, si la valeur de
vérité de l'affirmation est FAUX, c'est que ce qu'elle affirme est faux, donc que
l'affirmation est vraie, c'est-à-dire que sa valeur de vérité est VRAI.
Ill A = (P et nonQ) B = (nonP et nonQ) ;
C =(Pou (Q et nonP)) D =((Pet Q) ou (Q et nonP))
"'O
0
c
:J
11... A : FAUX (71: = 5 est faux, 2 + 3 = 5 est vrai et « FAUX et VRAI » vaut
0
li)
.,,:<:; FAUX)
..--t c::
:l
0
N
~ B : VRAI(« FAUX ou VRAI» vaut VRAI)
"
@
.......
~ C : VRAI (71: ""' 3, 14 est vrai, 5 + 6 = 11 est vrai et « VRAI => VRAI » vaut VRAI)
0
J:: :;
O'l
·;:::: "'0c:: D : VRAI (71: = 5 est faux, 2 + 3 = 5 est vrai et « FAUX=> VRAI» vaut VRAI)
>- c::
o. c::
0 .9 E: VRAI (4 = 5 est faux,« A est vraie» est faux et« FAUX=> FAUX » vaut VRAI)
u ü
.,,
:l

2
o. F: FAUX (5 + 5 = 10 est vrai, 71: = 11 est faux et « VRAI<::::> FAUX » vaut FAUX)
~
"
:; 1111 A: FAUX (11 > 0 est vrai, 3 < 2 est faux et« VRAI et FAUX » vaut FAUX)
0
1-
.,, B : VRAI(« VRAI ou FAUX » vaut VRAI)
0
1

c:
:l
0
QJ C : FAUX (3 > 6 est faux , 6 > 20 est faux, et « FAUX ou FAUX » vaut FAUX)

109
Chapitre 4 • Logique

D: VRAI (3 < 2 est faux, 5 = 5 est vrai, et« FAUX=> VRAI» vaut VRAI)
E : FAUX (4 :;: 1 est vrai, 4 = 1 est faux et « VRAI => FAUX » vaut FAUX)
F: VRAI (4 < 5 est vrai, 10 = 1 + 9 est vrai et« VRAI<=> VRAI» vaut VRAI)

lf4 a) Notons T la proposition « non(P et Q) <::::> (nonP ou nonQ) ».


Tableau 4.24
p Q Pet Q non(Q et P) NonP nonQ nonP ou non Q T

FAUX FAUX FAUX VRAI VRAI VRAI VRAI VRAI

FAUX VRAI FAUX VRAI VRAI FAUX VRAI VRAI

VRAI FAUX FAUX VRAI FAUX VRAI VRAI VRAI

VRAI VRAI VRAI FAUX FAUX FAUX FAUX VRAI

b) Notons T la proposition« (P => Q) <=> (nonP ou Q) ».

Tableau 4.2 5

p Q P=>Q NonP nonP ou Q T

FAUX FAUX VRAI VRAI VRAI VRAI

FAUX VRAI VRAI VRAI VRAI VRAI


- f- - - -
VRAI FAUX FAUX FAUX FAUX VRAI

VRAI VRAI VRAI FAUX VRAI VRAI

ll:M a) Notons T la proposition « non(P ou Q) <::::> (nonP et nonQ) »


Tableau 4.26
-0
0
c p Q Pou Q non(P ou Q) nonP nonQ nonP et nonQ T
:J
0
LI)
..--t
FAUX FAUX FAUX VRAI VRAI VRAI VRAI VRAI
0
N
@ FAUX VRAI VRAI FAUX VRAI FAUX FAUX VRAI
.......
..c
O'l VRAI FAUX VRAI FAUX FAUX VRAI FAUX VRAI
·;::::
>-
0..
0 VRAI VRAI VRAI FAUX FAUX FAUX FAUX VRAI
u

La dernière colonne du tableau montre que Test toujours vraie.

l l0
Exercices corrigés

b) Notons T la proposition: «(Pet (Q ou R)) {::::>((Pet Q) ou (Pet R)) » .


Tableau 4.2 7
p Q R Qou R Pet (Q ou R) Pet Q Pet R (P et Q) ou (P et R) T

FAUX FAUX FAUX FAUX FAUX FAUX FAUX FAUX VRAI

FAUX FAUX VRAI VRAI FAUX FAUX FAUX FAUX VRAI

FAUX VRAI FAUX VRAI FAUX FAUX FAUX FAUX VRAI

FAUX VRAI VRAI VRAI FAUX FAUX FAUX FAUX VRAI

VRAI FAUX FAUX FAUX FAUX FAUX FAUX FAUX VRAI

VRAI FAUX VRAI VRAI VRAI FAUX VRAI VRAI VRAI

VRAI VRAI FAUX VRAI VRAI VRAI FAUX VRAI VRAI

VRAI VRAI VRAI VRAI VRAI VRAI VRAI VRAI VRAI

La dernière colonne du tableau montre que Test toujours vraie.

IQ a) Vrai : il existe bien un réel x tel que x 2 = x puisque, par exemple, 12 = 1.


b) Vrai: c'est une propriété du calcul fractionnaire.
c) Vrai : puisque l'égalité est vraie pour tout réel (c'est une identité remarquable), il
existe bien un réel vérifiant cette égalité (il suffit d 'en choisir un au hasard).
d) Faux : tous les réels ne vérifient pas cette inégalité puisque par exemple,
122 + 1 = 145 et 145 n'est pas inférieur à 101.

1111] Proposition vraie: :::J x E fi{, x = 2x + 1 (en effet, - 1=2x(- 1)+1).


Proposition fausse : V x E fi{, x = 2x + 1 (en effet, par exemple 0 ne vérifie pas
"'O Û = 2 X Û + 1).
0
c
:J
0
.,,:<:; 1111 a) Proposition vraie : :::J x E fi{, x 2 ~ x (par exemple, x = 5).
li)
..--t c::
:l
0
N
~ Proposition fausse : V x E fi{, x2 ~ x.
"
@
.......
~ b) Proposition vraie : V x E
0 fi{, :::J yE fi{, y = 2x (cela veut dire que tout nombre réel x
J:: :;
O'l
·;:::: "'0c:: possède un double 2x).
>- c::
o. c::

u
0 .9
ü Proposition fausse : :::J x E fi{, VyE fi{, y = 2x .
.,,
:l

2
o.
~ llt-'I a) L'énoncé signifie « Pour tout réel x il existe un réel y tel que y = x - 1 ».
"
:;
1-
0 C'est vrai car, pour tout réel x , x - 1 est aussi un réel.
.,,1
0
c:
:l
b) L'énoncé signifie « Il existe au moins un réel x tel que pour tout réel y on ait
0
QJ y = x - 1 » . C'est faux car, sinon tous les réels seraient égaux au même nombre x - 1.

111
Chapitre 4 • Logique

lllJ a) Vrai, c'est une factorisation par x.


b) Vrai, par exemple avec x = 2 et n = 5, on a 2 + 5 x 2 = (5 + 1) x 2.
c) Vrai, par exemple, avec n = 7 et p = 15, p - n = 15 - 7 = 8 et 8 est divisible par 2.
d) Faux, n = 7 et p = 12 fournit un contre exemple : p - n = 5 qui n' est pas divisible
par2.
llEI a) Valeur de vérité : VRAI (car x = 2/3 vérifie 3x = 2)
Négation: V x E IR?., 3x -:t= 2 (valeur de vérité: FAUX)
b) Valeur de vérité : FAUX (car par exemple, on n'a pas 2 = 2 + 1)
Négation : ::3 x E IR?., x "# x + 1 (valeur de vérité : VRAI)
c) Valeur de vérité: FAUX (sinon tout réel serait tel que tous les autres réels lui sont
supérieurs ou égaux).
Négation : ::3 x E IR?., ::3 y E IR?., x > y (valeur de vérité : VRAI)
11..1 a) Faux. Si y est strictement négatif, il n'existe pas x réel tel que x 2 =y car x 2
est toujours positif.
Négation : V x E IR?., ::3 y E IR?., x 2 -:t= y. Elle est vraie.
b) Vrai, car tout réel possède un carré.
Négation : ::3 x E IR?., V y E IR?., x 2 -:t= y. Elle est fausse.
lllij a) A= 0+ 1+l=1+1+0=1 B = 0 · l + 1= 0·0 + 1= 1

C = (O+l)·l = l·O = O
- - -
b) A=l+l+l=O+l+O=l B=l·l+l=l·O+l=l
C=(l+l)·l=l·O=O
- - -
c) A=l+l+O=O+l+l=l B=l·l+O=l·O+O=O
C=(l+l)·O=l·l=l
'O

llf~
0
c
:J
0
LI)
.--t
Tableau 4.28 - À gauche réponse à la question a),
0 À droite réponse à la question b).
N
@
....... a b ab a+ab a b a+b a(a+b)
J::
Ol
·;:::: 0 0 0 0 0 0 0 0
>-
0..
0 0 1 0 0 0 1 1 0
u
l 0 0 l l 0 1 l
l 1 1 l l 1 1 l

Les colonnes colorées étant identiques, on en déduit que a = a+ ab et que


a = a(a+b).

112
Exercices corrigés

lll:J
Tableau 4.29 - Réponse à la question a).
- - -
a b a a·b a+ab a+b
0 0 l 0 0 0
0 l l l l 1
l 0 0 0 1 1
l l 0 0 1 1

Tableau 4.30 - Réponse à la question b).


- - -
a b b a+b a+b (a+b)(a+b)
0 0 l 0 l 0
0 l 0 1 0 0
1 0 1 1 1 1
1 1 0 1 1 1

Tableau 4.31 - Réponse à la question a). Posons A = a+ b +a· b.


- - - -
a b a b a·b a+b A

0 0 1 1 1 0 1
0 1 1 0 0 1 1
l 0 0 1 0 1 1
l 1 0 0 0 1 1

"'O
0
Tableau 4.31 - Réponse à la question a). Posons B = (a+ b)a · b.
c
0
:J - - - -
li)
.,,:<:; a b a b a·b a+b 8
..--t c::
:l
0
N
~

" 0 0 1 1 l 0 0
@
.......
~ 0 0 l 1 0 0 1 0
J:: :;
O'l
·;:::: "'0c:: 1 0 0 1 0 1 0
>- c::
o. .9
c::

u
0 1 l 0 0 0 1 0
.,,ü
:l

2
o.
~
"
:;
0
Donc, quelles que soient les valeurs de a et de b, on a a+b+ab =l et
1-
.,, (a +b)ab = O.
0
1

c:
:l
0
QJ

113
Chapitre 4 • Logique

If.li] Dans chaque tableau, 1' égalité des colonnes colorées permet de prouver la
formule.
Tableau 4.32

a b c b+c a(b+c) ab ac ab+ac


0 0 0 0 0 0 0 0
0 0 l l 0 0 0 0
0 l 0 l 0 0 0 0
0 l l l 0 0 0 0
l 0 0 0 0 0 0 0
l 0 l l 1 0 l 1
l l 0 l 1 l 0 1
l l l l 1 l l 1

Tableau 4.33

a b c be a+bc a+b a+c (a +b)(a + c)


0 0 0 0 0 0 0 0
0 0 l 0 0 0 l 0
0 l 0 0 0 l 0 0
0 l l l 1 l l 1
l 0 0 0 1 l l 1
l 0 l 0 1 l l 1
l l 0 0 1 l l 1
l l l l 1 l l 1

If.JI a) a+ ab= a· I +ab= a(I + b) =a· I =a


b) a(a + b) = aa +ab= a+ ab= a (d'après le calcul précédent)
lfJ-'I a) Par distributivité de l'addition:
- -
-0
0
a + ab = (a + a)( a + b)
c
:J = I(a + b)
0
LI)
..--t =a+b
0
N b) En appliquant deux fois la distributivité de la multiplication :
@
.......
..c
O'l
·;:::: (a + b) (a + b) = aa + ab + ab + bb
>-
Q. -
u
0 =a+ab+ab+O
-
=a+a(b+b)
=a+a·I
= a+a
=a

114
Exercices corrigés

lfJJ a)
a + b + allP = a + b + a + b (1)
=c+c (2)
=l
(1) d ' après une loi de Morgan; (2) en posant a+ b = c.
b)

(a+b)ab =(a+b)(a+b) (1)


=cc (2)

(1) d'après une loi de Morgan ; (2) en posant a+ b = c .

lfl'U a) On colore la ligne a, puis la case ~.Cela revient à avoir coloré la ligne a
et la colonne b.
Tableau 4.34
-
b b

b) On colore la ligne a et la colonne b, puis la case ab. L'ensemble du tableau est


coloré, ce qui correspond à l'expression 1.

"'O
0
lfJ1 a)
c
:J Tableau 4.3 5
0
li)
.,,:<:; - - - -
..--t c::
0
:l
~
be be be be be be be be
N
"
@
.......
~ 0
J:: :;
O'l
·;:::: "'0c::
>- c::
o. .9
c::
0
u ü
.,,
:l

2
o. Expression A Expression B
~
"
:;
- - - - - -
0
1-
.,,1 b) A = a be+ b c ou A = ac+ b c B = ac+ abc ou B = ac+ ab
0
c:
:l
0
QJ

115
Chapitre 4 • Logique

lf.t@a)
Tableau 4.36
- - - -
be be be be be be be be
a
a
1 1 1 1 1 : 1 1 1 1 1
- -
b) A= ab+abcou A= ab+a c B = abc+abc

- --
A = ab + c = ab· c (1)
= (~ + b) c (2)
- -
=ac+bc
(1) d'après une loi de Morgan; (2) d'après une loi de Morgan.
- - - -
B = a + be = a· be = a (b + c) = ab + ac = ac + ab

(a + b )(a + c) = aa + ac + ba + be= a + ac + ab + be
= a(l + b + c) +be= a· 1+be = a+ be
lfil a) Cette loi est équivalente à OU EXCLUSIF.
b)
Tableau 4.3 7

a b a*b ab ab ab+ab
-0
0
c 0 0 0 0 0 0
:J
0
LI) 0 l l l 0 l
..--t
0
N l 0 l 0 l l
@
....... l l 0 0 0 0
..c
O'l
·;::::
>- c)
Q.
0
u
(a+ b) · (~ + b) = a~+ ab +~+ bb
=O + ab +ab+O
= ab + ab
Donc a * b = (a + b) · (~ + b).

116
Exercices corrigés

11111
Tableau 4.38

a b ab ab ab+ab+b Par calculs :

0 0 1 0 1
A=b(a+a)+b
0 1 0 0 1
=b·l+b
1 0 0 1 1
-
=b+b
1 1 0 0 1
=1

llJI Pour ab, on col~re les deux premières cases de la ligne a. abc est une case
déjà colorée, et pour ab on colore les deux dernières cases de la ligne a. On obtient
A= a.
Tableau 4.39
- -
be be be be

a
1 1 1 1 1
- - - -
Par calculs: A=ab+abc+ab =ab(l+c)+ab=ab+ab=a(b+b)=a·l=a

Tableau 4.40
- -
be be be be

-0 a
0
c
:J
0 a
li)
..--t
0 1 1 1 1 1
N
-
@
.......
~0 D'après le tableau, A = b.
J:: :;
O'l
·;::: "'c: - -
>-
0
c:
c:
A= bc(a+ a) +b(ac +a)
0..
0 .9 - -
u ü
:::l = b c · 1+ b( ac + a)
2o.
~
'l.) =b (c+ a+ ac)
:;
~
1 = b(ac+ ac)
"8c: - -
:::l
0 =b·l=b
QJ

117
Chapitre 4 • Logique

- -- -
b) a*a=aa+aa=a+a=l
- -
c) a*l=a·l+a·l=a+a·O=a
- -
d) a*Ü=a·O+a·O=O+a·l=a et de même Ü* a=adonc 0 est élément neutre
pour la loi * .

llQI a) a J, 0 =a+ 0 = ~ et a J, 1=a+1 = l = 0


b)

-- - - - -
=ab+ a= a(b + 1) =a· l
=a

c) (a J, b) J, c = a + b J, c = a + b + c = (a + b) ~ = a~ + b~

a J, (b + c) =a+ b + c = ~(b + c) = dJ + ~

Donc (a J, b) J, c:;t aJ, (bJ, c)


lti1 a)
Tableau 4.41

er er er er

-0 a
0
c 1 1 1 1 1
:J
0
LI) -
..--t
0
b) D'après le tableau, F = a e
N
- - - -
@ c) F=ae(r+r)=ae·l=ae
.......
..c
O'l
·;:::: d) Un client de type Fest un client qui achète et n'échange pas d'article.
>-
0..
u
0
Un client de type Fest un client qui n' achète pas ou qui échange un article: ce type
de client est peu intéressant.
F =ae =a+ e

118
Exercices corrigés

- -
llld a) E =abc+ ac+ cb
b)

Tableau 4.42
- -
be be be be

a
1 1 1 1 1

c) Le bloc de quatre cases colorées sur la gauche du tableau correspond aux deux
~olonnes b. La pr~mière et la quatrième case de la deuxième ligne correspondent à
ac donc E = b + ac .

d) E = abc+ ;c + ~b = c(ab+;) + b~ = c (; + b) + b~ . En effet, ab+; =; + b d'après


le tableau de Karnaugh (tableau 4.43).

Tableau 4.43
-
b b

On continue le calcul de E : E =; c +be+ b~ = ;c + b (c + ~) = ; c + b .


e) Les critères simplifiés sont donc : avoir un BTS SIO ou moins de cinq ans
"'O
d'ancienneté mais maîtriser l'anglais.
0
c
:J llfi a) _!>uisque les cases colorées correspondent à E et les non colorées à E , on
0
li)
.,,:<:; voit que E = be .
..--t c::
:l
0 ~
N
" Tableau 4.44
@
.......
~ 0
- -
J:: :;
O'l
·;:::: "'0c:: be be be be
>- c::
o. .9
c::
0
u .,,ü
:l a
2
o.
~
"
:; a
0
1- 1 1 1 1 1
.,,
0
1

c:
:l
0
QJ On en déduit que E = be = b + c .

119
Chapitre 4 • Logique

b) 1) On traduit chaque critère avec des variables booléennes :


• Avoir 45 ans ou plus et être au chômage depuis moins d'un an : ab.
• Avoir moins de 45 ans et ne pas avoir suivi de formation l'année précédente : ac.
• Être au chômage depuis un an ou plus et ne pas avoir suivi de formation l'année
précédente : be.
• Avoir moins de 45 ans, être au ~l:!_ômage depuis moins d'un an et avoir suivi une
formation l'année précédente: abc.
-- - - --
Ainsi F =ac+ be+ ab+ abc. On constate que F = E.
2) Les personnes qui ne pourront pas participer à la formation sont celles qui corres-
pondent à la variable F. Comme F =be, ce sont celles qui ont plus d ' un an de
chômage et qui ont suivi une qualification l'année précédente.
lll:J a) E = b~ +a
b)
Tableau 4.45
- -
be be be be

a
a
1 1 1 1 1

D'après le tableau, E=ab+ac. Par calculs, E=bc+a donc

E=b~+a=b~·~=(b+c)~= ab+ac .
IQ a) E = ac+ab+ca
b)
Tableau 4.46
-0
0
c
:J be be be be
0
LI)
..--t
0
a
N
1 1
@
.......
a
..c 1 1 1
O'l
·;::::
>-
0..
0
D'après le tableau, E =a+ b. Un client achète un ordinateur s'il a moins d'un an ou
u
s' il est en bon état.
- -
c) E=a c +ab+ca=a(c+c)+ab=a+ab=a+b (fin de calcul déjà rencontrée).
-
On en déduit que E = a + b = ab : un client n'achète pas un ordinateur s'il a plus
d' un an et qu'il est en mauvais état.

120
ENSEMBLES

5.1 Langage ensembliste

1 5.2 Relations binaires


5.3 Applications d'un ensemble dans un ensemble

> Interprétation en termes ensemblistes de la disjonction,


de la conjonction de deux relations.
> Comprendre les relations entre ensembles et leur utilisation.

5.1 LANGAGE ENSEMBLISTE

5.1.1 Généralités
Un ensemble peut être défini en extension (on donne alors la liste de ses éléments)
ou en compréhension (on donne alors une propriété caractéristique de ses éléments,
formulée en français ou mathématiquement).

Exemples
"'O Certains ensembles portent des noms qui leur sont réservés : l'ensemble des
0
c
:J
entiers naturels est ru, l'ensemble des nombres réels est IRL L'ensemble vide se
0
.,,:<:; note 0 ou { }.
li)
..--t c::
:l
Soit A= {0 ;3;6;9;12 ;15;18}. A est défini en extension. Pour dire que 12 est un
0
N
~
élément de A, on écrit 1 2 E A. Par contre, 1 3 e: A.
"
@
.......
~ 0
On peut aussi dire que A est l'ensemble des multiples de 3 qui sont inférieurs
J:: :; à 20 . A est alors défini en compréhension . On peut aussi définir A en compréhen-
O'l
·;:::: "'0c:: sion avec une formulation plus mathématique : A = {3k, k E ru, 0 ~ k ~ 6}.
>- c::
o. .9
c::
0
u ü
.,,
:l
Si un ensemble E a un nombre fini d'éléments, on appelle cardinal de E le
2
o.
~ nombre d'éléments de E. On note ce nombre card(E).
"
:;
0
1-
.,,1 Exemples
0
c:
:l Dans l'ex emple précédent, card(A) = 7.
0
QJ ruet~ so nt des ensembles infinis , ils n'ont pas de cardinaux. Card(0 ) = O.

121
Chapitre 5 • Ensembles

Soit A et B deux ensembles. On dit que A est inclus dans B, et on note A c B,


quand tout élément de A est aussi élément de B . Donc : Ac B ~V x E A, x E B .
Si A c B, on dit que A est un sous-ensemble ou une partie de B. L'ensemble des
parties d'un ensemble Ese note P(E). Quel que soit l'ensemble E, on a E c E et
0cE.
Soit A un sous-ensemble de E. On appelle complémentaire deA dans E, que l' on
note CEA ou A, l'ensemble de tous les éléments de E qui n ' appartiennent pas à A .
x E CEA ~ (x E E /\ x e; A)

Exemples
Dans ru, le complémentaire de l'ensemble des nombres pairs est l'ensemble des
nombres impairs.
Dans IR{, le complémentaire de l'ensemble [l ;+oo[ est ]-oo ; l [.

Soit A et B deux ensembles. L'intersection de A et de B, que l'on note A n B, est


l'ensemble des éléments qui appartiennent à la fois à A et à B. Donc :
x E A n B ~ (x E A /\ x E B)

La réunion de A et de B, que l' on note Au B, est l'ensemble de tous les éléments


qui appartiennent à A ou à B (ou non exclusif). Donc:
x E A u B ~ (x E A vx E B)

Exemples
A= {0 ,·3·,6 ·9·
, , 12 ·1
, 5}
An B = {0 ;12}

Propriété 5.1
Quels que soient les ensembles A, B et C :
AnB=BnA AuB=BuA
An~uq=~nmu~nq Au~nq=~umn~uq
-0
0
c
:J
0 Ces propriétés montrent que l' intersection et la réunion sont commutatives et
li)
..--t distributives l'une par rapport à l 'autre.
0
N
@ Propriété 5.2
.......
J::
O'l
·;:::: Soit A une partie d ' un ensemble E et soit A son complémentaire dans E:
>- An0=0 Au0=A AnA=0 AuA=E
0.
0
u

5.1.2 Produit cartésien


Dans le tableau 5 .1 , les huit cases peuvent être repérées par un couple formé par le
numéro de la ligne, suivi du numéro de la colonne. Ainsi la case colorée en gris est
repérée par le couple (1 ;3).

122
5.1 · Langage ensembliste

Tableau 5.1

l 2 3 4

On obtient alors les huit couples: (l;l), (1;2), (1;3), (1;4), (2;1), (2;2), (2;3), (2;4).
Ces huit couples sont tous ceux que l'on peut former en mettant un élément de
l'ensemble E = { 1;2} en première position et un élément de F = { 1;2;3;4} en
deuxième position.
L'ensemble de ces huit couples forment un ensemble appelé produit cartésien de
E et F, noté E X F.
On aurait pu choisir de repérer chaque case par un couple formé par le numéro de
la colonne, suivi du numéro de la ligne. On obtient alors huit couples qui forment le
produit cartésien de F et de E.
Ces deux produits cartésiens ne sont pas égaux, même s'ils ont le même nombre
d'éléments.

Exemple
(1;3)E ExFmais(1;3)~ FxE.

Soit E et F deux ensembles. Le produit cartésien de E et F, que l'on note Ex F,


est l'ensemble de tous les couples formés par un élément de E en première position,
et un élément de Fen deuxième position.

ExF= {(x;y) , x E E,yE F}

De plus, si E et F sont des ensembles finis, card(E x F) = card(E) x card(F).


On peut faire le produit cartésien d'un ensemble avec lui-même. Ce produit
"'O
cartésien pourra se noter E 2 . Cette notation permet de simplifier certains quantifica-
0
c teurs:
:J
0 ~ • Au lieu d'écrire « V x E E, V y E E »,on peut écrire « V (x;y) E E 2 » .
li)

~ • Pour dire qu'il existe deux entiers naturels, on pourra écrire« ::3 (x;y) E N2 » .
..--t
0
N
"
@ ~ On peut généraliser la notion de produit cartésien à plus de deux ensembles avec
.......
J:: ~ la définition suivante .
O'l
·;:::: "'c:
>- 2
c:
Soit E 1, E2 , .. ., En n ensembles. Le produit cartésien E 1 x E 2 x ... x En est l'ensem-
0.
u
0 ·5
:::l
ble de tous les n-uplets formés par un élément de E 1 en première position, un
2o. élément de E 2 en deuxième position, ... , un élément de En en n-ième position.
~

~ E 1 xE2 x .. . XEn={(x 1,x2, .. .,xn),x 1 E E 1,x2 E E 2, ... ,XnEEn}


l-
i
"8c: De plus, si tous les ensembles sont finis :
:::l
0
QJ card(E1 x E2 x ... x En) = card(E1) x card(E2) x ... x card(En)

123
Chapitre 5 • Ensembles

5.2 RELATIONS BINAIRES

5.2.1 Exemple introductif


On examine l'implantation de trois PME informatiques, que l'on notera a, b et c,
dans quatre départements, que l'on notera A, C, H et P. Notons E et F les ensembles
{a, b, c} et {A, C, H, P}. La situation peut être décrite de plusieurs façons :
• Avec un tableau simple (tableau 5.2) :
Tableau 5.2

Nom de la PME a b c

Départements où elle est présente A, p H, p c

• Avec un tableau à double entrée (tableau 5.3) :


Tableau 5.3

A c H p

a oui non non oui

b non non oui oui

c non oui non non

• Avec une matrice : en ligne, de haut en bas, les trois PME dans l'ordre a, b, c; en
colonne, de gauche à droite, les quatre départements dans l' ordre A, C, H et P. On
code 0 pour non, 1 pour oui.
1 0 0 1
0 0 1 1
-0
0
c
:J
0 1 0 0
0
li)
..--t
• Avec un diagramme sagittal:
0
N
@
.......
J::
O'l
·;::::
>-
0.
0
u

Figure 5.1

124
5.2 • Relations binaires

• Avec une liste de couples : (a, A), (a, P), (b, H), (b, P), (c, C) qui est une partie du
produit cartésien Ex F.
Dans cet exemple, nous avons défini une relation « est présente dans le départe-
ment », entre certains éléments de E (appelé ensemble de départ) et certains
éléments de F (appelé ensemble d' arrivée). L'ensemble des couples en relation est
appelé graphe de la relation.
Si on note R cette relation, on écrit alors x R y pour dire que la PME x est
présente dans le département y. Par exemple, a R P.
Soit E et F deux ensembles non vides. Une relation binaire R de E vers F est
définie par la donnée du graphe, qui est une partie du produit cartésien Ex F: un
couple (x;y) appartient au graphe si et seulement six R y, avec (x;y) E Ex F
E est l'ensemble de départ, Fest l'ensemble d'arrivée.

5.2.2 Relation binaire sur un ensemble


Soit E un ensemble non vide. On peut définir une relation binaire R sur E par la
donnée de son graphe, qui est une partie du produit cartésien E2 . (x;y) appartient au
graphe si et seulement six R y, avec (x;y) E E 2 .

Exemples
Deux exemples simples de relations binaires sur des ensembles :
- Dans !Rl, l'inégalité : x R y<:::> x :::;; y.
- Dans ru, la congruence modulo n: x R y<:::> x = y[n] (n est un entier naturel non
nul).

Soit R une relation définie sur un ensemble E non vide :


• Rest réflexive si et seulement si : '\/ x E E, x R x.
• Rest symétrique si et seulement si : '\/ (x;y) E E 2 , x R y<::::> y R x.
• Rest antisymétrique si et seulement si:'\/ (x;y) E E2 , (x R y/\ y R x) => x =y.
• Rest transitive si et seulement si : '\/ (x;y;z) E E 3 , (x R y/\ y R z) => x R z.
"'O
0
c
Exemples
:J
0 Dans !Rl, la relation d'inégalité :
li)
.,,:<:; x R y<:::> x:::;; y est réflexive, antisymétrique et transitive .
..--t c::
:l
0
N
~ Dans ru, la relation de congruence modulo n :
" x R y <:::> x = y[n] est réflexive, symétrique et transitive.
@
.......
~ 0
J:: :;
O'l
·;:::: "'0c:: Soit R une relation définie sur un ensemble E non vide. R est une relation
>- c::
o. .9
c::
d'équivalence si et seulement si elle est réflexive, symétrique et transitive.
0
u .,,ü
:l

2
o.
~ Exemples
"
:;
1-
0 Dans ru, la relation de congruence modulo n: x R y<:::> x = y[n] est une relation
.,,
0
1 d'équivalence.
c:
:l Dans !Rl, la relation d'inégalité : x R y <:::> x:::;; y n'est pas une relation d'équivalence
0
QJ car elle n'est pas symétrique.

125
Chapitre 5 • Ensembles

Soit R une relation définie sur un ensemble E non vide. R est une relation
d 'ordre si et seulement si elle est réflexive, antisymétrique et transitive.

Exemples
Dans ffi{, la relation d'inégalité : x R y Ç::> x ~ y est une relation d'ordre.
Dans ru, la relation de congruence modulo n: x R y Ç::> x = y[n] n'est pas une rela-
tion d'ordre car elle n'est pas antisymétrique.

Soit Rune relation d' ordre définie sur un ensemble E non vide. Rest une rela-
tion d 'ordre total si et seulement si V (x;y) E E2, (x R y v y R x). Sinon, Rest une
relation d ' ordre partiel.

Exemple
Dans ffi{, la relation d'inégalité : x R y Ç::> x ~ y est une relation d'ordre total car,
quels que soient les réels x et y, on a soit x ~ y soit y ~ x.

5.3 APPLICATIONS D'UN ENSEMBLE DANS UN ENSEMBLE


Une application d'un ensemble E vers un ensemble F est une relation binaire de
E vers F qui, à tout élément de E, associe un unique élément de F

On notef: E ---7 F etf(x) = y. On dit que y est l'image de x etx est un antécédent
xHy
dey.

Exemple
E-7 F
Soit E = {O; l ;2;3}, F = {O ; l ;2;3;4;5} et f : 2 .
X-?X

L' image de 0 est 0, l'image de l est l, l'image de 2 est 4 mais 3 n'a pas d'image
car 3 2 ~ F. (n'e st pas une application de Edans F. Par contre, fest une application
de E dans ru.

"'O
5.3.1 Image directe - Image réciproque
0
c
:J Soitf une application de E dans F et soit A une partie de E. L'image directe de A
0
li)
..--t
par I est l'ensemble des images des éléments de A. Cet ensemble se notef(A).
0
N l (A) = {f(x), x E A}
@
.......
J:: Exemple
O'l
·;::::
>- Soit f l'application de ffi{ dans ffi{ définie par f(x) = 3x + l.
0.
0 Soit A= {0;4;5}. L'image directe de A est f(A) = {l ;l 3; 16}.
u Soit A = [2 ;7]. 2 ~ x~ 7 Ç::> 7 ~ 3x + l ~ 22 donc f(A) = [7 ;22] .

Soitf une application de E dans F et soit B une partie de F. L'image réciproque


de B par I est l'ensemble des éléments de E qui ont leur image dans B. Cet ensemble
se note 1-1(B) .
1- 1(B) = {x E E,l(x) E B}

126
5.3 • Applications d'un ensemble dans un ensemble

Exemple
Soit f l'application de fi{ dans fi{ définie par f(x) = 3x + 1.
Soit B = [10;16], 10 :::;; 3x + 1 :::;; 16 <=> 9 :::;; 3x ::;; 15 <=> 3 :::;; x ::;; 5 donc f - 1 (B) = [3;5].

5.3.2 1njection - Surjection - Bijection


Soitfune application de E dans F.f est une injection (ou application injective) si et
seulement si tout élément de F possède au plus un antécédent, ce qui revient à dire
que deux éléments distincts de E ont deux images distinctes.
'\! x E E, '\! x' E E, x i= x '-::::::; f(x) i= f(x')

Exemples
Soit f l'application de fi{ dans fi{ définie par f(x) = x 2 • f n'est pas injective car on
peut trouver des nombres distincts qui ont la même image : par exemple, 3 et - 3
ont la même image 9 .
Soit f l'application de fi{ dans fi{ définie par f(x) = 2x - 1. Pour montrer que f est
injective, on va utiliser la contraposée « f(x) = f(x') => x = x ».
f(x) = f(x) => 2x - 1 = 2x - 1 => 2x = 2x' => x = x' donc f est injective.

Soitf une application de E dans F. f est une surjection (ou application surjec-
tive) si et seulement si tout élément de F possède au moins un antécédent.
'\!y E F, 3 x E E, y= f(x)

Exemples
Soit f l'application de fi{ dans fi{ définie par f(x) = x 2 . f n 'e st pas une surjection car
tout nombre strictement négatif n'a pas d'antécédent.
Soit f l' application de fi{ dans fi{ définie par f(x) = 2x - 1. f est une surjection car
tout nombre réel y possède un antécédent qui est (y+ 1)/2 .

Soitfune application de E dans F.f est une bijection (ou application bijective) si
"'O
0
et seulement si f est à la fois une injection et une surjection.
c
:J
0
li)
.,,:<:; Exemple
..--t c::
:l
0
N
~
L'application f de fi{ dans fi{ définie par f(x) = 2x - 1 est une bijection puisqu'on a
"
@
.......
~ 0
vu qu'elle était une injection et une surjection.
J:: :;
O'l
·;:::: "'0c::
>-
o.
c::
c:: La caractéristique d'une bijection, c'est que chaque élément de l' ensemble de
0 .9
u .,, départ a une seule image, et chaque élément de l ensemble d'arrivée a un seul
ü
:l

2 antécédent.
o.
~
"
:; En informatique, les injections et les bijections ont un rôle important dans le
0

.,, codage d'informations : en effet, chaque « objet» doit avoir son propre code, car il
1-
1
0
c:
:l
est très souvent indispensable qu' un même code ne puisse pas être attribué à deux
0
QJ objets distincts.

127
Chapitre 5 • Ensembles

5.3.3 Composition d'applications


Soit f une application de E dans F et g une application de F dans G. L'application
composée de/ par g est l'application de E dans G qui, à tout élément de E, associe
le nombre g[f(x)]. Cette application se note g 0 f
Vx E E, g 0 f(x) = g[!Cx)]
Exemple
Soit f l'application de IRl. dans IRl. définie par f(x) = x 2 et g l'application de IRl. dans IRl.
définie par g(x) = 0,5x + 4 . L'image de 3 par la composée de f par g est:
g o {(3) = g(f(3)] = g(3 2 ) = g(9) = Ü,5 X 9 + 4 = 8,5
V x E !Rl., g 0 f(x) = g[f(x)] = g(x2 ) = 0,5x 2 + 4.
L'application g o f est donc définie de IRl. dans IRl. par g o f(x) = 0,5x 2 + 4.

Nous admettrons les propriétés suivantes.

Propriété 5.3
La composée de deux injections est une injection.
La composée de deux surjections est une surjection.
La composée de deux bijections est une bijection.

5.3.4 Bijection réciproque


Considérons! de E ={ 1;2;3 } dans F ={ a;b;c} définie par :f(l) =a ;f(2) = c;
f(3) = b. C' est une bijection puisque chaque élément de E a une seule image (donc
f est une application), et chaque élément de Fa un seul antécédent.
On peut alors définir une bijection réciproque de /, de F dans E, que l'on
note 1-1, telle que :
1- 1(a) = 1 ;f-1(b) = 3 ;f-1(c) = 2
Cette applicationf- 1 est aussi une bijection.
"'O
0
c Soitf une bijection de E dans F. Il existe une bijection réciproque de F dans E,
0
:J
notée 1-1 telle que :
li)

V (x;y) Ex F,f(x) =y<=> 1-1(y) = x


..--t
0 E
N
@
.......
Il ne faut pas confondref- 1(B) etf- 1(y). Dans le premier cas, Best un ensemble et
1
J::
O'l / - (B) est l' image réciproque de B parf: c'est donc un ensemble. Dans le deuxième
·;::::
>-
0.
cas, y est un élément,f- 1 désigne une bijection réciproque etf- 1(y) est alors l'unique
u
0 antécédent de y par f: c'est donc un élément.

Propriété 5.4
Soitfune bijection de E dans F et g une bijection de F dans G.
Alors g 0 f est une bijection de E dans G qui possède une bijection réciproque
(g 0 j)-1=1-1 0 g-1.

128
TD - Relation binaire dans un ensemble

Le schéma de la figure 5.2 aide à comprendre les bijections entre ensembles et à


retenir la formule précédente.

goj

/ f g ~
E F G
1-' g
- 1

~
1-' 0 g-1
/
Figure 5.2

TD - Relation binaire dans un ensemble

On donne le dessin de la fig. 5.3, représentant des liens entre des éléments a, b, cet d.
a d

b c
Figure 5.3

"'O
Partie A
0
c
:J On considère le dessin comme étant la représentation d'une relation binaire, que l'on
0
li)
.,,:<:; note R . définie sur l'ensemble S = { a;b;c;d} .
..--t c::
:l
0
S2 .
~
N
" a) Écrire tous les éléments qui sont en relation sous la forme x R y, avec (x;y) E
@
.......
~
0
J:: :; b) La relation R est elle réflexive ?
O'l
·;:::: "'0c::
>- c::
o.
0
c::
.9 c) La relation R est elle symétrique ?
u ü
.,,
:l

2
o.
d) La relation R est elle transitive ?
~
"
:; e) Au minimum, quelles flèches doit-on ajouter pour obtenir la représentation d'une
0
1-
.,,01 relation réflexive ?
c:
:l
0
QJ f) Même question avec une relation symétrique.

129
Chapitre 5 • Ensembles

g) Même question avec une relation transitive.


h) Comment doit-on compléter le dessin pour obtenir une relation d'équivalence?

Partie B
On considère maintenant le dessin comme étant la représentation graphique d'une
fonction , que 1'on note f, définie sur 1'ensemble S.
a) Expliquer pourquoi! est une application.
b) f est elle une injection ?
c)f est elle une surjection?
d) Quelle est l'image directe de {a;b} parf?
e) Quelle est l'image réciproque de {a;b} par f?
f) Déterminer1- 1[{( { a;b} )] etf [f"- 1( { a;b} )].

Partie C
Quel que soit le réel x positif, on appelle partie entière de x, que l'on note E(x), le
plus grand entier naturel inférieur ou égal à x. Par exemple: E(5, 1) = 5 ; E(IO) = 10;
E(3,14) = 3.
Dans 1' ensemble S ={ 3, 1;2,4;4,2;4,8}, on définit une relation binaire R par :
V (x;y) E S2, X R y~ (x :;t: y)/\ (2x + y E ru V E(x) = E(y))
a) Montrer que 2,4 R 4,2. Est-ce que 2,4 R 4,8 ?
b) Déterminer tous les couples d'éléments de S qui sont en relation.
c) Faire une représentation graphique de la relation.
d) La relation 8t est-elle réflexive ? Symétrique ? Transitive ?
"'O
0
c
:J
0
LI)
Solution du TD
..--t
0
N
@ Partie A
.......
..c
O'l
·;::::
a) Une flèche relie a à b donc a R b. On a également b R d, d R b et c R d.
>-
Q.
0 b) R n'est pas réflexive car aucun élément n ' est en relation avec lui-même (en fait,
u
il suffit qu' il y ait un élément qui ne soit pas en relation avec lui-même).
c) R n'est pas symétrique. On a, par exemple, a R b sans avoir b R a.
d) R n'est pas transitive. En effet, on a a Rb et b Rd mais on n ' a pas a Rd.
e) 11 faut ajouter une boucle sur chaque élément.

130
TD - Relation binaire dans un ensemble

t) Dès qu'il y a une flèche entre deux éléments, il faut ajouter la flèche «retour». Il
faut donc relier b à a, et d à c.
g) Quand deux flèches se suivent, il faut ajouter la flèche «directe». Comme on a
a R b et b R d, il faut ajouter la flèche de a à d. De même, puisque l'on a c R d et
d Rb, il faut ajouter la flèche c Rb.

h) En ajoutant d'abord les boucles, puis les flèches « retour », puis les flèches
«directes», on constate qu'il faut relier chaque élément à lui-même et aux trois
autres (ce qui fera 16 flèches).

Partie B
a) La flèche qui relie a à b signifie quef(a) = b. On a aussif(b) = d,f(d) = b, f(c) = d.
Ainsi, chaque élément a une unique image, la fonction f est donc une application
dans S.
b)fn'est pas une injection car a et dont la même image (b et c aussi).
c)fn'est pas une surjection car a n'a pas d 'antécédent (c non plus).
d)f(a) = b,f(b) = d donc l'image directe de {a;b} estf({a;b}) = {b;d}.

e) a n'a pas d'antécédent, b a pour antécédents a et d, donc 1-1c{a;b}) = { a;d}.


t)f- 1[f({a;b})] =f- 1({b;d})= {a;b; c;d } =S

f[f- 1({a ;b})] =f({a;d}) = {b}

Partie C
a) 2,4 est en relation avec 4,2 car 2,4 -:t= 4,2 et 2 x 2,4 + 4,2 = 9, qui est un entier
naturel. Mais 2,4 n'est pas en relation avec 4,8 car on n' a ni 2 x 2,4 + 4,8 E ru ni
E(2,4) = E(4,8).

"'O
0
b) On a déjà vu que 2,4 R 4,2. On a aussi 4,2 R 4,8 ; 4,8 R 4,2 et 3, 1 R 4,8.
c
:J
0 c)
li)
.,,:<:;
c::
..--t :l 2,4 4,8
0 ~
N
"
@
.......
~ 0
J:: :;
O'l
·;:::: "'0c::
>- c::
o. .9
c::
0
u ü
.,,
:l
4,2 3, l
2
o.
~ Figure 5.4
"
:;
0
1-
.,,1
0
c:
:l
d) On retrouve le même graphique que celui étudié en partie A, à part le nom des
0
QJ sommets. La relation R n'est ni réflexive, ni symétrique, ni transitive.

131
Chapitre 5 • Ensembles

Exercices corrigés

Il) Donner en extension l'ensemble A des multiples de 3 compris entre 20 et 40.


Définir A en compréhension avec une formulation mathématique.

m Soit A ={1 ;2;4;8;16;32} . Définir A en compréhension avec une phrase de


français, puis avec une formulation mathématique.
aJ Soit A l'ensemble des multiples de 7 compris entre 100 et 1 000. Quel est le
cardinal de C?
BJ Donner en extension l'ensemble A des valeurs affichées par cet algorithme:
Variables : /, J entiers
Début
Pour Ide l à 3 Faire
Pour J de 0 à 2 Faire
1 Afficher l 0 I+ J

Fin Pour
Fin Pour
Fin

m Donner en extension l'ensemble A des valeurs affichées par cet algorithme :

Variables : /, J entiers
Début
Pour Ide l à 3 Faire
Pour J de 0 à 2 Faire
1 Afficher lx}

Fin Pour
Fin Pour
Fin
"'O
0
c ~ On considère les ensembles suivants: E ={ 1·2·3A·5·fr7} A ={ 1·3·5·7}
0
:J l:A:ill ''''''' ''''
LI)
B ={2;4;6} et C ={ 1;3;6}.
..--t
0
N a) Déterminer A n B, A n C, B n C.
@
.......
..c b) Déterminer Au B, Au C, Bu C.
O'l
·;::::
>-
Q.
c) Déterminer A, complémentaire de A dans E. Déterminer ensuite B et C.
0
u ~ A={ 1 A·5·fr8·9 } B ={2·3-4·5·9} et C ={ 1·2-4·7·10}
m:.1111111 '''''' '''' ''''
a) Déterminer Bu C puis An (Bu C).
b) Déterminer A n B , A n C puis (A n B) u (A n C).
c) Quelle propriété vient-on d' illustrer ?

132
Exercices corrigés

m Soit E ={0;1 }. Déterminer P(E) .

m Soit E ={ a;b;c}. Déterminer P(E).

J'lln A et B étant deux parties d'un ensemble E, on définit l' ensemble A~ B (lire A
delta B), appelé différence symétrique de A et B, par :
A ~ B = {x E Eix E Au B A x Ê A n B}
a) Représenter A~ B sur un diagramme. Faire la table de vérité de A~ B.
b) Dans l'ensemble des entiers naturels, on considère les ensembles suivants :
A= { l ·2·3 ·4·5·6} B = {l ·3·5·7} et C = {3 ·4·5·8}
' ' ' ' ' ' ' ' ' ' ' ' .
Comparer les ensembles A ~ (B ~ C) et (A ~ B) ~ C.
c) À l'aide d'une table de vérité, montrer que, quels que soient les ensembles A, B et
C, on a A ~ (B ~ C) = (A ~ B) ~ C.

J'lll On considère les ensembles E = {1;2} et F = {a;b;c} . Montrer que E x F et


F x E ont le même cardinal mais que ce sont deux ensembles différents.

J'lt1'1 On donne l'algorithme suivant :


Variables : i, j, k, S (entiers)
Début
S prend la valeur 0
Pour i de 1 à 3 Faire
Pour j de 1 à 50 Faire
Pour k de 1 à 12 Faire
1 S prend la valeur S+ 1

Fin Pour
Fin Pour
Fin Pour
Afficher S
Fin

"'O
0
Quelle valeur affiche l'algorithme ? Écrire S comme le cardinal d'un produit carté-
c
:J sien d'ensembles à préciser.
0
li)
.,,:<:;
..--t
0
c::
:l
~
J'llJ A et B étant deux ensembles, on définit l'ensemble A \ B (lire A moins B) et
N
" appelé différence de A et de B, comme étant l'ensemble des éléments de A qui ne
@
.......
~ sont pas dans B.
0
J:: :;
O'l
·;:::: "'0c::
>- c:: a) Écrire une définition de A \ B à l'aide de symboles mathématiques. Faire la table
o. .9
c::

.,, de vérité de A\ B.
0
u ü
:l

2
o.
~ b) Soit A= {1;2;3;4;5;6}, B = {1 ;3;5;7} et C = {3;4;5;8}. Déterminer (A\ B) puis
" (A \ B) \ C. Déterminer (B \ C) puis A \ (B \ C).
:;
0
1-
.,,01 Est-ce que (A \ B) \ C = A \ (B \ C) ?
c:
:l
0
QJ c) Déterminer A\ (B n C) puis (A\ B) u (A\ C).

133
Chapitre 5 • Ensembles

d) À l'aide d'une table de vérité, montrer que, quels que soient les ensembles A, B et
C, on a:
A \ (B n C) = (A \ B) u (A \ C)
1'111 On dit que des parties non vides d'un ensemble E forment une partition de E
lorsque leur réunion est égale à E et qu'elles sont deux à deux disjointes.
a) Soit E = {a;b;c;d;e;f;g}. Donner un exemple de partition de E en trois parties.
b) Soit F = {a;b;c;d}. Combien peut-on faire de partitions de Fen deux parties ?

Pour chacun des exercices de 5.15 à 5.20, étudier si la relation R est réflexive,
symétrique, antisymétrique, transitive. Éventuellement, dire si c'est une relation
d'équivalence ou d'ordre (total ou partiel).

1'1 ..1 Dans ~' x R y <=> x < y.


l'lld Dans ru, x R y<=> x est un diviseur de y.

l'lf~ Dans ru, x R y<=> x + y est multiple de 2.

l'll:J Soit E un ensemble non vide. Dans P(E) , A RB <=> A c B.

l'IQl Soit E un ensemble non vide. Dans P(E), A RB <=> A n B = 0.

'*ln Dans~' X Ry <=> xy ~ O.


1*..fll Sur l'ensemble des nombres de l'arbre (appelé arbre binaire) présenté
fig. 5.5, on définit une relation binaire par x R y si et seulement six= y ou on peut
passer de x à y (ou de y à x) par un chemin qui descend toujours à droite.

"'O
0
c
:J
0
LI)
..--t
0
N
@
.......
..c Figure 5.5
O'l
·;::::
>-
Q.
0 a) Expliquer pourquoi, simplement d'après sa définition, on peut affirmer que R est
u
réflexive et symétrique.
b) Montrer que R est transitive.
l*l'I Soitf l'application de E dans F définie par le diagramme de la fig. 5.6.
a) f est elle injective ? Surjective ?

134
Exercices corrigés

E ·1 F

·2

·3
.4
.5

Figure 5.6

b) Soit A= {a;b;c} et A'= {c;d}. Déterminerf(A) etf(A').


c) Déterminer f(E).
d) Soit B = {1;2;3} et B' = {4} . Déterminer f - 1(B) etf- 1(B').
l*JJ E = { a;b;c;d} , F = { 1;2;3;4;5}. f est l'application de E vers F telle que
fia)= 2 , f(b) = 3 , f(c) = 5 , f(d) = 3.
a) f est-elle injective ? Surjective ? Bijective ?
b) Quelle est l'image directe deA = {b;c;d} parf?
c) Quelle est l ' image réciproque de B = { 1;2;3} par f?
l*JI E = {0;1;2;3;4;5;6;7}, F = {0;1;2;3 }.fest l' application de E dans F, qui à tout
élément de E, associe son reste dans la division euclidienne par 3.
a) f est-elle une injection? Une surjection?
b) Soit A= {1;3;4}, déterminerf- 1 [f(A)]. Est-ce quef- 1 [f(A)] =A?
c) Soit B = {2;3}, déterminerf [f- 1(B)]. Est-ce quef [f- 1(B)] = B?
"'O
0

0
c
:J l*J1 Soitfl'application de Iffi. dans Iffi. définie parj(x) = 4x + 10.
li)
.,,:<:;
..--t
0
c::
:l a) f est-elle une injection ?
~
N
"
@
.......
~ b) f est-elle une surjection ?
0
J:: :;
O'l
·;:::: "'0c:: c) f est-elle une bijection ?
>- c::
o. .9
c::

u
0 d) Déterminer l ' image directe de [2;3]et de [O;+oo[ .
.,,ü
:l

2
o.
~
e) Déterminer l'image réciproque de [O;+oo[.
"
:;
1-
0

.,,1
l*P' E = {a;b;c;d}, F = {1;2;3}, G = {a,·,B,· r}. On définit les applications f de E
0
c:
:l
vers F et g de F vers G de la façon suivante: f(a) = 2, f(b ) = 1, f( c) = 3, f(d) = 2,
0
QJ g( l) = y, g(2) = a; g(3) = j3.

135
Chapitre 5 • Ensembles

a) Les applications! et g sont-elles des injections? Des surjections? Des bijections?


b) Définir l'application g o f
c) Peut-on définir l'application réciproque de f? de g ?
l"fJ~ E = {0;1;2;3;4;5;6}. On définit les applications! et g de E dans Ede la façon
suivante :
• Vx E E, f(x) est le reste de la division euclidienne de 3x + 2 par 7.
• Vx E E, g(x) est le reste de la division euclidienne de 4x + 2 par 7.
a) Remplir le tableau 5.4.
Tableau 5.4

X 0 l 2 3 4 5 6

f(.x)

g(x)

g o f(.x)

b) Expliquer pourquoi on peut définir les applications réciproques de f, de g et de


g of
c) Que vaut (g o j)- 1(6) ? Calculerf- 1 o g- 1(6) Le résultat était-il prévisible?
l"f}:J Soitf et g les applications de IR{ dans IR{ définies par f(x) =3x et g(x) = 2x + 5.
Définir les applications g o f etf o g.
l"fJl Soitf et g les applications de IR{ dans IR{ définies par f(x) = 2x et g(x) =x(x + 1).
Définir les applications g o f et f o g.

1"'1111 Soit P le plan rapporté à un repère. Dans ce plan P, on considère l'application


qui, à tout point M de coordonnées (x;y) associe le point M' de coordonnées (x + y;
-0
x - y).
0
c
:J a) Soit Q = {A;B;C;D;E} l'ensemble des cinq points de la figure 5.7. Déterminer
0
LI) l' image de Q.
.--t
1
0
N 1
1 1 1 1
@ 1 1 1
.......
J::
Ol
- -2 - - - -t -- -+ ---;----
A C
~ --
' 8

·;:::: 1
>- 1
0..
0
10 'E 1 1
u - - 1 - - - - • - - - _._ - - - ...1 - - - - l.. - -
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
0
0 2 3 4
1 1 1

Figure 5.7

136
Exercices corrigés

b) Soit F(4;3). Déterminer f - 1( { F}).


c) Montrer que, quel que soit le point M se trouvant sur l'axe des abscisses, alors son
image M' se trouve sur une droite dont on donnera l'équation.
l"IJI On définit une application f de E = {-2;-1;0;1;2} dans F = {0;1;2;3;4}
2
par j(x) = x . Dans E, on considère les parties A = {-2;-l ;0} et A'= {0; 1}.
a) Est-ce quej(A nA') =f(A) nj(A')?
b) Est-ce quej(A u A')= f(A) u f(A')?
c) Est-ce que J(A)= f (A) ?
l"lt1'1 on définit une application! de E = {-2;-1;0;1;2} dans F = {0;1;2;3;4} par
j(x) = x 2 . Dans F, on considère les parties B = {0;1 ;2} et B' = {2;4}.
a) Est-ce quef- 1(B n B') = f- 1(B) nf- 1(B')?
b) Est-ce quef- 1(B u B') = f - 1(B) u J-1(B')?
c) Est-ce que f - 1 (B )= f - (B)
1
?
l"IJ:J Pour s'échanger des messages codés, Alice et Bob utilisent leur clavier télé-
phonique. Le chiffre 2 sert à coder les lettres A, B, C ; le chiffre 3 sert à coder les
lettres D, E, F etc.
a) Quel nombre Alice va-t-elle envoyer à Bob pour lui dire BRAVO?
b) Bob est-il sûr de comprendre ?
c) Quelle propriété de l'application : lettre H chiffre n ' est pas respectée, qm
permettrait de décoder le message de façon certaine ?
d) Proposer une adaptation de la méthode permettant d'avoir un décodage unique.
1"111 a) Pour un certain type de codage, on a besoin de coder les lettres A, B, C, D.
On commence par attribuer un nombre à chaque lettre: A= 0, B = 1, C = 2, D = 3.
Puis on multiplie par 2 le nombre et on ajoute 3. On cherche ensuite le reste de la
"'O
0
c division euclidienne par 4. À ce reste correspond alors une lettre qui est la lettre cryptée.
:J
0
li)
.,,:<:; Comment seront cryptées les lettres A, B, C, D? Ce type de codage est-il acceptable?
..--t c::
0
:l
~
b) La méthode précédente n'étant pas satisfaisante, on décide de modifier le
N
" procédé. On multiplie par 3 le nombre et on ajoute 2. Et on cherche encore le reste
@
.......
~0
J:: :; de la division euclidienne par 4. Vérifier que l' on a un codage bijectif.
O'l
·;:::: "'0c::
>-
o.
0
c::
c::
.9
lfi1 À
chaque lettre, à part le W que l' on fusionne avec le V, on attribue un
u ü
.,, nombre suivant la correspondance du tableau 5.5.
:l

2
o.
~
"
:;
On code chaque lettre par un couple (q;r), où q et r sont le quotient et le reste dans la
0
1- division euclidienne par 5 du nombre associé à la lettre. Pour simplifier, on écrira le
.,,01
c:
:l
code sous forme d'un nombre à deux chiffres obtenu en concaténant les nombres q
0
QJ et r.

137
Chapitre 5 • Ensembles

Tableau 5.5

lettre A B c D E F G H 1 J K L M

nombre 0 l 2 3 4 5 6 7 8 9 10 ll l2

lettre N 0 p Q R s T u V,W X y z
nombre 13 14 l5 16 l7 l8 19 20 21 22 23 24

a) Montrer que la lettre J est codée 14.


b) Comment se codera le mot BRAVO ?
c) Montrer que ce codage est injectif.

Solutions
m A ={21;24;27;30;33 ;36;39} = {3k, k E ru, 7 :5'k :5'13}.
m A est l'ensemble des six premières puissances de 2. A = { 2k, k
0::;; k::;; 5}.
E ru'

m Le plus petit multiple de 7 supérieurs à 100 est 7 X 15 = 105 et le plus grand


inférieur à 1 000 est 7 X 142 = 994. Donc A ={7 X 15;7 X 16;7 X 17; ... ;7 X 141 ;
7 x 142}. Par conséquent, card(A) = 142 - 15 + 1 = 128.
aJ A={ 10;11 ;12;20;21;22;30;31;32}
m Les valeurs successives affichées sont : 0, 1, 2, 0, 2, 4, 0, 3, 6. Donc
A={ 0;1;2;3;4;6 }.
m a) A n B = { }, A n C = {1;3}, B n C = {6}
"'O
0 b) Au B = E, Au C = {1;3;5;6;7}, Bu C = {1;2;3;4;6}.
c - - -
:J
0 c) A = {2;4;6} = B, B =A, C = {2;4;5;7}
LI)
..--t
0
N
r.s:i a) Bu C = {1·2·3·4·5·7·9·10} An (Bu C) = {1'4·5·9}
11:.1111 ''''''' ' '''
@
....... b)A nB= {4;5;9},A n C= {1;4}, (A nB) u (An C) = {1;4;5;9} .
..c
O'l
·;::::
>- c) On vient d' illustrer la formule An (Bu C) =(An B) u (An C) qui est la distri-
Q.

u
0 butivité de l' intersection par rapport à la réunion.
m E possède deux éléments donc les parties de E possèdent soit 0, soit 1
soit 2 éléments. Ce sont donc l' ensemble vide, les singletons {0} et {1 }, et E lui-
même. Donc P(E) = {0,{0},{ 1 },E}.
6) P(E) = {0,{a},{b},{c}, {a;b },{a;c },{b;c },E}

138
Exercices corrigés

1'111] a) A dB est la partie colorée de la figure 5.8. La table de vérité est présentée
par le tableau 5.6.

B
A

Figure 5.8

Tableau 5.6

A B AA 8
0 0 0

0 l l

l 0 l

l l 0

b) Bd C = { 1;4;7;8}, Ad (Bd C) = {2;3;5;6;7;8}


Ad B = {2;4;6;7}, (Ad B) d C = {2;3;5;6;7;8}
Avec les trois ensembles donnés, A d (B d C) = (A dB) d C.
c)
Tableau 5.7

A B c BAC A A (8 A Q AAB (A A 8) AC

0 0 0 0 0 0 0
"'O
0
c 0 0 l l l 0 l
:J
0
li)
.,,:<:; 0 l 0 l l l l
..--t c::
:l
0 ~
N
" 0 l l 0 0 l 0
@
.......
~ 0
J:: :;
O'l
·;:::: "'0c:: l 0 0 0 l l l
>- c::
o. .9
c::
0
u l 0 l l 0 l 0
.,,ü
:l

2
o.
~ l l 0 l 0 0 0
"
:;
0
1-
.,,
0
1 l l l 0 l 0 l
c:
:l
0
QJ

139
Chapitre 5 • Ensembles

Les colonnes colorées sont les mêmes donc A Li (B Li C) = (A Li B) Li C quels que


soient les ensembles A, B et C.
1'111 card(E X F)= card(E) X card(F) = 2 X 3 = 6 et de même card(F X E)
= card(F) x card(E) = 6.
Mais (l;a) E E x F alors que (l;a) ~ F x E donc E x F ;i= F x E.
l'lt~ La valeur affichée sera S = 3 x 50 x 12 = 1 800. Si E = { 1;2;3},
F = { 1;2;3 ;... ;49;50}, G = {1;2; ... ;12} alors S = card(E) x card(F) x card( G)
l'llJ a) A\ B = {x, x E A/\ x ~ B}
Tableau 5.8

A B A\B

0 0 0

0 1 0

1 0 1

1 1 0

b) (A \B) = {2;4;6} (A\B)\C= {2;6}


(B\C) ={ 1;7} A\(B\C)={2;3;4;5 ;6}
On constate que (A\B)\C -t= A\(B\C)
c) B n C = { 3 ;5 } A\ (B n C )= { 1;2;4;6}
(A \ B) = {2;4 ;6} et (A \ C) = { 1;2;6} donc (A \ B) u (A \ C) = { 1;2;4;6}.
Sur cet exemple, on constate que A \ (B n C) = (A \ B) u (A \ C).
d)
Tableau 5.9
"'O
0
c
:J
A B c Bn C A\ (Bn C) A\B A\C (A \ B) u (A \ C)
0
LI)
..--t
0 0 0 0 0 0 0 0
0
N
0 0 1 0 0 0 0 0
@
.......
..c 0 1 0 0 0 0 0 0
O'l
·;::::
>-
Q. 0 1 1 1 0 0 0 0
0
u 1
1 0 0 0 1 1 1

1 0 1 0 1 1 0 1

1 1 0 0 1 0 1 1

1 1 1 1 0 0 0 0

140
Exercices corrigés

D'après la table de vérité, quels que soient les ensembles A, B et C :


A \ (B n C) = (A \ B) u (A \ C)
1'111 a) Il suffit de répartir les 6 éléments de E dans trois sous-ensembles, chaque
élément ne se trouvant que dans un seul sous-ensemble, sans laisser un sous-
ensemble vide. Par exemple, on peut prendre E 1 = { 1;2}, E 2 = { 3;4;5}, E 3 = { 6}.
b) On peut faire des partitions avec une partie avec un seul élément, l'autre partie en
ayant alors nécessairement trois : il y a quatre façons de choisir l'élément qui sera
seul, donc on a quatre partitions« un élément+ trois éléments». On peut aussi faire
des partitions « 2 éléments + 2 éléments ». Il y a trois façons de choisir l'élément
avec lequel sera a: avec b, avec cou avec d. En tout, il y a donc 4 + 3 = 7 partitions
de F en deux parties.
1'1 ..1 R n'est pas réflexive car on n'a pas x R x pour tout x réel (par exemple, on
n'a pas 1 < 1).
R n'est pas symétrique car x R y n'implique pas y R x (par exemple, 2 < 3 mais on
n'a pas 3 < 2).
Rest transitive car, pour tous nombres x, y et z, si on a x < y et y < z alors x < z.
l'lld Rest réflexive car tout nombre entier naturel est diviseur de lui-même.
R est antisymétrique car si x divise y et y divise x, alors x = y.
Rest transitive car six divise y et y divise z, alors x divisez.
La relation Rest donc une relation d' ordre. Et c'est un ordre partiel, car pour deux
entiers naturels quelconques x et y, on n'a pas forcément x qui divise y ou y qui
divise x.
l'if~ R est réflexive car pour tout entier naturel x, x + x = 2x est multiple de 2.
Rest symétrique car six + y est multiple de 2, alors y + x aussi.
Rest transitive car six + y est multiple de 2 et y + z aussi, alors x + y = 2k, avec
"'O
0
c k E ru, y + Z = 2k', avec k' E ru, et on a alors X + y + y + Z = 2k + 2k'
:J
0
li)
.,,:<:; donc x + z = 2(k + k' - y) qui est un multiple de 2.
c::
..--t
0
:l
~
La relation R est donc une relation d 'équivalence.
N
"
@
.......
~
0
l'll:J Rest réflexive car tout ensemble est inclus dans lui-même.
J:: :;
O'l
·;:::: "'0c::
c::
R est antisymétrique car si A c B et B c A alors A = B.
>-
o. c::

u
0 .9
ü Rest transitive car si Ac B et B c C alors A c C.
.,,
:l

2
o.
~
La relation Rest donc une relation d'ordre. L'ordre est partiel, car pour deux parties
" quelconques de P(E), il n'y en a pas forcément une incluse dans l'autre.
:;
0
1-
.,, l'IQl R n'est pas réflexi ve car pour tout A, An A= A =t:. 0 .
0
1

c:
:l
0
QJ Rest symétrique car si An B =0 alors B n A =0 .
141
Chapitre 5 • Ensembles

R n'est pas transitive car An B = 0 et B n C = 0 n'implique pas nécessairement


An C = 0 (contre-exemple avec A= {1;2}, B = {3;4}, C = { 1;5 }).
1-t4fln Rest réflexive car pour tout x réel, x2 ~O .
R est symétrique car si xy ~ 0 alors yx ~ O.
Rest transitive car si xy ~ 0 et yz ~ 0 alors xyyz ~ 0 d'où xy2z ~ 0 puis xz ~O.
1-t..fll a) Soit E = { 1;2;3;4;5;6;7;8;9}. Tout élément de E est en relation avec lui-
même d'après la partie « x = y » de la définition, donc R est réflexive. Si x R y
alors y R x d'après la partie « ... de x à y (ou de y à x) ... » de la définition donc R
est symétrique.
b) On doit montrer que V (x;y;z) E E 3 , x R y et y R z ~ x R z. Les cas où deux
nombres sont égaux sont évidents. Il suffit d'examiner tous les cas où les trois
nombres sont différents. On a 1 R 6 et 6 R 8 ~ 1 R 8 et 2 R 4 et 4 R 5 ~ 2 R 5
donc R est transitive. On peut donc dire que R est une relation d'équivalence.
1-tJ"I a)fn'est pas injective carbet c, qui sont deux éléments distincts de E, ont la
même image.f n'est pas surjective car des éléments de F n' ont pas d'antécédent (les
éléments 1 et 5).
b)f(a) = 2,f(b) = 4,f(c) = 4, doncl(A) = {2;4}.
l(c) = 4,l(d) = 3, doncl(A') = {3;4 }.
c)l(E) = {2;3;4} .
d) 1 n' a pas d' antécédent, 2 a pour antécédent a et 3 a pour antécédent d donc
l -1(B) = { a;d}.
3 a pour antécédent d et 4 a pour antécédents b etc donc l- 1(B') = { b;c;d}.
1-tJJ a) f est une injection car deux éléments distincts de E ont des images
distinctes. l n'est pas une surjection car des éléments de F n'ont pas d ' antécédent
(1et4).f n'étant pas surjective, elle n'est pas une bijection.
"'O
0
c
b)f(A) = {3;5}
:J
0
LI)
c) l -1(B) = { a;b;d}
..--t
0
N
1-tJIJ(O) = f(3) = 1(6) = 0,l(l) = f(4) = f(7) = 1,f(2) = f(5) = 2.
@
....... a) f n'est pas injective car on peut trouver des éléments distincts de E qui ont la
..c
O'l
·;:::: même image.l n'est pas surjective car 3 n'a pas d'antécédent.
>-
Q.
0 b)l(A) = {0;1} etl- 1[f(A)] = {0;1;3;4;6;7}. Doncf- 1[f(A)] 7=A.
u
c)l- 1(B) = {2 ;5} etl[f- 1(B)] = {2}. Doncf [f- 1(B)] :;t: B.
l-tJ1 a) On utilise la contraposée de la définition :
\;/ (x;y) E Il~.2,l(x) = f(x') <::::> 4x + 10 = 4x' + 10 <::::> 4x = 4x' <::::>X = x'
lest donc une injection.

142
Exercices corrigés

b) "d y E IR{, y = 4x + 10 <::::> y - 10 = 4x <::::> x = (y - 10)/4 = 0 ,25y - 2,5

Tout réel y possède donc un antécédent qui est 0,25 y - 2,5. f est donc une surjection.

c) f est une bijection puisqu'elle est à la fois une injection et une surjection.
d) XE [2 ;3] <::::> 2::;; X::;; 3 <::::> 8::;; 4x::;; 12 <::::> 18::;; 4x + 10::;; 22 <::::> 4x + 10 E [18 ;22].
Ainsi,f([2;3]) = [18;22].

XE [O;+oo[ <::::> 0::;; X<::::> 0::;; 4x <::::> 10::;; 4x + 10 <::::> 4x + 10 E [lO;+oo[.


Ainsi,f([O;+oo[) = [lO;+oo[.

e) "d y E IR{, 4x + 10 2 0 <::::> 4x 2-1<::::>x2-2,5 <::::> x E [2,5 ;+oo[.


Ainsi,f- 1([0;+oo[) = [-2,5;+oo[.

l"fld a)f n'est pas une injection car les éléments a et dont la même image.f est une
surjection car tous les éléments de Font au moins un antécédent. Puisque f n'est pas
injective, ce n'est pas une bijection.
g est une bijection car chaque élément de F a une seule image et chaque élément de
G a un seul antécédent.
b) g of est l'application de E dans G, définie par le tableau 5.10.

Tableau 5.1 O

g o f(x)
1 : 1 : 1 ; 1 :

(exemple de calcul : g o f(a) = g[f(a)] = g(2) =a)


c) On ne peut pas définir l'application réciproque def carfn'est pas bijective. Par
contre, on peut définir l'application réciproque g- 1 de g, et cette réciproque est elle
"'O
0
c
aussi bijective.
:J
0
li)
.,,:<:; g- 1 est définie de G dans F par g- 1(a) = 2, g- 1 (~) = 3, g- 1("() = 1.
..--t c::
:l

" l"fJ~ a)
0 ~
N
@
.......
~0
:;
J:: Tableau 5.11
O'l
·;:::: "'0c::
>- c::
o. c::
0 .9 X 0 l 2 3 4 5 6
u .,,ü
:l

2
o.
~
f(x) 2 5 1 4 0 3 6
"
:;
0
1- g(x) 1 5 2 6 3 0 4
.,,
0
1

c:
0
:l
g o f(x) 2 0 5 3 1 6 4
QJ

143
Chapitre 5 • Ensembles

b) D'après le tableau 5.11, on voit quel et g sont des bijections, donc elles possèdent
des bijections réciproques. La composée de deux bijections est une bijection, donc
g o lest une bijection, qui possède une bijection réciproque.
c) g 0 1(5) = 6 donc (g 0 j)- 1(6) = 5 etl- 1 0 g- 1(6) = l - 1Lg- 1(6)J = l - 1(3) = 5.
On constate que (g o j)- 1(6) = l - 1 o g- 1(6). Ce résultat était prévisible puisque c'est
une propriété générale: la bijection réciproque de g o l est1- 1 o g- 1.
l"f..IJ:J Vx E IR{, g o j(x) = g(3x) = 2(3x) + 5 = 6x + 5
Vx E JR{,l o g(x) = l(2x + 5) = 3(2x + 5) = 6x + 15
J"f..lpl Vx E IR{, g o l(x) = g(2x) = 2x(2x + 1) = 4x2 + 2x
Vx E JR{,l o g(x) = l(x(x + 1)) = 2x(2x + 1) = 2x2 + 2x
J"IIeJ a) A a pour coordonnées (1 ;2). L' image de A est le point A' de coordonnées
(1 + 2;1 - 2) = (3;1). De même, on lit les coordonnées des autres points: B(2;2),
C(3;2), D(l;l), E(2;1) et on calcule les coordonnées des points images: B'(4;0),
C'(5;1), D'(2;0), E'(3;1).
1(0.) ={A ';B';C;D';E'}

x+y=4 x=3.5
b) (x+ y; x- y )= (4; 3) <=> <=>
x-y=3 y =0.5

l - 1({F}) = {G(3,5;0,5)}
c) Si M appartient à l'axe des abscisses, ses coordonnées sont (x;O). Alors M'a pour
coordonnées (x;x) et appartient toujours à la droite d'équation y= x.
J1UI a) An A'= {O} doncl(A n A')= l({O}) = {O}.
j(A) = {0;1 ;4 },j(A') = {O;l} doncj(A) nl(A') = {0;1 }.

"'O
Doncl(A n A')-:t-l(A) nl(A').
0
c
:J b)A uA' = {-2;-l;O ;l} doncl(A uA') = {0;1;4}.
0
LI)
..--t Etl(A) u l(A') = {0;1 ;4} donc pour cet exemple,l(A u A')= j(A) u l(A') .
0
N - -
@ c) A = {1;2} donc l( A) = {1;4}.
.......
..c
O'l
·;::::
l(A) = {0;1 ;4} donc l(A) = {2;3}doncf(A):;t l(A).
>-
u
Q.
0 J"lt11 a) B n B' = {2} doncl- 1(B n B') =l- 1({2}) = 0
l - 1(B) = {- 1;0;1 },f- 1(B') = {-2;2 } doncf- 1(B) nf- 1(B') = 0.
Pour cet exemple d'application,l- 1(B n B') = f - 1(B) nl- 1(B').
b) B u B' = {O; 1;2;4} donc l - 1(B u B') = {- 2;- 1;O;1 ;2 } = E. On trouve également
l - 1(B) u l - \B') = E. Pour cet exemple,l- 1(B u B') = l - 1(B) u l - 1(B').

144
Exercices corrigés

c) B = {-2;-1} doncf- 1(B) = 0 .f - 1(B) = {-1;0;1} donc f - 1(B) = {-2;2}.


Donc f - 1( B) :;t: f -1 (B).
lu a) Alice va envoyer 27 286.
b) Non, car il peut interpréter le 2 comme un A, un B, un C.
c) Le codage n'est pas injectif (et par conséquent pas bijectif).
d) On peut écrire : A = 2, B = 22, C = 222, D = 3, E = 33, F = 333, etc.
1"111 a) Ce codage n'est pas acceptable car il n'est pas injectif, et a fortiori pas
bijectif.

Tableau 5.1 2

Lettre A B c D

Valeur x 0 l 2 3

2x + 3 3 5 7 9

Reste 3 l 3 l

Code D B D B

b) Cette fois, on obtient un codage bijectif.

Tableau 5.1 3

Lettre A B c D

Valeur x 0 l 2 3
"'O
0
c 2x + 3 2 5 8 l l
:J
0
li)
.,,:<:; Reste 2 l 0 3
..--t c::
:l
0 ~
N
" Code c B A D
@
.......
~ 0
J:: :;
O'l
·;:::: "'0c::
>-
o.
lfi1a)J=9. Dans la division euclidienne par 5, le quotient est 1 et le reste est 4.
c::
c::
0 .9
u .,, Donc le code est (1;4) que l'on écrit plus simplement 14.
ü
:l

2
o.
~ b) On trouve facilement que B se code 01, R se code 32, A se code OO, V se code 41
"
:;
1-
0 et 0 se code 24 donc BRAVO se code 0132004124.
.,,1
0
c:
:l
c) Ce codage est injectif puisque, pour chaque nombre entier, le couple (quotient ;
0
QJ reste) est unique.

145
Chapitre 5 • Ensembles

Le fait de fusionner V et W permet d'avoir 2 5 lettres, ce qui peut servir pour


présenter la grille de codage sous la forme d'un tableau (voir tableau 5.14).
Chaque lettre est alors repérée par un couple (ligne ; colonne) .

Tableau 5.14

0 l 2 3 4

0 A B c D E

l F G H 1 J
2 K L M N 0

3 p Q R s T

4 u V,W X y z

"'O
0
c
:J
0
LI)
..--t
0
N
@
.......
..c
O'l
·;::::
>-
Q.
0
u

146
GRAPHES
ET ORDONNANCEMENT

6.1 Représentations d'un graphe


6.2 Chemins d'un graphe
6.3 Niveau des sommets d'un graphe sans circuit
6.4 Méthode MPM d'ordonnancement d'un graphe

> Savoir mettre en œuvre des algorithmes de recherche de niveaux,


d'optimisation et de constructions de graphes ordonnés.

6.1 REPRÉSENTATIONS D'UN GRAPHE


Un site internet est composé de cinq pages notées A, B, C, D et E. En un clic, on
peut passer d'une page à certaines autres selon les possibilités suivantes :
• De la page A, on peut passer en un clic aux pages C et E.
• De la page B, on peut passer aux pages A et D.
• Depuis la page C, on peut accéder à la page Bou rester sur C.
"'O
Quand on est sur la page D, on peut seulement aller sur la page Cet de la page E,
0
c on ne peut aller que sur la page A.
:J
0
.,,:<:; On peut modéliser cette situation avec un graphique sagittal (fig. 6.1), constitué
li)
..--t
0
c::
:l de l'ensemble S = {A ;B ;C;D;E } des sommets, et de flèches orientées appelées arcs.
~
N
"
@
.......
~
0
A B
J:: :;
O'l
·;:::: "'0c::
>- c::
o. c::
.9
0
u ü
.,,
:l

2
o. E D
~
"
:;
Figure 6.1
0
1-
.,,
0
1

c:
:l
0
QJ

147
Chapitre 6 • Graphes et ordonnancement

On peut représenter chaque flèche par un couple (X,Y) où X est le point de départ
de la flèche et Y son point d'arrivée. On obtient ainsi une liste de couples, qui est une
partie du produit cartésien S2 : (A;C), (A;E), (B;A), (B;D), (C;B), (C;C), (D;C),
(E;A).
On peut aussi faire un tableau donnant, pour chaque page, les pages qui peuvent
être atteintes par un seul clic. On fait alors le tableau des successeurs (tableau 6.1, à
gauche). Une autre possibilité est de faire le tableau des prédécesseurs (tableau 6.1,
à droite), c'est-à-dire un tableau donnant, pour chaque page, les pages qui ont permis
d'y arriver avec un seul clic.
Tableau 6.1

Page (sommet) Successeurs Page (sommet) Prédécesseurs

A C, E A B, E

B A,D B c
c B, C c A,C,D

D c D B

E A E A

On peut aussi faire un tableau à double entrée en codant 1 s'il existe une possibi-
lité en un seul clic, d'aller d' une page de départ (origine) à une page d'arrivée (extré-
mité), et en codant 0 s'il n' y a pas possibilité de passage.
Tableau 6.2

Extrémité

A B c D E

A 0 0 l 0 l
"'O
0
c
:J
0 B l 0 0 l 0
li) CU
..--t
c
0
N
OI
·.::::
c 0 l l 0 0
@ 0
....... D 0 0 l 0 0
J::
O'l
·;::::
>- E l 0 0 0 0
0.
0
u

De façon évidente, le tableau 6.2 peut être associé à la matrice carrée d' ordre 5
suivante, appelée matrice d'adjacence (fig. 6.2).

148
6.1 • Représentations d'un graphe

A B c DE
A 0 0 1 0 1
B 1 0 0 1 0
c 0 1 1 0 0
D 0 0 1 0 0
E 1 0 0 0 0

Figure 6.2

6.1.1 Vocabulaire des graphes


Un graphe simple orienté est défini par un ensemble fini S = { a 1 ;a 2 ; .. . ;a11 } dont les
éléments sont appelés sommets, et par un ensemble G de couples appartenant au
produit cartésien S 2 dont les éléments sont appelés arcs.
Un couple (ai ;a) appartient à G si et seulement si, sur le diagramme sagittal, on
peut relier le sommet ai au sommet aj par une flèche orientée.
Le sommet ai de l'arc est appelé origine et le sommet aj est appelé extrémité. Si
l'origine et l'extrémité sont confondues, l'arc est une boucle.
Soit (ai;a) un arc d'un graphe G :
• Le sommet aj est un successeur de ai et ai est un prédécesseur de a/
• L' ensemble des successeurs d ' un sommet ai se note r + (aJ
• L' ensemble des prédécesseurs d'un sommet aj se note r- (a).

Exemple
Reprenons l'exemple étudié en début de chapitre :
- Les successeurs de A sont Cet E donc r + (A)= {C;E}. De même, r + (8) = {A;O}.
- Les prédécesseurs de A sont B et E donc r-
(A)= {8;E}. De même, r- (8) = {Q.
"'O
0
c
:J
6.1.2 Matrice d'adjacence d'un graphe
0
li)
.,,:<:; Soit G un graphe orienté ayant n sommets a , a , ... , aw La matrice d'adjacence du
..--t c::
:l
1 2
0
N
~
graphe est la matrice carrée M = (mi) d' ordre n telle que : mi,j = 1 si et seulement si
"
@
.......
~ (ai;a) est un arc de G, et mi,j = 0 sinon.
0
J:: :;
O'l
·;:::: "'0c::
>- c:: Exemple
o. c::
.9
0
u ü
.,,
:l

2
0 0 1 1
o.
~
1 0 0 1
"
:;
0
Soit M =
1- 0 0 0 0
.,,
1
0
c:
:l
0 0 1 0
0
QJ la matrice d'adjacence d'un graphe définie sur S = {A;8;C;O}.

149
Chapitre 6 • Graphes et ordonnancement

La première ligne montre que r + (A)= {C;O}. La troisième ligne montre que C n'a
pas de successeur. On peut ainsi reconstituer le graphe :

A B

D c
Figure 6.3

Le nombre de l sur une ligne est le nombre de successeurs du sommet correspon-


dant à la ligne. Concernant les colonnes, le nombre de 1 est le nombre de prédé-
cesseurs du sommet qui correspond à la colonne.

6.2 CHEMINS D'UN GRAPHE


Reprenons le graphe du paragraphe 6.1.

A B

E D
Figure 6.4

En suivant des arcs, on peut aller du sommet E au sommet B en passant par les
sommets A puis C.
"'O La suite ordonnée (E,A, C,B) est un chemin constitué de trois arcs. Ce chemin est
0
c de longueur 3. On peut remarquer que chaque arc de ce chemin peut être considéré
:J
0
li)
comme un chemin de longueur 1.
..--t
0
N
(A,B,D) n'est pas un chemin car il n'y a pas d'arc qui permet de passer de A à B.
@ (D, C,B,D) est un chemin dont le premier sommet est le même que le dernier
.......
J::
O'l sommet : c'est un circuit.
·;::::
>- (E,A,B,C,D) est un chemin qui passe par tous les sommets, une fois et une seule:
0.
0
u on dit que c'est un chemin hamiltonien.

6.2.1 Chemin et longueur


Dans un graphe orienté, un chemin est une suite ordonnée de sommets dans laquelle
chaque sommet, à part le premier, est un successeur du sommet qui le précède.

150
6.2 • Chemins d'un graphe

Un chemin hamiltonien est un chemjn quj passe une seule fois par tous les
sommets du graphe.
Un circuit est un chemin dans lequel le premier et le dernier sommet sont iden-
tiques.

Exemple
Considérons le graphe présenté fig . 6. 5.
A B

D c
Figure 6.5

(B,D,C) et (B,A,D) sont des chemins, (A,C,0) n'en est pas un.
(A,D,C,A) est un circuit car c'est un chemin, et le premier sommet est le même que
le dernier.
(B,A,D,C) est un chemin hamiltonien. (B,O,C,A) en est un autre.

La longueur d'un chemin est égale au nombre d' arcs qui constituent ce chemin.
La longueur d'un chemin ayant n sommets est n - 1.

Exemple
A B D

"'O
c
0
c Figure 6.6
:J
0
.,,:<:;
li)
..--t c::
:l
Pour aller de A à D, il y a un chemin de longueur 2 : le chemin (A,B,D) .
0
N
~
Il y a aussi un chemin hamiltonien, de longueur 3 : le chemin (A,C,B,D).
"
@
.......
~ 0
:;
J::
O'l "'0c:: 6.2.2 Nombre de chemins de longueur donnée
·;::::
>- c::
o. .9
c::
Propriété 6.1
0
u .,,ü
:l

2 Soit M la matdce d'adjacence d'un graphe orienté à n sommets a 1, a2' ... , an-
o.
~
"
:; Soit p un entier et MP = (mi) la puissance d'exposant p de la matrice M.
0
1-
.,,
0
1
Alors mi,j est le nombre de chemins de longueur p allant du sommet ai au sommet
c:
:l
0 af
QJ

151
Chapitre 6 • Graphes et ordonnancement

A B

c D
Figure 6.7

0 0 1 1
1 0 1 0
La matrice d'adjacence du graphe présenté fig. 6.7 est M =
0 0 0 1
0 1 0 0
0 1 0 1
0 0 1 2
Prenons p = 2. Les calculs matriciels nous donnent M2 =
0 1 0 0
1 0 1 0
Considérons la deuxième ligne de la matrice M 2. Elle concerne le sommet B du
graphe. Les deux premiers coefficients sont 0, cela veut dire qu'il n'y a pas de
chemin de longueur 2 qui relie B à A , ou B à B. Le troisième coefficient est 1, donc
il y a un chemin de longueur 2 qui relie B à C : le chemin (B,A, C).
Enfin, le dernier coefficient est 2, attestant l'existence de deux chemins de
longueur 2 reliant B à D : les chemins (B,A,D) et (B, C,D).
1 1 1 0
0 2 0 1
-0
0 Prenons maintenantp = 3: M 3 =
c
:J
1 0 1 0
0
li) 0 0 1 2
..--t
0
N Cette fois, la matrice M3 permet de connaître le nombre de chemins de longueur 3
@
....... qui relient un sommet à un autre .
J::
O'l
·;:::: Par exemple, puisque le coefficient m 3, 1 de la matrice M 3 vaut 1, cela signifie qu' il
>-
0.
0
y a un chemin de longueur 3 qui relie le sommet Cau sommet A : c' est le chemin
u (C,D,B,A).

6.2.3 Opérations sur les matrices booléennes


Les matrices d'adjacences ne comportant que des 0 et des 1, on peut appliquer sur
leurs coefficients 1' addition et la multiplication booléennes.

152
6.2 • Chemins d'un graphe

Exemple
0 l 0 1 1 0
Soit M = 1 1 0 et M'= 1 0 0
1 0 0 0 0 1
L'addition booléenne des deux matrices se note M ffi M' et vaut
1 1 0
MffiM'= l 1 0
1 0 1

0 2 0
En pratique, on peut calculer M + M ' = 2 1 0 et rendre cette matrice
1 0 l
booléenne en gardant les 0 et les 1, et en remplaçant par 1 tous les coefficients
supérieurs à 1.
On peut aussi faire la multiplication booléenne des matrices, qui se note M ® M'.

1 0 0
En pratique, il est plus simple de calculer MM'= 2 1 0 et de rendre la matrice
1 0
booléenne.
1 0 0
Ainsi, M®M'= 1 1 0
1 0

On peut également définir des puissances booléennes, notées M [Pl .


1 1 0 1 1 0
M2 = 1 2 0 donc M[ l
2
= 1 1 0
0 1 0 0 1 0

"'O
Soit M et M' deux matrices booléennes :
0
c • La somme booléenne de M et M ' est notée M EB M ' : elle est obtenue en faisant
:J
0
.,,:<:; les sommes booléennes des coefficients des deux matrices.
li)
c::
..--t
0
:l • On peut définir de même le produit booléen noté M ® M' .
~
N
" • La puissance booléenne d'exposant p de la matrice M se note M[pJ et vaut
@
.......
~
0 M @ M @ ... @ M, produit de p matrices égales à M.
J:: :;
O'l
·;:::: "'0c::
>- c::
o. c::
.9
Propriété 6.2
0
u ü
.,,
:l
Soit M la matrice d ' adjacence d'un graphe ayant n sommets a 1, a2 , ... ,an et soit
2
o.
~ M[p] =(mi) la matrice booléenne d'exposant p.
"
:;
0
1- Si mi,J :;z=O alors il existe au moins un chemin de longueur p reliant le sommet ai
.,,
0
1
au sommet ai"
c:
:l
0
QJ

153
Chapitre 6 • Graphes et ordonnancement

Exemple

0 1 0 1 1 0 2 3 0
Avec M = 1 1 0 , on a M[4l = 1 1 0 car M
4
= 3 5 0
0 0 1 1 0 1 2 0
La matrice booléenne permet d'affirmer qu'il y a au moins un chemin de longueur
4 entre A et A, ainsi qu'entre A et 8. Il en est de même entre 8 et A, 8 et 8, Cet A,
Cet 8.

6.2.4 Fermeture transitive d'un graphe


Faire la fermeture transitive d ' un graphe consiste à rajouter tous les arcs (ai.a) dès
qu'il existe un chemin allant du sommet a; au sommet aj"

Exemple
Sur le graphe présenté fig. 6.8, il existe un chemin allant de A à C en passant par
8 donc on ajoute l'arc (A,C).

A B Figure 6.8

De même, on constate qu'il faut ajouter les boucles (A,A) et (8,8). On obtient le
"'O graphe complété fig. 6.9, sur lequel il ne reste aucun chemin sans l'arc« direct»
0
c correspondant.
:J
0
li)
..--t
c
0
N
@
.......
J::
O'l
·;::::
>-
0.
0
u

Figure 6.9

Ce nouveau graphe est la fermeture transitive du précédent.

154
6.3 • Niveau des sommets d'un graphe sans circuit

Il peut être difficile de faire la fermeture transitive d'un graphe sans oublier
d'arcs. Mais en utilisant la matrice d 'adjacence d ' un graphe, et au prix de quelques
calculs matriciels, on peut déterminer la matrice d'adjacence de la fermeture transi-
tive. Il est alors plus facile de ne pas oublier d'arcs.
Nous admettrons la propriété suivante.

Propriété 6.3
,..
Soit M la matrice d'adjacence d'un graphe à n sommets et soit M la
matrice d 'adjacence de la fermeture transitive du graphe. Alors
M = M Et) M[2JEt) ••. Et) M[nJ.

Exemple o 1 o
Reprenons le graphe précédent dont la matrice d'adjacence est M = 1 0 1
0 0 0
Le graphe possède n = 3 sommets donc d'après la propriété précédente, la
matrice d'adjacence de la fermeture transitive est M= M Et> M [2J Et> M l3l ,
Les calculs donnent les résultats suivants :

1 0 1
M 2 =M [2J = 0 1 0
0 0 0
0 1 0
3 3
et M = Ml l = 1 0
0 0 0
M= M ©M l2l ©M[3l
0 1 0 1 0 1 0 1 0
= 1 0 1 Et> 0 1 0 Et> 1 0 1
"'O
0 0 0 0 0 0 0 0 0 0
c
:J
0 1 1 1
li)
.,,:<:;
c::
..--t
0
:l
~
= 1 1 1
N
" 0 0 0
@
.......
~ 0
J:: :; Connaissant maintenant la matrice d'adjacence de la fermeture transitive, il est
O'l
·;:::: "'0c:: facile de compléter le graphe.
>- c::
o. .9
c::
0
u ü
.,,
:l

2
o.
~ 6.3 NIVEAU DES SOMMETS D'UN GRAPHE SANS CIRCUIT
"
:;
0

.,, Les graphes sans circuit ni boucle peuvent être ordonnés par niveaux.
1-
1
0
c:
:l
La définition suivante va préciser la notion de niveau d'un sommet d'un graphe
0
QJ orienté défini sur un ensemble S de sommets.

155
Chapitre 6 • Graphes et ordonnancement

6.3.1 Dessin d'un graphe par niveaux


On appelle sommet de niveau 0 tout sommet qui n'a pas de prédécesseur. Si on note
S0 l'ensemble des sommets de niveau 0, alors on appelle sommet de niveau 1 tout
sommet qui n'a pas de prédécesseur dans S - S0 (ensemble S privé des éléments de
S0). On définit ensuite les sommets de niveau 2 et ainsi de suite ...

Exemple
Sur l'ensemble 5 = {A;B;C;D;E}, on définit un graphe par sa matrice d'adjacence M.
0 0 1 0 1
1 0 0 1 0
M= 0 0 0 0 0
0 0 0 0 1
0 0 1 0 0
Cherchons les sommets de niveau O.

Tableau 6.3

Sommets A B c D E

Prédécesseurs B --- A,E B A,D

Best le seul sommet qui n'a pas de prédécesseur, il est donc le seul sommet de
niveau O.

S0 = {B}
On va maintenant chercher les sommets de niveau l : ce sont les sommets qui
n'ont pas de prédécesseurs dans 5 - 50 = {A;C;D;E}.

Tableau 6.4
"'O
0
c
0
:J Sommets A c D E
li)
..--t
0
N
Prédécesseurs --- A,E --- A,D
@
.......
J::
O'l
·;:::: A et D n'ont pas de prédécesseurs dans 5 - 50 , ils sont donc de niveau l .
>-
0.
0
u S1 = {A,D}
Les sommets de niveau 2 sont ceux qui n'ont pas de prédécesseurs dans
(5 - 50 ) - 5 1 = {C,f}.
E n'a plus de prédécesseur alors que Ca le sommet E comme prédécesseur. Donc
E est de niveau 2, et enfin C est de niveau 3. Les niveaux des sommets sont
résumés dans le tableau 6.5.

156
6.3 · Niveau des sommets d'un graphe sans circuit

Tableau 6.5

Niveaux 0 2 3

Sommets B A,D E c

On peut faire le graphe en alignant verticalement les sommets de même niveau


(fig. 6.10).

Niveau 0 Niveau 1 Niveau 2 Niveau 3

Figure 6.10

6.3.2 Arborescence
Une arborescence est un graphe orienté qui possède un sommet de niveau 0, appelé
racine, à partir duquel on peut atteindre tout autre sommet par un chemin unique.

Exemple
Le graphe de la fig. 6.11 est une arborescence dont la racine est A.

"'O
0
B c
c

/\
:J
0
li)
..--t
0
N
@
.,,:<:;

~
c::
:l
~

" D E F
/Î\
G H
.......

l /\
0
J:: :;
O'l
·;:::: "'0c::
>- c::
o. .9
c::
0
u ü
.,,
:l
I J K
2
o.
~ Figure 6.11
"
:;
0
1-
.,,
0
1

c:
:l
0
QJ

157
Chapitre 6 • Graphes et ordonnancement

6.3.3 Graphe pondéré (ou valué)


Sur certains graphes orientés, il peut être nécessaire d'attribuer une valeur à chacun
des arcs : on obtient alors un graphe pondéré ou valué.
La valeur d'un chemin est la somme des valeurs des arcs qui constituent le
chemin. Il est alors possible de chercher le chemjn de valeur minimale ou maximale
reliant un sommet à un autre.

Exemple
Sur le graphe pondéré de la fig. 6.1 2, pour relier B à C, il y a trois chemins
possibles :
- Le chemin (B,A,E,C) de valeur 4 + 3 + 5 = 12.
- Le chemin (B,D,E,C) de valeur 7 + 4 + 5 = 16.
- Le chemin (B,D,C) de valeur 7 + 8 = l 5.
Le chemin minimal est (B,A,E,C), le chemin maximal est (B,D,E,C).

Figure 6.12

Un algorithme de recherche de chemin minimal sera proposé en exercice


corrigé 6.16.

6.4 MÉTHODE MPM D'ORDONNANCEMENT


D'UN GRAPHE
La réalisation d'un projet passe par l'exécution de différentes tâches, de durées
"'O
0
c souvent différentes. Si certaines tâches peuvent être réalisées simultanément,
:J
0 d'autres nécessitent que certaines tâches aient été réalisées antérieurement.
li)
..--t
0
Faire l'ordonnancement d'un projet consiste à organiser ce projet en respec-
N tant les contraintes d'antériorité des tâches tout en minimisant la durée totale de
@
....... réalisation .
J::
O'l
·;:::: La méthode MPM (Méthode des potentiels metra) permet l' ordonnancement de
>-
0. projets, c'est la méthode que nous exposerons dans ce cours. Nous aurions pu choisir
0
u la méthode PERT, mais elle est plus complexe à mettre en œuvre.

Exemple
Pour illustrer la méthode MPM, nous allons réaliser l'ordonnancement d'un projet
fictif, comprenant des tâches que nous noterons A, B, C, D, E, F, G. Les contraintes
d'antériorité et les durées de ces tâches sont consignées dans le tableau 6.6.

158
6.4 • Méthode MPM d'ordonnancement d'un graphe

Tableau 6.6

Tâche Durée (en jours) Tâches antérieures

A 3 aucune
B 2 aucune
c 4 A
D 5 A, B
E 3 c
F 4 c
G 3 E

La première chose à faire est de définir le niveau de chaque tâche. Il est simple de
voir que A et B sont de niveau 0, Cet 0 de niveau l, E et F de niveau 2 et G de
niveau 3.

Tableau 6.7

Niveaux 0 l 2 3

Sommets A, B C,D E, F G

Le graphe ordonné par niveaux est celui de la figure 6.1 3.


3

3
Début

Figure 6.13
"'O
0
c
:J
0 On peut remarquer que l'on a rajouté deux tâches fictives : Début et Fin ; et que
li)
..--t
l'on a pondéré le graphe en ajoutant les durées de chaque tâche.
0
N
@ ~ Il est plutôt simple de calculer la durée minimale du projet (si vous ne la trouvez pas,
.......
J:: ~ nous la calculerons un peu plus loin). Mais on peut se poser quelques questions :
O'l
·;::::
>- 2
c
• À quel moment peut-on commencer une tâche ?
0.
u
0 ·5
:::l
• Est-ce qu' on peut retarder le moment de démarrer certaines tâches sans que cela
"[ ait d 'impact sur la durée minimale du projet?
~
:;
Pour répondre à ces questions, nous allons définir, pour chaque tâche, les notions
~ de date au plus tôt et de date au plus tard.
1
"8c
:::l
0
QJ

159
Chapitre 6 • Graphes et ordonnancement

~ CAes notions utilisant les durées des tâches, nous noterons d(x) la durée d'une
E:J tache xj"

6.4.1 Date au plus tôt - Date au plus tard


La date au plus tôt d'une tâche est la date minimale à laquelle on peut commencer
la tâche, car toutes les tâches antérieures sont terminées.

Nous noterons t(x) la date au plus tôt d'une tâche xj. t(x) est le plus grand des
nombres t(x;) + d(x;) où X; est une des tâches qui précèdent immédiatement la
tâche xj.

Exemple
Calculons les dates au plus tôt des tâches du projet :
- t(A) = t(B) = 0
- t(C) = t(A) + d(A) = 0 + 3 = 3
- D a deux prédécesseurs : A et B. On calcule t(A) + d(A) = 0 + 3 = 3 et
t(B) + d(B) = 0 + 2 = 2. t(D) est le plus grand de ces deux nombres donc t(D) = 3.
- t( E) = t(C) + d(C) = 3 + 4 = 7
- F a deux prédécesseurs : C et D. On calcule t(C) + d(C) = 7 et t(D) + d(D)
= 3 + 5 = 8. Le plus grand de ces deux nombres est 8 donc t(F) = 8.
- Pour G, on calcule t(E) + d(E) = 7 + 3 = 10 et t(F) + d(F) = 8 + 4 = 12 donc
t(G) = 12.
- Et pour finir, t(Fin) = t(G) + d(G) = 12 + 3 = 15.
On a ainsi calculé la date au plus tôt de la fin du projet qui est de l 5 jours.

La date au plus tard d' une tâche est la date maximale à laquelle on peut
commencer la tâche sans que cela ne repousse la date de fin du projet.

Nous noterons T(x) la date au plus tard d'une tâche xj. T(x) est le plus petit des
nombres T(xk) - d(x) où xk est une des tâches qui suit immédiatement la tâche xj.
"'O
0
c
:J
0 Exemple (suite)
li)
..--t Calculons les dates au plus tard des tâches du projet : on doit commencer par la
0
N fin puisqu'à chaque fois, on doit considérer les successeurs.
@
.......
- On a bien sûr T( Fin) = t(Fin) = l 5
J::
O'l
- T(G) = T(Fin) - d(G) = l 5 -3 = 12
·;::::
>- - T(F) = T(G) - d(F) = l 2 - 4 = 8
0.
0 - T(E) = T(G) - d(E) = l 2 - 3 = 9
u
- T(D)= T(F)- d(D)=8-5=3
- Ca deux successeurs : E et F. On calcule T(E) - d(C) = 9 - 4 = 5 et T(F) - d(C)
= 8 - 4 = 4 . Le plus petit de ces deux nombres est 4, donc T(C) = 4 .
- T(B) = T(D) - d(B) = 3 - 2 = l
- A a deu x successeurs : Cet D. On calcule T(C) - d(A) = 4 - 3 = l et T(D) - d(A)
= 3 - 3 = O. Donc T(A) = O.

160
6.4 · Méthode MPM d'ordonnancement d'un graphe

Pour chaque tâche, on va rajouter les dates au plus tôt et au plus tard en présen-
tant chaque tâche par un rectangle :

Tableau 6.8

t(x) T(xj) Par exemple, pour 7 9


1
la tâche E : E
xj

~
0 0 4 7 9
A E

0 0

~
Début 12 12 3
G n

0 1 3 3 8 8
B D F

Figure 6.14
Examinons la tâche C : on a t(C) = 3 et T(C) = 4 . Au plus tôt , on peut commencer à
3 jours et au plus tard à 4 jours . Pour cette tâche, on dispose donc d'une
« liberté » d'un jour. Ce n'est pas ainsi pour d'autres tâches (comme D par
exemple) pour lesquelles les dates au plus tôt et au plus tard sont les mêmes. Ces
tâches sont qualifiées de tâches critiques. Et l'enchaînement A-D-F-G-Fin, qui ne
contient que des tâches critiques, est qualifié de chemin critique.

Une tâche critique est une tâche dont les dates au plus tôt et au plus tard sont
égales. Donc xj est critique si et seulement si t(xj) = T(xj).
Un chemin critique est un chemin reliant le début à la fin et qui n' est constitué
que de tâches critiques.

6.4.2 Marges d'une tâche


"'O
g La marge totale d' une tâche c'est le retard maximum que l'on peut accepter sur la
~ date de début de la tâche sans que cela ne retarde la date de fin du projet.
li)
..--t
0
N ~ La marge totale d'une tâche xj se note MT(xj) et elle vaut MT(x) ~ T(x) - t(x).
@
.......
J::
O'l
·;::::
>-
0.
0 Exemple (suite)
u
La tâche C n'est pas critique. On peut constater qu'on peut retarder le début de C
d'un jour sans retarder la date de fin du projet (et c'est le maximum).
En effet, si C commence à la date 4, cela n'empêcherait pas F de commencer à la
date 8, E pourrait commencer à la date 8 et n'empêcherait pas G de commencer à
la date 12.
Ce retard maximum s'appelle la marge totale de la tâche.

161
Chapitre 6 • Graphes et ordonnancement

& La marge totale d'une tâche critique est nulle.

La marge libre d'une tâche c'est le retard maximum que l'on peut accepter sur la
date de début de la tâche sans que cela ne retarde la date de début au plus tôt de
chacune des tâches qui suit immédiatement.

La marge libre d'une tâche xj se note ML(x) . ML(x) est le plus petit des nombres
t(xk) - t(x) - d(x), où xk est une tâche qui suit xj .

Exemple (suite)
Dans le graphe du projet, on a MT(B) = l ; MT(C) = l ; MT(E) = 2.
Retarder la date de début d'une tâche peut avoir des conséquences sur la date de
fin d'un projet. Mais si on s'intéresse simplement aux tâches qui suivent immédia-
tement, on peut regarder l'impact d ' un retard sur les dates au plus tôt de ces
tâches.
Si on examine la tâche C, un retard d'un jour ne retarde la date au plus tôt de F,
mais a un impact sur la date au plus tôt de E. Donc, si on ne veut pas retarder les
dates au plus tôt des successeurs immédiats de C, on ne peut pas retarder C. Il
s'agit ici de la marge libre de C (qui est donc nulle).
Sur le projet, B n'a qu'un successeur : la tâche D. Donc la marge libre de B est
ML(B) = t(O)-t(B)-d(B) =3- 0-2 = 1
Ca deux successeurs : E et F.
On calcule t( E) - t( C) - d(C) = 7 - 3 - 4 = 0 et t( F) - t( C) - d(C) = 8 - 3 - 4 = l .
Le plus petit de ces deux nombres est 0 donc la marge libre de C est ML(C) = O.

Une autre marge que l' on peut définir est la marge certaine. C'est le retard
maximum que l 'on peut accepter sur la date de début de la tâche, quand celle-ci
commence à sa date au plus tard, sans que cela ne retarde la date de début au plus
tôt de chacune des tâches qui suit immédiatement.

-0
0 La marge certaine d'une tâche xj est notée MC(x) . MC(x) est le plus petit des
c
:J nombres t(xk) - T(x) - d(x), où xk est une tâche qui suit xj sauf si ce nombre est
0
li) négatif, auquel cas MC(x) = O.
..--t
0
N
@ Exemple (suite)
.......
J::
O'l
·;:::: Calculons par exemple, la marge certaine de C. Le principe des calculs est le
>- même que pour le calcul de la marge libre, sauf qu'on remplace la date au plus tôt
0.
0
u de C par la date au plus tard.
Ca deux successeurs : E et F.
On calcule t(E) - T(C) - d(C) = 7 - 4 - 4 = - 1 et t(F) - T(C) - d(C) = 8 - 4 - 4 =O.
Le plus petit des deux nombres est - 1, mais puisqu'il est négatif, la marge
certaine de C est MC(C) = O.
Les valeurs des différentes marges de chaque tâche du projet sont consignées
dans le tableau 6.9.

162
TD - Déplacements dans un jeu vidéo

Tableau 6.9

Tâche A B c D E F G

Marge totale 0 1 1 0 2 0 0

Marge libre 0 1 0 0 2 0 0

Marge certaine 0 0 0 0 0 0 0

TD - Déplacements dans un jeu vidéo

Un développeur de jeu vidéo doit travailler sur les déplacements possibles d' un
joueur à l'intérieur d'un donjon, composé de six salles notées A, B, C, D, E et F.
L'entrée et la sortie du donjon ne peuvent se faire que par la salle F.
À l'intérieur du donjon, les déplacements autorisés sont schématisés par des flèches
sur le plan de la fig. 6.15 . Par exemple, la flèche entre la salle A et la salle B montre
qu'on peut aller de B vers A, mais pas de A vers B.

B c D

"'O
0 E F
c
:J
0
li)
.,,:<:;
..--t c::
:l
0
N
~
Figure 6.1 S
"
@
.......
~ 0
J:: :;
O'l "'0c::
·;::::
>- c:: Partie A
o. .9
c::
0
u ü
.,, a) Dessiner un graphe modélisant les salles et les déplacements.
:l

2
o.
~
"
:;
b) Faire un tableau donnant les successeurs et les prédécesseurs de chaque sommet.
0
1-
.,, c) Le graphe peut-il être ordonné par niveaux ?
0
1

c:
:l
0
QJ d) Écrire la matrice d ' adjacence du graphe .

163
Chapitre 6 • Graphes et ordonnancement

Partie B
a) Calculer M 3. Expliquer la signification des nombres de la dernière ligne de cette
matrice.
b) Le joueur se trouvant dans la salle F, déterminer les salles dans lesquelles il peut
se retrouver en quatre déplacements. Écrire tous les déplacements correspondants.
c) Est-il possible, à partir de F et en cinq déplacements, de visiter chaque salle?
d) Le joueur pourra-t-il de partir de F et y revenir en exactement six déplacements ?
Si oui, ces trajets permettent-ils de visiter chaque salle ?

Partie C
Chaque entrée dans une salle coûte au joueur un certain nombre de points. Les
entrées dans les salles A, B, C, D, E et F coûtent respectivement 25, 20, 40, 30, 25 et
20 points. Le développeur souhaite que le joueur ne puisse pas faire plus de huit
déplacements à l'intérieur du donjon, à partir de son entrée en F et son retour en F.
a) Dessiner le graphe valué modélisant la consommation en points de chaque dépla-
cement.
b) Combien de trajets de huit déplacements le joueur peut-il faire à l'intérieur du
donjon?
c) En effectuant ces huit déplacements, combien de points le joueur consommera-t-
il au maximum ?

Solution du TD

Partie A
~ a) Voir le graphe de la fig. 6.16.
c
:J
0
LI)
..--t
0
N
@
.......
..c
O'l
·;::::
>-
Q.
0
u

E
Figure 6.16

164
Solution du TD

b)

Tableau 6. l 0

Sommets A B c D E F

Successeurs D A B,E C,F B A,E

Prédécesseurs B,F C,E D A C,F D

c) Chaque sommet a au moins un prédécesseur, donc on ne peut pas ordonner le


graphe par niveaux.
d) 0 0 0 1 0 0
1 0 0 0 0 0
0 1 0 0 1 0
M=
0 0 1 0 0 1
0 1 0 0 0 0
1 0 0 0 1 0
Partie B
a)
1 1 0 0 2 0
0 0 1 0 0 1
1 0 0 1 0 0
M 3=
1 2 0 1 0 0
0 0 0 1 0 0
1 0 1 0 0 1
-0
0
c La dernière ligne donne le nombre de chemins de longueur 3 qui relient F à chacun
:J
0 des autres sommets. Il y a donc :
li)
.,,:<:;
..--t
0
c::
:l • Un seul chemin qui va de F à A, à C ou à F.
~
N
" • Aucun chemin de F à B, à C ou à E.
@
~
.......
J::
0
:; b) La dernière ligne de la matrice M4 est : 1 1 0 1 2 O. Cette ligne donne le nombre
O'l
·;:::: "'c:: de chemins de longueur 4 reliant F aux autres sommets.
0
>- c
o. c
.9
.,,ü En quatre déplacements, on peut se retrouver en A, en B, en D ou en E.
0
u :l

2
o.
~
Pour aller de F en A, le trajet est FADFA.
"
:;
0
1- De F à B, le trajet est FADCB.
.,,
1
0
c
:l
De F à D, on emprunte FEBAD. De F à E, les deux possibilités sont FADCE et
0
QJ FADFE.

165
Chapitre 6 • Graphes et ordonnancement

c) La dernière ligne de la matrice M5 est : 1 2 1 1 0 1.


Le seul chemin de longueur 5 entre F et A est FADCBA, il ne passe pas par E.
Deux chemins de longueur 5 existent entre F et B : FADFEB et FADCEB . Ce
deuxième chemin passe par toutes les salles : c'est un chemin hamiltonien.
Le seul chemin de longueur 5 qui va de F à C est FEBADC et il passe par toutes les
salles.
FADFAD est le seul chemin reliant F à D, il ne passe pas par B, C et E.
Enfin, FEBADF relie F à lui-même sans passer par C.
Finalement, il y a deux chemins de longueur 5 qui visitent toutes les salles.
d) Le calcul de M6 montre qu' il n'y a qu' un seul circuit de longueur 6 qui relie F à
lui-même. Ce circuit est FADFADF, il ne passe pas par toutes les salles.

Partie C
a)

20
B ~~--~-.-----....-~~~......-~~ F

20

E
Figure 6.17
"'O
g
:J
b) Le calcul de M8 permet de dire qu'il y a trois circuits de longueur 8 de F à F. Ces
o trois circuits sont :
LI)

~ • FADCEBADF qui consomme 25 + 30 + 40 + 25 + 20 + 25 + 30 + 20 = 215 points.


N
@ • FEBADFADF et FADFEBADF qui consomment 195 points.

Exercices corrigés

m Pour chacun des graphes (fig. 6.18), faire le tableau des successeurs et des
prédécesseurs.

166
Exercices corrigés

A D
B c A B

c
A E D

Graphe l Graphe 2 Graphe 3

Figure 6.18

m Pour chacun des graphes de l'exercice 6.1, écrire la matrice d'adjacence (les
sommets seront pris dans l'ordre alphabétique).
l5IJ Compléter chaque tableau en ajoutant les prédécesseurs, puis construire le
graphe associé.
Tableau 6.11

Sommet A B c D

Successeurs B, C B B, D c
Prédécesseurs

Tableau 6.1 2

Sommet A B c D

Successeurs c A, C D B

Prédécesseurs
"'O
0
c
0
:J

.,,:<:; m Écrire la matrice d'adjacence de chacun des graphes de l'exercice 6.3.

m
li)
..-t c::
0
N
:l
~
Compléter chaque tableau en ajoutant les successeurs.
"
@
.......
~ 0 Tableau 6.1 3
.!:: :;
O'l
·;:::: "'0c::
>-
o. .9
c::
c:: Sommet A B c D E
0
u ü
.,,
:l

2
o. Successeurs
~
"
:;
0
1- Prédécesseurs B, E A B,C,D,E A B
.,,
0
1

c:
:l
0
QJ

167
Chapitre 6 • Graphes et ordonnancement

Tableau 6.14

Sommet A B c D E

Successeurs

Prédécesseurs B C, D, E A,E c D

15!1 M 1et M 2 sont les matrices d'adjacence de deux graphes définis respective-
ment sur les ensembles S 1 = {A; B; C; D} et S2 = {A; B; C; D; E}. Faire le tableau
des successeurs et des prédécesseurs de chaque graphe.

c) Combien y a-t-il de chemins de longueur 2 dans le graphe ? Les citer.

D c

-0
0
c
:J
0
LI)
..--t
Figure 6.19
0
N
@
.......
..c
O'l
·;::::
m a) Écrire la matrice d'adjacence M du graphe de la fig. 6.20 .
>- b) Calculer M 3 Expliquer pourquoi on peut affirmer qu'il existe deux chemins de
0..
0
u longueur 3 reliant B à A. Citer ces deux chemins.
c) Le graphe possède-t-il des circuits de longueur 3 ?
d) Calculer M 4 . Entre quels sommets n'existe-t-il pas de chemin de longueur 4?

168
Exercices corrigés

B c

Figure 6.20

m a) Écrire la matrice d'adjacence M du graphe de la fig. 6.21.


b) Calculer M 4 .
c) Combien y a-t-il de chemins de longueur 4 qui partent de A ? Citer ces chemins.
Parmi eux, y a-t-il des chemins hamiltoniens ?
A

Figure 6.21

1!1111 a) Écrire la matrice d'adj acence M du graphe de la fig. 6.22.


"'O
b) Quels arcs doit-on rajouter pour faire la fermeture transitive du graphe ?
0
c
::J ..;
c) Calculer les matrices booléennes M [2 ] et M [3l. En déduire la matrice M de la
0 '03
lJ)
...... ""'c: fermeture transitive.
::l
0
N
~
A
"
@ ]
..._, Ci
.s:: :;
Ol
'i:
"'c:0
>-
o.
c:
c:

u
0 .9
ü::l c
""'2P.
!.:!
2l
::l
0
1-
1

""'c:0 B
::l
0
© Figure 6.22

169
Chapitre 6 • Graphes et ordonnancement

lftlll a) Écrire la matrice d'adjacence M du graphe de la fig. 6.23.


b) Quels arcs doit-on rajouter pour faire la fermeture transitive du graphe?
c) Calculer la matrice M de la fermeture transitive.

Figure 6.23

Clt;.J Calculer la matrice M de la fermeture transitive du graphe de la fig. 6.24.


Quels arcs doit-on ajouter pour la réaliser?

A B

c
E D
Figure 6.24

CllJ Un graphe est défini par le tableau 6.15. Déterminer le niveau de chaque
sommet et représenter le graphe en tenant compte des niveaux.
Tableau 6.1 5
"'O
0
c
0
:J Sommets A B c D E F G
LI)
..--t
0 Successeurs C, E --- F, G --- B, F D D
N
@
.......
..c
O'l
·;::::
CIEi Un graphe est défini par le tableau 6.16. Déterminer le niveau de chaque
>-
Q. sommet et représenter le graphe en tenant compte des niveaux.
0
u
Tableau 6.16

Sommets A B c D E F G H

Successeurs E, G --- A,H F --- G --- B, D

170
Exercices corrigés

lflJ1 Un graphe est défini par le tableau 6.17. Déterminer les prédécesseurs de
chaque sommet. Pourquoi peut-on affirmer que le graphe est une arborescence ?
Dessiner cette arborescence.
Tableau 6.1 7

Sommets A B c D E F G H I J K L

Successeurs B,L D,K --- --- A,) C,G, I --- --- --- F --- H

Mid Sept villes notées A, B, C, D, E, F et G constituent un réseau. Sur le graphe


valué suivant (fig. 6.25) figurent les liaisons et leurs durées en heures.
c

4 4
A- - - D • B • G

~7
E~ F
7
Figure 6.25

a) On va rechercher le chemin minimal pour aller de A à G. Pour cela, on va se servir


de la propriété « tout chemin optimal est composé de chemins eux-mêmes
optimaux». À chaque sommet, on va attribuer une marque en appliquant l'algo-
rithme suivant :
• Les sommets de niveau 0 reçoivent la marque O.
• Les sommets de niveau 1 reçoivent une marque égale à la valeur minimale des
"'O
0
c chemins venant du niveau O.
:J
0
li)
.,,:<:; • Les sommets des autres niveaux reçoivent une marque égale à la valeur minimale
c::
..--t
0
:l
~
de tous les chemins provenant des niveaux précédents.
N
"
@
.......
~ Appliquer cet algorithme sur le graphe et en déduire la durée minimale du trajet pour
0
J:: :; aller de A à G.
O'l
·;:::: "'0c::
>- c::
o. c::
.9
b) On donne maintenant les distances entre les villes, en kilomètres : AC = 500,
0
u .,, AD = 200, AE = 210, BG = 250, CG = 200, DB = 250, EB = 180, EF = 200,
ü
:l

2
o.
~ EG = 450, FG = 210. Appliquer l'algorithme sur le graphe et en déduire la
" longueur minimale du trajet pour aller de A à G.
:;
0
1-
.,,
1
0
c:
:l
ldlf4 Sur le graphe de la fig. 6.26, déterminer le chemin de longueur minimale
0
QJ reliant A à /, puis le chemin de longueur maximale reliant A à I.

171
Chapitre 6 • Graphes et ordonnancement

16
B

c·'------..:.:~----+ D - - - -

Figure 6.26

@l:J La mise en service d'un nouvel équipement routier demande la réalisation


d'un certain nombre de tâches. Le tableau 6.18 représente ces différentes tâches avec
leurs relations d'antériorité.
Tableau 6.18

Tâches A B c D E F G

Durées (en jours) 6 3 6 2 4 3 1

Tâches antérieures aucune aucune aucune B B A,D C, E, F

a) Déterminer le niveau de chacune des tâches.


b) Construire le graphe d' ordonnancement du projet et calculer les dates au plus tôt
et au plus tard de chaque tâche.
c) Déterminer le chemin critique. Quelle est la durée minimale de réalisation du
projet?
d) Calculer la marge totale de la tâche E. Quelle est sa signification ?
-0
0
c
:J
e) Calculer la marge libre de la tâche C. Quelle est sa signification ?
0
LI)
..--t
1#11#1 La réalisation d'un projet nécessite plusieurs tâches successives dont les
0
N durées en jours sont données dans le tableau suivant, ainsi que les tâches devant être
@ réalisées antérieurement.
.......
..c
O'l
·;:::: Tableau 6.1 9
>-
0..
0
u Tâches A B c D E F G H I J

Durées 4 2 2 1 2 5 3 3 3 4

Tâches
antérieures
aucune aucune A A A,B c D, E E, G H F,I

172
Exercices corrigés

a) Déterminer le niveau de chacune des tâches.


b) Construire le graphe d' ordonnancement du projet et calculer les dates au plus tôt
et au plus tard de chaque tâche.
c) Déterminer le chemin critique. Quelle est la durée minimale de réalisation du
projet?
d) En réalité, la tâche Ca nécessité une durée de 5 jours. Est-ce que cela a eu une
incidence sur la durée de réalisation du projet ?
Cf.li] Calculer la marge totale et la marge libre de chacune des tâches de
l'exercice 6. 19.

Solutions

m
Tableau 6.20

Sommet A B c
Successeurs A A B

Prédécesseurs A,B c -----

Tableau 6.2 l

Sommet A B c D

Successeurs A c B A, B

"'O
0
c
Prédécesseurs A,D C, D B ---
:J
0
li)
.,,:<:;
c::
..--t
0
:l
~
Tableau 6.22
N
"
@
.......
~ 0 Sommet A B c D E
J:: :;
O'l
·;:::: "'0c::
>- c::
o. .9
c:: Successeurs E A, C, E --- A,C ---
0
u ü
.,,
:l

2
o. Prédécesseurs B, D ---- B, D ---- A, B
~
"
:;
0
1-
.,,
0
1

c:
:l
0
QJ

173
Chapitre 6 • Graphes et ordonnancement

m
0 0 0 0 1
1 0 0 0
1 0 0 1 0 1 0 1
0 0 1 0
M,-- 1 0 0 M2 -- M3 -- 0 0 0 0 0
0 1 0 0
0 1 0 1 0 1 0 0
1 1 0 0
0 0 0 0 0

m
Tableau 6.23

Sommet A B c D

Successeurs B, C B B, D c
Prédécesseurs --- A,B,C A,D c

Figure 6.27
"'O
0
c
:J
0 Tableau 6.24
LI)
..-t
0
N
@
Sommet A B c D
.......
..c
O'l
·;:::: Successeurs c A, C D B
>-
Q.
0
u Prédécesseurs B D A, B c

174
Exercices corrigés

D
Figure 6.28

0 1 1 0 0 0 1 0
0 1 0 0 1 0 1 0
( a M1= M-
2 -
0 1 0 1 0 0 0 1
0 0 1 0 0 1 0 0

m
Tableau 6.2 5

Sommet A B c D E

Successeurs B, D A, C, E c c A,C

Prédécesseurs B, E A B,C,D,E A B

Tableau 6.26

Sommet A B c D E
"'O
0
c
:J
Successeurs c A 8, D 8, E 8, c
0
li)
.,,:<:;
..--t
0
c::
:l
~
Prédécesseurs 8 C, D,E A, E c D
N
"
@
~
.......
J::
O'l
·;::::
0
:;
"'0c::
m
>- c:: Tableau 6.2 7
o. .9
c::
0
u ü
.,,
:l

2
o.
Sommet A 8 c D
~
"
:;
1-
0
Successeurs D C,D A,B B,C,D
.,,
0
1

c:
0
:l
Prédécesseurs c C, D 8, D A,8,D
QJ

175
Chapitre 6 • Graphes et ordonnancement

Tableau 6.28

Sommet A B c D E

Successeurs C, D A,E B, D B, E A,C

Prédécesseurs B, E C,D A, E A,C B, D

0 1 0 1
1 0 1 0
( B a)M=
0 0 0 1
0 0 0 0

1 0 1 0
2
0 1 0 2
b) M =
0 0 0 0
0 0 0 0
On sait que les coefficients de M 2 représentent les nombres de chemins de longueur
2 qui relient un sommet à un autre. Donc il n'y a pas de tels chemins reliant B à A, ou
à C. Un chemin relie B à lui-même et deux chemins relient B à D.
c) Dans la matrice, la somme des coefficients non nuls est 5 : il y a donc cinq
chemins de longueur 2 dans le graphe. Ces cinq chemins sont: (A,B,A), (A ,B,C),
(B,A,B), (B,A,D) et (B,C,D).

0 1 0 1 1 1 1 1 2 1 1 2

m a)M=
1 0
1 0 0 0
0 1
M 3=
2 0
1
1 1
0 1 1
M4 =
1 2 1 2
1 1 1 1
"'O
0
c
0 0 1 0 0 1 0 1 1 0 1 1
:J
0
LI)
b) Les coefficients de la matrice M 3 représentent le nombre de chemins de longueur
..--t
0
3 reliant chaque sommet aux autres. À l'intersection de la deuxième ligne et de la
N
@ première colonne, se trouve le nombre 2 qui est le nombre de chemins de longueur 3
.......
..c reliant B à A. Ces deux chemins sont (B,A,B,A) et (B,D,C ,A) .
O'l
·;::::
>-
0..
c) Un circuit étant un chemin dont le sommet de départ coïncide avec le sommet
u
0
d'arrivée, la matrice M 3 montre qu'il y a trois circuits : au départ de A, de Cet de D.
d) Il n'y a aucun chemin de longueur 4 entre D et B.

176
Exercices corrigés

0 0 1 0 0
1 0 0 0 0
m a)M= 0 1 0 1 0
0 1 0 0 1
0 1 1 0 0

1 1 2 0 0
1 1 0 0 1
4
b) M = 1 2 1 2 0
1 2 1 1 1
1 2 2 1 0

c) Il y a 1 + 1 + 2 + 0 + 0 = 4 chemins de longueur 4 qui partent de A.


Un chemin relie A àA: (A,C,D,B,A).
Un chemjn relie A àB: (A,C,D,E,B), il est hamiltonien.
Deux chemins relient A à C: (A,C,B,A ,C) et (A,C,D,E ,C).

0 0 1
@Ill] a) M = 0 0 1
0 1 0
b) Il faut ajouter les arcs (B,B), (C,C) et ( A ,B).

0 1 0 0 0 1 0 1 1
c) M[ l = 0
2
1 0 M [3J = 0 0 1
2 3
M =M +M[ l +M[ l = 0 1 1
0 0 1 0 1 0 0 1 1
"'O
0
c
:J 0 1 0 1
0
li)
.,,:<:; 0 0 1 0
c::
..--t
0
:l
~
@lll a) M =
N
" 0 0 0 1
@
.......
~ 0
0 0 0 0
J:: :;
O'l
·;:::: "'0c::
>- c
o. .9
c b) Il faut ajouter les arcs (A,C) et (B ,D).
0
u ü
.,,
:l

2
o. 0 1 1 1
~
"
:; 0 0 1 1
1-
0
c) M =M + M [2l + M [3l + M [4 ] =
.,,
0
1
0 0 0 1
c
:l
0
QJ
0 0 0 0

177
Chapitre 6 • Graphes et ordonnancement

0 0 0 0 1 0 0 0 0 1
1 0 0 0 1 1 0 0 0 1
1=-t~ M = 0 0 0 0 0 M= 0 0 0 0 0
1 0 1 0 0 1 0 1 0 1
0 0 0 0 0 0 0 0 0 0
Le seul arc à ajouter est (D,E).
lftllJ Il faut d ' abord chercher les prédécesseurs de chaque sommet:
Tableau 6.29

Sommets A B c D E F G

Successeurs C, E --- F, G --- B, F D D

Prédécesseurs --- E A F, G A C, E c

Sa ={A} , si ={C, E}, s2={B; F; G} , S3 ={D}

A ~ C ~G7 D
E~F
B
Figure 6.29

-0
13111
0
c
:J Tableau 6.30
0
LI)
..-t
0
N
Sommets A B c D E F G H
@
....... ---
..c Successeurs E, G --- A, H F --- G B, D
O'l
·;::::
>-
0..
0
Prédécesseurs c H --- H A D A,F c
u

178
Exercices corrigés

B
Figure 6.30

ldlJ1 Un sommet n ' a pas de prédécesseur et chaque sommet n'a qu'un seul prédé-
cesseur. Ainsi chaque sommet est relié à Epar un chemin unique. Le graphe est donc
une arborescence dont la racine est E.
Tableau 6.31

Sommets A B c D E F G H I J K L

Successeurs B,L D,K --- --- A,) C,G,I --- --- --- F --- H

Prédécesseurs E A F B --- J F L F E B A

S0 ={E} , S1 ={A; J}, S2 ={B; F; L} , S3 ={C; D; G; H ; I; K}

~
L
A B
]~
F
"'O

0
0
c
:J

.,,:<:;
l
H
A
D K c
~ G l
li)
..--t c::
:l
0
N
~ Figure 6.31
"
@
.......
~ 0
J::
O'l
·;::::
:;
"'0c:: ldllij a) Areçoit la marque O. C, D et E sont de niveau 1, chacun d'eux n ' a qu'un
c::
>-
o. c:: prédécesseur, donc on leur attribue respectivement les marques 8, 3 et 4.
0 .9
u .,,ü Deux chemins arrivent sur B, de durées 3 + 4 = 7 et 4 + 2 = 6 donc on attribue la
:l

2
o.
~ marque 6 au sommet B. On attribue la marque 7 à F.
"
:;
0
1- Quatre chemins arrivent sur G : (marque de C) + 8 = 12 ; (marque de B) + 4 = 10 ;
.,,1
0
c:
:l
(marque de E) + 7 = 11 ; (marque de F) + 5 = 12. La marque de G est donc 10 et c'est
0
QJ la durée minimale du traj et pour relier A à G.

179
Chapitre 6 • Graphes et ordonnancement

Le chemin de durée minimale est (A,E,B,G) .

4
~~
4
A --- D -. B -. G

0 4 3~76 7 10
E 3 5
4 ~ F
7
Figure 6.32

b) Le trajet le plus court est (A,E,F,G) de longueur 210 + 200 + 210 = 620 km.
@f4 Le chemin de longueur minimale est (A,C,E,H,l) de longueur 9 + 7 + 10
+ 13 = 39. Celui de longueur maximale est (A,C,D,G,H,l) de longueur 9 + 20 + 7
+ 12 + 13 = 61.
lftll:) a)S0 ={A;B;C} , S, ={D;E} , S2 ={F}, S3 ={G}
b)

0 0 6
A

3 4
D 2
0 0
Début
0
B
1
-1l-6-F~'.-6-1-~3---+1-~1-9~i-9---+-
l --+~11 t ~i~OI

3 5 4
E

0 1 6
"'O c
0
c
:J Figure 6.33
0
LI)
..--t
0
N c) Le chemin critique est (A ,F, G). La durée minimale de réalisation du projet est
@
.......
..c
10 jours .
O'l
·;:::: d) La marge totale de E est MT( E) = T( E) - t(E) = 5 - 3 = 2 (jours). Cela veut dire
>-
Q.
0 que l'on peut accepter au maximum deux jours de retard sur le départ de la tâche E
u
sans que cela ne retarde la date de fin du projet.
e) La marge libre de la tâche C est ML(C) = t(G)- t(C)-d(C) = 9- 0- 6 = 3 (jours).
C'est le retard maximum que l'on peut accepter sur la date de début de la tâche C
sans que cela ne retarde la date de début au plus tôt de chacune de la tâche G (la
seule tâche qui suit immédiatement C).

180
Exercices corrigés

lftll#] a)
Tableau 6.32

Tâches A B c D E F G H I J

Niveaux 0 0 1 1 1 2 2 3 4 5

b)

Figure 6.34

c) Le chemin critique est (A,E,G,H,I,J). La durée minimale de réalisation du projet


est 19 jours.
d) Avec une durée de 5 jours pour la tâche C, la date au plus tôt de début de la tâche
Fest t(F) = 9. Comme t(F) ::::;; T(F), cela n'a pas d 'impact sur la date de fin du projet.
ft;.(1] On rappelle que :
• la marge totale d ' une tâche xi est MT(x) = T(x)- t(x);
• la marge libre ML(x) d' une tâche xi est le plus petit des nombres t(xk) - t(x)
"'O
0
c - d(x), où xk est une tâche qui suit xi"
:J
0
li)
.,,:<:; Tableau 6.33
..--t c::
:l
0 ~
N
" c
@
.......
~ 0
Tâche A B D E F G H I J
J:: :;
O'l
·;:::: "'0c:: Marge totale 0 2 4 1 0 4 0 0 0 0
>- c::
o. .9
c::
0
u .,,ü
:l
Marge libre 0 2 0 1 0 4 0 0 0 0
2
o.
~
"
:;
0
1-
.,,
0
1

c:
:l
0
QJ

181
"'O
0
c
::J
0
li)
r-t
0
N
@
.....,
.s::
Ol
'i:
>-
0.
0
u
L'EXAMEN
I

DE MATHEMATIQUES

L'épreuve de mathématiques s'appuie sur un sujet comportant deux ou trois exer-


cices, couvrant une partie significative de 1'ensemble du programme de mathéma-
tiques. Celle-ci ne vise pas à évaluer les connaissances en algorithmique appliquée.
Les exercices posés présentent des situations concrètes en relation avec des activités
professionnelles visées par le diplôme.

La calculatrice est autorisée et son usage est très utile dans divers domaines,
notamment pour le calcul matriciel.

L'évaluation de cette épreuve prend, sous forme écrite, l'une ou l'autre des formes
suivantes:
• Forme ponctuelle: un examen d'une durée de deux heures en fin de formation.
• Contrôle en cours de formation (CCF) : plusieurs devoirs surveillés se déroulant
pendant le deuxième semestre de la seconde année, au sein de l'établissement de
formation.

SUJET MÉTROPOLE 20 l 4
Exercice 1
"'O
0
c Un lycée a été doté de postes informatiques et de logiciels. Le proviseur envisage de
:J
0 transformer une salle de cours en salle informatique. Pour cela, le responsable du
li)
.,,:<:;
..--t c::
:l
projet définit les taches à réaliser avec leur durée. Le tableau 7.1 regroupe
0
" l'ensemble de ces données.
~
N
@
.......
~
J::
0
:; Le but de cet exercice est d'ordonner la réalisation de ces tâches de façon à ce que la
O'l
·;:::: "'0c::
salle soit disponible le plus rapidement possible. On considère le graphe orienté
>- c::
o. c::
.9 correspondant aux conditions d'antériorité données par le tableau 7.1.
0
u .,,ü
:l

2 1. Déterminer le niveau de chacun des sommets du graphe .


o.
~
" 2. Donner le tableau des successeurs.
:;
0

.,, 3. a) Construire le graphe d'ordonnancement du projet (selon la méthode P.E.R.T.


1-
1
0
c:
:l
ou M.P.M.). Déterminer pour chaque tâche les dates au plus tôt et au plus tard.
0
QJ b) En déduire le chemin critique et la durée minimale de réalisation du projet.

183
Chapitre 7 • L'examen de mathématiques

Tableau 7.1

Durée Tâches
Tâche à réaliser Repère
en jours précédentes

Vider la salle de cours et démonter le


A 2 -
matériel
Nettoyer et repeindre la salle B 4 A
Installer les tables et fixer un tableau c l B
Commander et réceptionner le matériel
D 10 -
et câblage
Déballer et contrôler le matériel livré E l D
Câbler la salle F 3 B,E
Installer et brancher les postes
G l C,F
informatiques
Installer les logiciels, configurer les
H 7 G
postes et tester leur fonctionnement

4. En fait, la réalisation de la tâche B a nécessité 10 jours au lieu de 4 car il a fallu


enduire un mur et le laisser sécher avant de le peindre. Ce changement a-t-il une
incidence sur la durée du projet? Expliquer pourquoi.

Exercice 2
La loi de Moore, énoncée en 1975 par Gordon Moore, cofondateur de la société
Intel, prévoit que le nombre de transistors des microprocesseurs proposés à la vente
au grand public double tous les deux ans. Les microprocesseurs fabriqués en 1975
comportaient 9 000 transistors. Pour modéliser cette loi de Moore, on considère la
suite (un) définie par u 0 = 9 000 et un+l = 2un pour tout entier naturel. Un terme un de
cette suite correspond au nombre de transistors prévus par la loi de Moore pour un
microprocesseur fabriqué lors de l'année 1975 + 2n.
1. Calculer u 1 et u2 puis interpréter ces nombres.
"'O
0
c 2. Quelle est la nature de la suite (un) ?
:J
0
li)
3. Donner l' expression de un en fonction de n.
..--t
0 4. Déterminer le nombre de transistors prévus par la loi de Moore pour un micro-
N
@
processeur fabriqué en 2001 .
....... 5. Selon ce modèle, à partir de quelle année les microprocesseurs intégreront-ils
J::
O'l
·;:::: plus de 1OO milliards de transistors ?
>-
0.
0
u
Exercice 3

Partie A
1. a) Décomposer le nombre 2014 en produit de facteurs premiers.
b) En déduire la liste des diviseurs positifs de 2014.

184
Sujet métropole 2014

2. Calculer le PGCD des nombres 2014 et 212. On note d ce PGCD. Déterminer


l'entier p tel que 2 014 =px d.

Partie B
Un jury de concours doit établir l'ordre de passage des 2014 candidats qui doivent
passer une épreuve orale. Le président du jury envisage la procédure automatique
décrite ci-après.
Tout d'abord, il classe les 2 014 candidats par ordre alphabétique et attribue à
chacun, en suivant cet ordre, un numéro allant de 1 à 2 014. Ainsi, pour définir un
ordre de passage à l'oral des candidats il suffit de dresser la liste des numéros des
candidats qui seront appelés l'un après l'autre à passer l' épreuve orale.
Pour établir cette liste, le président du jury choisit un entier n compris entre 1 et 400,
puis procède de la manière suivante :
• le premier numéro inscrit sur la liste est le nombre n ;
• le deuxième numéro inscrit sur la liste est le nombre 2n ;
• le troisième numéro inscrit est le nombre 3n ;
• de façon générale, pour obtenir chaque numéro inscrit à partir du deuxième, on
ajoute n au numéro précédent et :
• si la sommes obtenue est inférieure ou égale à 2 014, le numéro inscrit est égal
à cette somme s ;
• sinon, le numéro inscrit est égal à s - 2 014.
Par exemple, en choisissant n = 257, les premiers numéros inscrits sur la liste sont,
dans l'ordre :
257 - 514 - 771 - 1 028 - 1 285 - 1542 - 1 799 - 42 - 299 - 556 - ...
En effet : le premier numéro inscrit est n = 257 ; du 2ème numéro (égal à 514) au
7ème numéro (égal à 1 799), on a ajouté 257 au numéro précédent puisque la somme
"'O ne dépassait par 2 014 ; le 3ème numéro inscrit est le numéro 42 car 1 799 + 257
0
c = 2 056 et, comme 2 056 dépasse 2 014, le numéro à inscrire est 2 056 - 2 014 = 42.
:J
0
.,,:<:;
li)
..--t c::
:l
Ainsi le candidat 257 passera en premier l'oral ; il sera suivi du candidat 514 et ainsi
0
" de suite. Le président du jury se demande si cette procédure permet de convoquer
~
N
@
.......
~ tous les candidats, c'est-à-dire si la liste obtenue, en 2 014 étapes, contient tous les
0
J:: :;
O'l
·;:::: "'c:: nombres de 1 à 2 014.
0
>- c::
o. .9
c:: 1. Dans cette question, le président du jury choisit n = 212. Les neuf premiers
0
u ü
.,,
:l numéros inscrits sont donc :
2
o.
~ 212-424 - 636- 848 - 1060 - 1272 - 1484 - 1696 - 1908
"
:;
0
1- a) Donner la liste des 15 numéros suivants. La valeur den= 212 permet-elle de
.,,
0
1
convoquer tous les candidats ?
c:
:l
0
QJ b) Avec cette valeur den, combien de numéros différents la liste comporte-t-elle?

185
Chapitre 7 • L'examen de mathématiques

2. Dans cette question, le président du jury choisit n = 38. Déterminer combien de


numéros différents comporte la liste. Justifier la réponse. On pourra remarquer
que 38 est un diviseur de 2 014.

Partie C
D'après la partie B, il apparaît que, pour certaines valeurs den, la procédure utilisée
ne permet pas de convoquer tous les candidats, c' est-à-dire de constituer une liste
comportant tous les nombres de 1à2014. On admet le résultat suivant :« Le nombre
n choisi permet de former une liste complète comportant tous les numéros de 1 à
2014 dans le cas où le PGCD de 2014 et den est égal à 1, et dans ce cas seulement».
Ainsi, les nombres permettant de convoquer tous les candidats sont les entiers n
compris entre 1 et 400 qui sont premiers avec 2014.
1. Sin= 15, la procédure utilisée permet-elle de convoquer tous les candidats ?
2. Dans cette question, on cherche à déterminer le nombre d'entiers n, parmi ceux
compris entre 1 et 400, qui permettent par la procédure utilisée de convoquer
tous les candidats.
a) Donner le nombre de multiples de 2 non nuls, inférieurs ou égaux à 400.
b) Donner la liste des multiples impairs de 19, inférieurs ou égaux à 400.
c) Donner la liste des multiples impairs de 53, inférieurs ou égaux à 400.
d) En déduire le nombre d'entiers n qui ne permettront pas de convoquer tous
les candidats, puis le nombre d'entiers n qui le permettent.

"'O
0
c
:J
0
li)
..--t
0
N
@
.......
J::
O'l
·;::::
>-
0.
0
u

186
"'O
0
c
::J
0
LI)
,-i
0
N
@
......
..c
Ol
·;:
>-
0.
0
u
"'O
0
c
::J
0
li)
r-t
0
N
@
.....,
.s::
Ol
'i:
>-
0.
0
u
PREMIERS PAS

8.1 Qu'est-ce qu'un algorithme?


8.2 Le logiciel Python

>- Découvrir la notion d'algorithme


>- Comprendre l'intérêt d'un algorithme
>- Découverte et installation du logiciel Python

8.1 QU'EST-CE QU'UN ALGORITHME ?


Un algorithme est une suite finie d'actions élémentaires assemblées de manière
logique. Le but d' un algorithme est de réaliser une action complexe en la décompo-
sant en actions simples, c'est-à-dire pouvant être effectuées sans réflexion.

Exemple
Consid érons les actions simples suivantes :
Action 1 : Poser a = 1.
"'O
0
c
Action 2 : Effectuer le calcul ~+!
:J 2 a
0 Action 3 : Noter a le résultat.
li)
.,,:<:;
c::
..--t
0
:l Effectuons maintenant ces actions simples dans l'ordre suivant : Action 1 puis
~
N
" Action 2 puis Action 3 puis Action 2 puis Action 3 .
@
.......
~ 0 1 1 1,5 1
J:: :; Cela donne : a =l; -+-=1,5; a= l ,5 ; - + - = 1,41666 ... ; a= l,416666 ...
O'l
·;:::: "'0c:: 2 1 2 1,5
>- c::
o. .9
c::
0
u ü
.,,
:l La valeur de a obtenue est une approximation de Ji.
2
o. Pour obtenir une meilleure précision, on poursuit en renouvelant autant qu'on le
~
"
:; souhaite les Actions 2 et 3, comme par exemple : Action 1 puis Faire quatre fois
0
1- de suite Action 2 puis Action 3 .
.,,1
0
c:
:l
On obtient alors au final a= 1,414213562 ... , un ré sultat très proche de Ji .
0
QJ Ce procédé est un algorithme connu appelé aussi algorithme de Héron.

189
Chapitre 8 • Premiers pas

Les premiers algorithmes connus remontent à 1'époque babylonienne. Un algo-


rithme peut être exécuté« à la main», c'est-à-dire en effectuant soi-même une à une
les actions élémentaires, mais il existe depuis les années 1970 un instrument de calcul
permettant de réaliser bien plus rapidement l'ensemble de toutes ces actions: l'ordi-
nateur. En effet, les langages informatiques (Python, C, C++, C#, Visual Basic,
Scilab ... ) permettent d'exécuter les algorithmes. Il faut toutefois apprendre à les
transcrire. Par exemple en Python : « print » pour « Afficher», «if... : ... » pour
«Si ... alors ... » ...
Lorsqu'on traduit un algorithme dans un langage de programmation, on dit que
1'on implémente cet algorithme, la transcription est alors appelée programme
informatique.
Il existe différentes façons de présenter un algorithme. Notre but étant l'implé-
mentation dans un langage de programmation, nous choisirons d'écrire les algo-
rithmes en pseudo-code. Il s'agit de la présentation et de la syntaxe la plus proche
des langages de programmation.

Dans ce manuel, tous les programmes sont écrits en langage Python . Nous avons
choisi ce langage pour la simplicité de sa syntaxe et sa lisibilité qui permettent un
meilleur apprentissage des concepts algorithmiques.

8.2 LE LOGICIEL PYTHON


Python est un logiciel libre qui fonctionne sur la plupart des plates-formes informa-
tiques (Windows, Linux, Mac OS ... ). Nous utilisons ici la version 3.4, dernière
version stable au moment où ce livre est écrit. Celle-ci est téléchargeable gratuite-
ment à l'adresse suivante: https:/lwww.python.org/downloads/
Après téléchargement puis installation, on accède à la console Python (fig. 8.1)
en lançant« IDLE (Python GUI)».

la Python 3A.1 Shell 1=j@J11....f.],,,,,1 i!


File Edit Shell Debug Options Windows Help
Pychon 3 .1. 1 (v3 . 1 . l:c0e3lle010!c, May 18 2011, 10 : ..:.
"'O 15: 13) [MSC v . 1 600 61 b ic (AMD61)) on win32
0 Type "copyright", "credits" or "license() " f or more
c info rmation.
::J
0 »> 1
lJ) Figure 8.1
......
0
N Cette console se comporte comme une calculatrice, on peut y saisir directement
@
....., des instructions qui sont aussitôt exécutées. Lorsque leur nombre devient plus consé-
.s::
Ol quent, on utilise l'éditeur Python (fig. 8.2) accessible en cliquant sur « File » puis
'i:
>-
0.
«New File ».
0
u LO Python 3A.l Shell

info File Edit Format Run Options Windows Hetp


»> 1

Figure 8.2

190
CONCEPTS
FONDAMENTAUX

9.1 Données : types et opérations


9.2 Stockage des données
9.3 Lecture et écritures des données
9.4 Instructions conditionnelles
9.5 Instructions itératives
9.6 Fonctions et procédures
9.7 Récursivité

> Découvrir les grands principes algorithmiques


> Expérimenter les instructions algorithmiques de base
> Écrire, interpréter, compléter et corriger des algorithmes,
trouver des solutions

9.1 DONNÉES : TYPES ET OPÉRATIONS


En algorithmique, on manipule différents types de données :
• les booléens : VRAI, FAUX (notés True et False en Python) ;
"'O
0
• les entiers : ..., - 3, -2, -1, 0, 1, 2, 3, 4, ... ;
c
:J • les réels: par exemple 5.37, 15.0 et-14.001 ;
0
li)
.,,:<:; • les chaînes de caractères : par exemple 'Bonjour' et '41 n5K6' ;
..--t c::
:l
0
N
~ • les listes (ou tableaux) : par exemple ['az',2, 19,VRAI], [2,4,5] et [[5,3],[1,8]].
"
@
.......
~
0
J:: :; 9.1.1 Type et valeur d'une donnée
O'l
·;:::: "'0c::
>-
o.
c::
c:: Pour connaître le type d'une donnée x, on saisit type( x) sur la console Python qui
0 .9
u .,, retourne respectivement' bool' , 'i nt' , 'fi oat' , 'st r' ou' 1 i st' si x est de
ü
:l

2 type booléen, entier, réel, chaîne de caractères ou liste.


o.
~
"
:;
0
1-
»>type (7.34 )
.,,
0
1 <c l a s s ' fl oat'>
c:
:l
0
QJ Le nombre 7 . 3 4 est de type réel.

191
Chapitre 9 • Concepts fondamentaux

··'de d'ecouverte 91
(A ct1v1te .
Utiliser la console Python pour déterminer le type de chacune des données
suivantes: 43; 43.0; '43'; [43]; "; []; [l,2,3]; False; [[l],{2,3]].

SOLUTION. 43 est de type entier; 43.0 est de type réel ; '43' est de type chaîne de
caractères ; [43] est de type liste (liste ne contenant qu'un seul élément) ; "est de
type chaîne de caractères (c'est la chaîne de caractère vide) ; []est de type liste
(c'est la liste vide) ; [1,2,3] est de type liste ; False est de type booléen
[[1],[2,3]] est de type liste (liste dont les éléments sont des listes).
__J
On détermine la valeur d'une donnée en la saisissant sur la console Python :
»> 12+5 .3
1 17. 3

9.1.2 Opération sur les nombres

( A ct1v1te
.. ' d e d ecouverte
' 92
.
Sur la console Python effectuer les opérations suivantes :
2*3; 2**3 ; 10**4 ; 2514; 25114; 52%4
Que représentent les opérations a *b, a**b, a/b, a/lb et a%b en langage Python ?

SOLUTION. 2*3 vaut 6 ; 2**3 vaut 8 ; 10**4 vaut 10 000; 25/4 vaut 6.25 ;
25114 vaut 6 ; 25%4 vaut 1.
a*b représente a x b ; a**b représente ab ; a/b représente a7b (division décimale
de a par b); a/lb représente le quotient de la division euclidienne de a par b ; a%b
représente le reste de la division euclidienne de a par b.
_J
-0 Tableau 9.1 - Opérations sur les nombres.
0
c
:J
0 Opérations En pseudo-code En Python
li)
..--t
0
N a+b a+b a +b
@
.......
.!::
a-b a-b a- b
O'l
·;::::
>- ax b a" b a*b
0.
0
u ab a Ab a**b
Division décimale de a par b a/b aI b
Quotient dans la division euclidienne de a par b a//b aI I b
Reste dan s la divi sio n euclidienne de a par b a%b a %b

192
9.1 • Données : types et opérations

9.1.2 Comparer des nombres


Le résultat d'une comparaison est un booléen : VRAI ou FAUX. Par exemple la
valeur de « 5 < 8 » est VRAI, celle de « 8 < 5 » est FAUX.

.. ' de d ecouverte
( A ct1v1te ' 93
.
Utiliser la console Python pour déterminer la valeur de chaque booléen :
4==4 ; 3== 7; 21=3; 6!=6; 2<5; 2<=5 ; 2>=5
Si a et b sont des nombres, que signifie a==b, a!=b, a< =b et a> =b en Python ?

SOLUTION. 4==4 vaut VRAI, 3==7 vaut FAUX ; 2!=3 vaut VRAI ; 6!=6 vaut
FAUX ; 2<5 vaut VRAI ; 2<=5 vaut VRAI ; 2>=5 vaut FAUX.
a==b, a!=b, a<=b et a>=b signifient respectivement« a est bien égal à b »,a # b,
a~ b et a~ b.
_J
Tableau 9.2 - Opérateurs de comparaison sur les nombres.

Pseudo-code Python Pseudo-code Python

a==b (traduction :
a== b a~b a<=b
a est bien égal à b)
a:;tb a! =b a>b a>b
a<b a<b a~ b a>=b

9.1.3 Opérations sur les booléens

"'O
0
( A ct1v1te
.. ' d e d ecouverte
' 94
.
c
:J
0
li)
.,,:<:; Utiliser la console Python pour déterminer la valeur de chaque booléen :
..--t c::
:l
0
N
~ not(2==3); 2<3 and 3<2; 2<3 or 3<2; (2<3)<=(1<2); (5<3)==(5==7)
"
@
.......
~ 0 Si A et B sont des booléens, que signifient not(A), A and B, A or B, A<=B et
J:: :;
O'l
·;:::: "'0c:: A==B en Python?
>- c::
o. .9
c::

u
0
ü SOLUTION. not(2==3) vaut VRAI ; (2<3 and 3<2) vaut FAUX ; (2<3 or 3<2) vaut
.,,
:l

2
o.
VRAI; (2<3)<=(1 <2) vaut VRAI ; (5<3)==(5==7) vaut VRAI.
~
"
:;
Si A et B sont des booléens, not(A), A and B, A or B, A<=B et A==B signifient
0
1- non(A), « A et B », « A ou B », A=>B et A<=:>B respectivement.
.,,
0
1
_)
c:
:l
0
QJ

193
Chapitre 9 • Concepts fondamentaux

Tableau 9.3 - Opérations sur les booléens.

Pseudo-code Python Pseudo-code Python

non A no t ( A) A=>B A<=B


A et B A and B A<=:>B A==B
A ou B A or B

9.1.4 Opérations sur les chaines de caractères

··'de d'ecouverte 95
(A ct1v1te .
Utiliser la console Python pour déterminer la valeur de chaque chaîne de
caractères: '11'+'32' ; 'bonjour'+ 'l12' ; 'bonjour'[O] ; 'bonjour'[l] ;
len('bonjour'); len('l 1227'); 'bonjour'[2:4] ; 'bonjour'[0:4] ; 3*'bonjour'+ '23';
4*('11 '+ '5')+ 'AA '.
SOLUTION. '11 '+'32' vaut '1132' ; 'bonjour'+'l 12' vaut 'bonjourl 12' ; 'bonjour'[O]
vaut 'b' ; 'bonjour'[!] vaut 'o' ; len('bonjour') vaut 7 ; len('l 1227') vaut 5 ;
'bonjour'[2:4] vaut 'nj' ; 'bonjour'[0:4] vaut 'bonj' ; 3*'bonjour'+'23' vaut
'bonjourbonjourbonjour23' ; 4*('11'+'5')+'AA' vaut '115115115115AA'.
_ J

Tableau 9.4 - Opérations sur les chaînes de caractères.

Opérations Pseudo-code Python

Concaténation des chaînes ch l et ch2 chl +ch2 ch l +ch2

Nombre de caractères de la chaîne ch longueur(ch) 1 en ( ch)

"'O Premier caractère de la chaîne ch ch[O] c h [ 0l


0
c
:J
0 i+ l ème caractère de la chaîne ch ch[i] c h[ i l
li)
..--t
0 Partie de la chaîne ch, du i + l ème au jme caractère ch[i:j] chr i : j i
N
@
.......
.!::
O'l
·;:::: 9.1.5 Opérations sur les listes
>-
0.
0
u
( A ct1v1te
·· ' d e d ecouverte
' 96
.
Utiliser la console Python pour déterminer la valeur de chaque liste :
[1 ,3,5,7][0] ; [l ,3,5,7][1] ; [l,3,5, 7,9][1:4] ; [l,{3,5}, 7,9][1] ; [l ,{3,5],
7,9][1 ][0]; {1,[3,5],7,9][1][1] ; [1 ,{3,5],7,9][2].

194
9.1 · Données : types et opérations

SOLUTION. [1 ,3,5,7][0] vaut 1; [1,3,5,7][1] vaut 3; [l,3,5,7,9][1:4] vaut [3,5,7] ;


[1 ,[3,5],7,9][1] vaut [3,5]; [l ,[3,5],7,9][1][0] vaut 3 ; [1 ,[3,5],7,9][1][1] vaut 5;
[1,[3,5],7,9][2] vaut 7.
_)

En Python, pour ajouter un élément x à une liste L, on utilise la fonction


L.append(x).

Tableau 9.5 - Opérations sur les listes.

Opérations Pseudo-code Python

Nombre d'éléments de la liste L long ueu r(L) 1 e n ( L)

1er élément de la liste L L[O] L[ O]

i+ 1 ème élément de la liste L L[i] L[ i]

Part ie de la liste L, du i + 1 ème au /me élément L[i :j] L[ i : j l

Ajouter l'élément e à la li ste L Ajouter e à L L.a ppend (e)

9.1.6 Convertir des données

· · ' de d ecouverte
( A ct1v1te ' 97
.
Utiliser la console Python pour déterminer la valeur de chaque donnée :
str(l5); str(56.8); str(True); int('53') ;float('68.2')
"'O
0
c SOLUTION. str(l5) vaut '15' ; str(56.8) vaut '56.8' ; str(True) vaut 'True' ; int('53')
:J
0
li)
.,,:<:; vaut 53 ; float('68.2') vaut 68.2.
c::
..--t
0
N
:l
~
_)
"
@
.......
~ 0
Tableau 9.6 - Conversion de données.
J:: :;
O'l
·;:::: "'0c::
>- c:: Fonction Effet
o. .9
c::
0
u ü
.,,
:l

2
o.
str(x) Renvoie la donnée x dans une chaîne de caractè res .
~
"
:;
1-
0 int(ch) Renvoie, lorsque c'est possible, l'entier associé à la chaîne ch.
.,,
0
1

c:
0
:l
float(ch) Renvoie, lorsque c'est possib le, le réel associé à la chaîne ch.
QJ

195
Chapitre 9 • Concepts fondamentaux

9.2 STOCKAGE DES DONNÉES


Pour pouvoir réutiliser une donnée dans un programme informatique, il faut la
stocker provisoirement dans un espace mémoire de 1'ordinateur appelé variable. Cet
espace peut être considéré comme une boîte portant un nom et dans laquelle on
range une donnée. Lorsqu'on stocke une donnée dans une variable, on dit que la
variable est affectée à cette donnée.

Exemple
En Python, on stocke la valeur 4.2 dans une variable a 1 en écrivant «a 1=4. 2 ».
Sur la console Python, réalisons cette affectation, appelons ensuite la valeur de a 1
puis celle de 1 0 * a 1+7. Cela donne :
>>> a 1=4 . 2
>>>a l
4. 2
>>> 10 *al+ 7
49
En pseudo-code, on écrit « a 1 prend la valeur 4.2 »ou plus simplement « a 1 f - 4.2 ».

Tableau 9. 7 - Affectation des variables.

Instruction Instruction
en pseudo-code en Python

nom_variable f- donnée n o m_ v a r i a b 1 e = d o n né e
a f- 8 a =8

Exemples nom f- 'Deschamp' n o m=' De s c h a mp '


d'affectation ok f- Vrai ok =Tr ue
listel f- ['12' ,4, 'aze rty'] li s te l =[' 12 ', 4, ' aze r t y']

"'O
0
c
:J
0 En Python, comme dans tout langage de programmation, le nom d' une variable
li)
..--t doit respecter un certain nombre de règles :
0
N • son premier caractère doit être une lettre (majuscule ou minuscule) ou « _ », les
@
....... caractères suivants peuvent être des lettres, des chiffres ou « _ » ;
J::
O'l
·;:::: • il ne doit pas être un mot réservé du langage (comme « print » ou « while »).
>-
0.
0 • Par exemple, une variable peut se nommer « aZe_Y44 » ou « _hr_t9 », mais pas
u
« 4ahTR » ou « #qi4 » .

De plus, pour faciliter la lecture d'un algorithme, il est essentiel de donner à


chaque variable un nom en lien avec sa valeur. Par exemple, il est préférable
qu'une variable ayant pour val eur 'Paul' s'appelle prenom ou prénom plutôt que
d4j_5 ou z.

196
9.2 • Stockage des données

Nous présenterons dans un premjer temps, les algorithmes comme suit, en décla-
rant le nom et le type de chaque variable, puis en plaçant la suite des instructions à
effectuer entre des marqueurs de début et de fin.
Variables : nom-variable l (type), nom-variable2 (type), etc.
Début
1 <suite d'instructions>
Fin

Lorsqu'on exécute un algorithme, les instructions sont effectuées les unes après
les autres. Considérons l'algorithme suivant :
Variables : n, m, nb (entiers)
Début
n +-- 8
m +-- 3
nb +-- n"2-m* 1 O
Fin

Lorsqu'on exécute cet algorithme, la variable n prend la valeur 8, puis la variable


m prend la valeur 3 et enfin la variable nb prend la valeur de n"2-m*10 donc 82 - 3
x 10, c'est-à-dire 34. Implémentons cet algorithme sur la console Python puis appe-
lons la valeur de nb pour vérifier :
>>> n=8
>>> m=3
>>> n b = n * * 2 - m* 10
>>> nb
34
En langage Python, on peut faire des « affectations multiples», c'est-à-dire affec-
ter plusieurs variables en une seule instruction. Plus précisément, les affectations
n= 8 et m= 3 de l'exemple précédent peuvent s'effectuer en écrivant n, m=8, 3 (ou
m, n =3, 8 ).

"'O
0 (A ct1v1te
.. 'd e d ecouverte
' 98
.
c
:J
0
li)
.,,:<:; Que vaut la variable z après exécution de l'algorithme suivant ?
..--t c::
0
:l
~
Variables : z (entier)
N
" Début
@
.......
~ 0
z +-- 6
J:: :; z +-- 2*z
O'l
·;:::: "'0c:: z +-- z+3
>- c::
o. .9
c:: Fin
0
u .,,ü
:l

2
o. SOLUTION. Après exécution, z vaut 15. z prend d'abord la valeur 6, puis 2 x 6
~
"
:;
= 12 et enfin 12 + 3 =15. On peut vérifier ce résultat avec la console Python en
0
1- validant la suite d'instructions« z=6 », « z=2*z », « z=z+3 » puis « z ».
.,,1
0
c:
:l
_)
0
QJ Comme nous venons de le voir, une variable peut participer à son affectation.

197
Chapitre 9 • Concepts fondamentaux

.. 'd e d'ecouverte 99
(A ct1v1te .
Sur la console Python, affecter une variable p à la valeur 31, demander son type,
puis réaffecter cette variable p à la valeur 'azerty' et redemander son type.
Que dire du typage des variables en Python ?

SOLUTION.

>>> p= 3 l
>» type(p)
<class ' int '>
>>> p= ' azer t y'
»> type( p )
<class 's tr '>

Le typage des variables n'est pas statique en Python, c'est-à-dire que l'on peut,
au cours d'un programme, changer la valeur d'une variable par une autre valeur
de type différent. On parle de typage dynamique.
__ )

9.3 LECTURE ET ÉCRITURE DES DONNÉES

( Activité de découverte 9. 10
Ouvrir l'éditeur Python (sur la console, sélectionner le menu File puis New File)
puis recopier le programme suivant:

k= 30
k=k+8
p r i n t ( " l e n o mb r e k v a u t " , k)

-0 Enregistrer (File puis Save ou Ctrl+S) puis exécuter ce programme (Run puis
0
c
:J
Run Module ou F5).
0 Expliquer le résultat puis donner le rôle de la fonction « print » en Python.
li)
..--t
0
N SOLUTION. Le programme affiche« Le nombre k vaut 38 ».Explications : k prend
@
.......
.!::

u
O'l
·;::::
>-
0.
0
la valeur 30 puis k prend la valeur de k + 8 c'est-à-dire 30 + 8 = 38 .
L' instruction « p ri nt (données)» a pour rôle d'afficher des données .
__ )

Tableau 9.8 - Affichage de données (écriture).

Instruction en pseudo-code Traduction Python Résultat après exécution

Afficher données p r i nt (données) Affiche les données

198
9.3 • Lecture et écriture des données

Considérons l'algorithme suivant:

Variable : x (réel)
Début
X~ 8.4
1
Afficher "Le quart du nombre ",x," est",x/4
Fin

Implémentons en Python (dans l'éditeur) :

X =8. 4
p r i n t ( " Le q u a r t d u n o mb r e " , x , " e s t " , xI 4 )

Après exécution, on obtient, « Le quart du nombre 8.4 est 2.1 ».


Pour inviter l'utilisateur à rentrer des données, on se sert de l'instruction« Saisir»
nommée « i n put » en langage Python.
Tableau 9.9 - Saisie de données (lecture).

Type de la variable Pseudo-code Python

Chaîne de caractères Saisir nom_var n o m_ v a r =i n p u t ( )

Entier Saisir nom _var n o m_ v a r =i n t ( i n p u t ( ) )

Réel Saisir nom_var n o m_ v a r =f 1 o a t ( i n pU t ( ) )

L' algorithme suivant a pour rôle de demander un mot et un nombre entier n à


l' utilisateur, puis d'afficher la somme den et du nombre de lettres du mot saisi :

Variables : n (entier), mot (chaîne)


Début
Afficher "Saisir un mot : "
Saisir mot
"'O
Afficher "Saisir un nombre entier : "
0
c
Saisir n
:J Afficher "Nombre de lettres du mot ",mot,"+ ",n," = ",n+longueur(mot)
0
li)
.,,:<:; Fin
..--t c::
:l
0 ~
N
" Implémentons cet algorithme en Python (dans l 'éditeur):
@
.......
~ 0
J:: :;
O'l
·;:::: "'0c:: mo t = i n p u t ( " S a i s i r u n mo t : " )
>- c::
o. c:: n = i n t ( i n p u t ( " S a i s i r u n n o mb r e e n t i e r : " ) )
.9
u
0 p r i nt ( " No mb r e de l e t t r e s du mo t " , mot , " +" , n , " =" , n + l e n ( mot ) )
.,,ü
:l

2
o.
~
"
:;
Après exécution, si l'on saisit par exemple« a z e r t y »et « 3 »,on obtient l'affi-
1-
0
chage« Nombre de lettres du mot azerty + 3 = 9 ».
.,,01
c:
:l
Nous écrirons maintenant chaque algorithme non trivial avec un en-tête muni de
0
QJ son nom, de son rôl e, des données saisies et des données affichées :

199
Chapitre 9 • Concepts fondamentaux

Nom de l'algorithme
Rôle : description rapide du rôle de l'algorithme
Entrée(s) : donnée(s) saisie(s)
Sortie(s) : donnée(s) affichée(s)

Variables : nom-variable 1(type), nom-variable2 (type), etc.


Début
1<partie principale>
Fin

9.4 INSTRUCTIONS CONDITIONNELLES


En algorithmique, on peut vouloir effectuer ou non une instruction selon qu' une
condition est vraie ou fausse. On parle d' instruction conditionnelle. Le tableau 9.10
en présente la structure en pseudo-code et en Python.

Tableau 9.10 - Structure des instructions conditionnelles.

Pseudo-code Python

Si <condition> Alors if <co nd ition>


1 < instructions> <i ns t r uctio ns>
SinonSi <condition > Alors e l if <co ndit i o n>
1 < instructions> <i nst r uctio ns>
Sinon el s e
1 <instructions> <i nst r uctio ns>
Fin Si

L'algorithme suivant demande à l'utilisateur un nombre entier puis affiche sa parité.

"'O
0
c
:J Algorithme parité
0
li)
Rôle : donne la parité d'un nombre rentré par l'utilisateur
..--t
0
Entrée : saisi e d'un nombre entier
N Sortie : affiche la parité du nombre
@
.......
J::
O'l
·;::::
Variable : n (entier)
>- Début
0.
0 Afficher "Saisir un nombre entier : "
u Saisir n
Si n%2==0 Alors
1 Afficher "Ce nombre est pair."
Sinon
J Afficher "Ce nombre est impair."
FinSi
Fin

200
9.5 • Instructions itératives

Implémentation en Python
n = i n t ( i n p u t ( " S a i s i r u n n o mb r e e n t i e r "))
i f n %2 ==0:
p r i nt ( " Ce no mb r e e s t p a i r . " )
e 1 se :
p r i n t ( " Ce no mb r e e s t i mp a i r " )

Une instruction conditionnelle peut se limiter à une structure du type « Si


Alors ... » ou « Si ... Alors ... Sinon ... ».
Le mot-clé« Alors» du pseudo-code se traduit par« : »en Python.
En Python, il n'y a pas de marqueur de fin (comme FinSi), c' est l' indentation (le
décalage) qui permet de délimiter les blocs d'instructions.
On peut aussi imbriquer les instructions conditionnelles comme ci-après :
Si <condition l >Alors
Si <condition2> Alors
1 <instructions>
FinSi
Fin Si

9. 5 1NSTRUCTIONS ITÉRATIVES
Pour exécuter plusieurs fois de suite un bloc d'instructions, on utilise une boucle.
Si le nombre d'exécutions est connu à l'avance, on va privilégier une boucle
« Pour », sinon une boucle« TantQue ».

9.5.1 La boucle Pour

( Activité de découverte 9. 7 7
"'O
0
c Exécuter le programme Python suivant. En déduire la définition de range(0,10)
:J
0 et le rôle de la structure «for nom_ var in L: <instructions> » pour une liste L.
li)
.,,:<:;
..--t c::
:l
0 ~ f o r k i n ran ge( 0 , 10 ) :
N
" prin t(k)
@
.......
~ 0
J:: :;
O'l
·;:::: "'0c:: SOLUTION. Après exécution on obtient l'affichage des entiers compris entre 0 et
>- c::
o. .9
c::
9. range ( 0 , l 0) est la liste des entiers de 0 à 9. Lors de l'exécution de« for
0
u .,,ü
:l
n o m_ v a r i n L: <i n s t r u c t i o ns > » , la variable n o m_ v a r prend, une à
2
o.
~ une, toutes les valeurs des éléments de la liste L, et pour chacune d'elles, le bloc
"
:; d ' instruction< i n s t ru c t i on s > est exécuté.
0
1-
.,,
0
1 _..)
c:
:l
0
QJ

201
Chapitre 9 • Concepts fondamentaux

Tableau 9. l l - Structure de la Boucle Pour.

En pseudo-code En Python Résultat

Pour var dans liste Faire for va r i n 1 i s t e La variable var prend toutes les
1
<instructions> <i nst ru ct ion s> valeurs des éléments de la liste 1 i s te
Fin Pour et, pour chacune d'elles, exécution du
bloc <i ns t r uct ion s>.

Pour var de n à p Faire for var in La variable var prend toutes les
1
<instructions> range( n, p+l) valeurs entières de l'entier n à l'entier
Fin Pour <in struction s> p, et pour chacune d'elles, exécution
du bloc <i nst ru ct ion s>.

La variable var est appelée compteur de la boucle« Pour».


En Python, range( n , p) désigne la liste [n,n+l, ... ,p-1], donc par exemple
range( 1, n) désigne la liste [1,2,... ,n-1]. De même, range(O, n) désigne la liste
[0,1, ... ,n-1], qui peut aussi se noter plus simplement range( n) .

Lorsque l'on écrit un algorithme ou un programme non trivial, il est bon d'écrire
des commentaires à côté de certaines instructions. On utilise pour cela « # » en
Python. On fait de même en pseudo-code (on peut aussi utiliser « Il »). Les
commentaires n' ont aucun effet lors de l'exécution . Ils constituent simplement
une aide dans la lecture ou la relecture d'un programme ou d'un algorithme.

L'algorithme suivant calcule puis affiche la somme S = 10 + 11 + 12 + ... + 200 :

Algorithme somme
Rôle : calcul de la somme l O+ 11 + ... +200
Entrée : -------------
Sortie : affichage de la somme

Variables : S,k (entiers)


Début
"'O
0 S f- 0 #initialisation
c
:J Pour k de l 0 à 200 Faire
0
li)
1 S f- S+k
..--t Fin Pour
0
N Afficher S
@ Fin
.......
J::
O'l
·;::::
>-
0.
Implémentation en Python :
0
u S=O #initiali s ation
for k in r a nge( L0 , 20L):
#attention! range(l0,201) e t non range(l0 ,2 00)
S=S+k
print(S)

Résultat après exécution : 20 055.

202
9.5 • Instructions itératives

9.5.2 La boucle TantQue

(Activité de découverte 9. 12
Exécuter le programme Python suivant et en déduire le rôle de la structure
« while <condition> : <instructions> ».

n= Ü
wh i 1 e n < 1 0:
n=n+3
print(n)

SOLUTION. Après exécution on obtient l'affichage des nombres 3, 6, 9 puis 12.


Lors de l'exécution, la variable n prend d' abord la valeur O. Ensuite, tant que la
condition n < 10 est vérifiée, on augmente n de 3 puis on affiche n. Voici le
détail, étape par étape: 0 < 10 donc n = 0 + 3 = 3 et on affiche 3 ; 3 < 10 donc n
= 3 + 3 = 6 et on affiche 6 ; 6 < 10 donc n = 6 + 3 = 9 et on affiche 9 ; 9 < 10 donc
n = 9 + 3 = 12 et on affiche 12 ; on n' a pas 12 < 10 donc on n'effectue plus le
bloc d' instructions « n = n + 3 ; print(n) ». La structure « while <condition> :
<instructions> » effectue le bloc d' instructions <i n s t r u c t i on s > tant que la
condition <c on di t i on > est vraie.
_J
Tableau 9. l 2 - Structure de la boucle TantQue.

En pseudo-code En Python Résultat

TantQue <condition> Faire wh i 1 e <condition> Tant que la condition


1 <instructions> <ins tr uct i ons> <con di t i o n> est vraie, on
FinTantQue effectue le bloc d'instructions
<i ns t ru ct ion s >.

L'algorithme suivant détermine et affiche le plus petit entier n tel que 1,01n>200:
-0
0 Variable : n (entier)
c
:J Début
0 n- 1 #initialisation à 1 par exemple
li)
.,,:<:;
..--t c::
:l TantQue 1.01 "n<=200 Faire
0
N
~

" 1 n - n+ 1
@
.......
~ 0
FinTantQue
Afficher n
J:: :;
O'l
·;:::: "'0c:: Fin
>- c::
o. .9
c::

u
0
ü
.,,
:l
Implémentation en Python :
2
o. n=I
~
"
:;
wh i 1 e 1. Ol* * n<=200:
0
1--< n =n+I
.,,
0
1
print(n)
c:
:l
0
QJ Résultat après exécution : 533

203
Chapitre 9 • Concepts fondamentaux

9.6 FONCTIONS ET PROCÉDURES

9.6.1 Les fonctions usuelles


Les fonctions usuelles (exp, ln, sin, etc.) sont disponibles en Python en chargeant le
module mat h à l'aide de l'instruction i mp or t ma t h . L'appel de la fonction s' effec-
tue alors en écrivant mat h. nom_ f on c t i on .
Exemple
On a affiché ci-dessous une valeur approchée de J3
>>> i mp o r t ma t h
>>> p r i n t ( ma t h . s q r t ( 3 ) )
1. 732 050 807 5688772

9.6.1 Création de fonctions et procédures


On peut créer en algorithmique toute sorte de fonctions, comme la fonction! définie
par f(x) = 3x2 - Sx+ 2 ou des fonctions beaucoup plus originales comme la fonction
g qui à tout nombre entier n renvoie la chaîne de caractères 'nombre pair' ou 'nombre
impair' selon la valeur den.

( Activité de découverte 9. 73
1) Exécuter le programme Python suivant:
def f (x ) :
return(x *x)
d ef g(x):
prin t(x * x)

2) Dans la console Python :


a) Saisir et valider f(5) puisf(6), g(5) et g(6). Que représentent! et g ?
b) Saisir « a=f(3) » puis appeler a (taper « a » puis valider).
c) De même, saisir « b=g(3) » puis appeler b. Que constate-t-on ?
"'O
0
c
:J
SOLUTION. 2) a)f(5) etg(5) renvoient25.f(6) etg(6) renvoient36.fetg représentent
0
li)
la fonction carrée, c 'est-à-dire qu'elles sont définies par f(x) = g(x) = x 2.
..--t
0
b) On obtient a= f(3) = 9 .
N
c) Lorsqu'on appelle b, rien ne se passe.
@
.......
J::
Explications: la fonctionf, telle qu ' elle est définie est une « vraie » fonction au
O'l
·;:::: sens algorithmique, car elle retourne à tout réel x une valeur f(x), qui est ensuite
>-
0. stockable dans une variable. En algorithme et en programmation, on dit que f est
0
u une fonction.
A contrario, g n'est pas, en ce sens, une fonction car elle ne retourne pas une valeur
pouvant affecter une variable. Elle ne fait qu'effectuer des instructions (ici : affi-
chage du résultat d'un calcul). On dit que g est une procédure. La variable x est
appelée paramètre d'entrée de la fonction! et de la procédure g.
_)

204
9.6 · Fonctions et procédures

(Activité de découverte 9. 74
Exécuter le programme Python suivant puis, dans la console, saisir et valider
mystere(3) puis mystere(4) et mystere(S).
Justifier que mystere(n) est une fonction et donner son rôle.
def my s t e r e ( n ) :
i f n %2 ==0:
r et urn(' oui')
e 1 s e:
return(' n on ')

SOLUTION. On obtient 'non' pour mystere(3), 'oui' pour mystere(4) et 'non' pour
mystere(S) . mystere(n) est une fonction car une valeur ('oui' ou 'non') est bien
retournée pour toute valeur den: mystere(n) renvoie 'oui' si le paramètre d'entrée
n est un entier pair et 'non' sinon.
_J
On peut créer toutes sortes de fonctions, comme par exemple :
• la fonction listediv(n) qui retourne la liste des diviseurs d'un entier n ;
• la fonction somme(L) qui retourne la somme des éléments d'une liste L de nombres ;
• la fonction originale(n,ch) qui à un nombre entier n et à une chaîne de caractères
ch retourne la liste [n+longueur(ch), n*ch+ 'azertyl n et ch sont les paramètres
d'entrée et le résultat est de type liste ;
• etc.
Tableau 9.1 3 - Structures d'une fonction et d'une procédure.

En pseudo-code En Python

Fonction nom_fct(paramètres et types) : d ef n o m_ f c t ( p a r a mè t r e s ) :


Début <in s tru c t io ns >
1 <instructions> r e turn (don née de so rt ie)
Retourner (donnée de sortie)
Fin Fonction
"'O
0
Procédure nom _proc(paramètres et types) d ef n o m_ p r o c ( p a r a mè t r e s ) :
c Début <in st r uc t io n s>
:J
0 <instructions>
li)
.,,:<:; 1
Fin Procédure
..--t c::
:l
0 ~
N
" La fonction suivante retourne à tout entier naturel n, la liste de ses chiffres :
@
.......
~ 0
J:: :;
O'l "'0c:: Fonction liste_chiffres (n : entier) : liste
·;::::
>- c:: Variables locales : k (entier), L (liste), ch (chaîne)
o. c::
0 .9 Début
u .,,ü
:l
ch ~ str(n) # chaîne de caractères associée à n
2
o.
~
L ~ [] #initialisation (liste vide)
"
:; Pour k de 0 à longeur(ch)· l Faire
1-
0
1 Ajouter int(ch[k]) à L # int(ch[k]) renvoie le chiffre associé à ch[k]
.,,
0
1
Fin Pour
c:
:l Retourner (L)
0
QJ Fin Fonction

205
Chapitre 9 • Concepts fondamentaux

Implémentation en Python :
d ef li ste _ c hi ff r es ( n):
c h , L= s tr ( n ),[ ]
f o r k i n r ange( l e n ( ch ) ) :
L. a pp en d ( i n t ( c h [ k] ) )
r et urn ( L )

( Activité de découverte 9. 75
1) Exécuter le prog ramme Python.
a =6
def f (x):
a= 20
b= 2*x
r et ur n(b +I )

2) Dans la console Python, appeler la valeurde f(4) puis celle de a, et enfin celle
de b. Tenter d'expliquer le résultat.
SOLUTION . On obtient 9 pour f(4) (4 x 2 + 1 = 9) et 6 pour la variable a. Pour b,
on obtient le message d'erreur « name 'b' is not defined ».
Explications : lorsqu'une variable est défi nie dans une fonction, elle est créée
lors de l'appel de la fonction, puis détruite lors de la sortie de celle-ci. La
variable b n'a donc une existence que lors de l' appel de la fonctionj: Quant à la
variable a, l'instruction « a=20 » se comporte comme la déclaration d' une
nouvelle variable, détruite après la sortie de j: Lorsqu' on appelle la variable a, on
obtient donc 6.
_ _J
Une variable définie dans une fonction ou une procédure est appelée variable
locale, elle est détruite après sortie de la fonction ou de la procédure. Toute autre
variable est appelée variable globale. En pseudo-code, on déclare toute variable,
qu'elle soit locale ou globale.
Terminons maintenant la structure générale de l'écriture d 'un algorithme.
"O
0
c
:J
Structure générale de l'écriture d'un algorithme
0
li)
..--t
0 Nom de l'algorithme
N
@
Rôle : description rapide du rôle de l'algorithme
....... Entrée(s) : donnée(s) saisie(s)
J::
O'l Sortie(s) : donnée(s) affichée(s)
·;::::
>- Variables globales : nom_variable 1(type), nom_variable2 (type), etc.
0.
0
u .. . ... . . . . . . . ... .. .. Fonctions et procédures . . . . . . . ... .. ... . . . . . . . . .
Fonction nom_fonction(liste des paramètres et types) : type du résultat
Rôle : description rapide du rôle de la fonction
Variables locales : nom_var_locale 1 (type), nom_var _locale2 (type), etc.
Début
1 <in stru ctions>
Fin Fonction

206
9.6 • Fonctions et procédures

De même pour toutes les autres fonctions.


Procédure nom_procédure(liste des paramètres et types)
Rôle : description rapide du rôle de la procédure
Variables locales : nom_var_locale l (type), nom_var _locale2 (type), etc.
Début
1 <instructions>
Fin Procédure
De même pour toutes les autres procédures .
. . . . . . . . . . . . . . . . . . . . . . . Partie principale . . ... .. . ...... .. . ... .. . ... .
Début
1. <partie principale>
Fm

Exemple
Le plus petit chiffre de 3 528 est 2. L'algorithme suivant détermine combien
d'entiers naturels de 4 chiffres ont leur plus petit chiffre égal à 2. Celui-ci fait appel
à la fonction pluspetitchiffre(n) qui renvoie à tout entier n ~ 0 le plus petit chiffre
den.

Algorithme corn bien_n bde4ch iffres_pl us petitch iffre2


Rôle : détermine combien de nb de 4 chiffres ont pour plus petit chiffre 2
Entrée : --------------
Sortie : Nombre de nb de 4 chiffres de plus petit chiffre 2

Variables globales : nb, compt (entiers)


.......................... Fonction ............................. .
Fonction pluspetitchiffre(n: entier) : entier
Rôle : renvoie le plus petit chiffre du nombre n
Variables locales : k, min (entiers), ch (chaîne)
Début .... . ..... . ....... . ... .
chiffremin +--- 9 #initialisation : plu s petit chiffre = 9
ch +--- str(n) # chaîne de caractères associée à n
Pour k de 0 à longueur(ch)-1 Faire
Si int(ch[k])< chiffremin Alors

l
"'O
0 1 chiffremin +--- int(ch[k])
c
:J Fin Si
0
.,,:<:; in Pour
li)
..--t c::
:l
Retourner chiffremin
0
N
~ in Fonction
"
@
.......
~ 0
.. .. .. . ... . ... . .. .. .. . . Partie principale... . ...... .. ...... . ... . ... . .
J:: :;
O'l
·;:::: "'0c::
>- c:: Début
o. c::
0 .9 compt +--- 0 # initialisation du compteur
u ü
.,,
:l
Pour nb de l 000 à 9999 Faire
2
o.
~
Si pluspetitchiffre(nb)==2 Alors
"
:; 1 compt +--- compt + l
1-
0
Fin Si
.,,
0
1
Fin Pour
c:
:l Afficher co mpt
0
QJ Fin

207
Chapitre 9 • Concepts fondamentaux

Implémentation en Python :
##########################Fo n et i o n ##############################
d ef pl us p et i tc hi ffr e( n) :
c hiffr e min=9
c h =st r (n)
f o r k i n ra nge( l e n(c h )) :
i f i n t ( c h [ k ] ) < c h i f f r e mi n :
c h i f f r e mi n = i n t ( c h [ k ] )
r e t u r n ( c h i f f r e mi n )
##################### Pa r t i e pri nc ipal e##########################
c o mp t =0
fo r nb in ran ge( I OO O, 10 0 00) :
i f plu s pe ti tc hiffr e( nb ) == 2:
c o mp t = c o mp t + 1
p r i n t ( c o mp t )

Résultat après exécution : 1695.


Lorsqu' on passe par l'instruction « Retourner » (ou r e t u r n ) , on sort définitive-
ment de la fonction. Considérons par exemple la fonction essai(n) suivante. Le
compteur de la boucle ne prend que les valeurs 1 puis 2 avant de sortir de la fonction
et de retourner la valeur VRAI.
Fonction essai (n : entier) : booléen
Variable locale : k (entier)
Début
Pour k de l à l OO Faire
Si k%2==0 Alors
1 Retourner VRAI
Fin Si
Fin Pour
Fin Fonction

9.7 RÉCURSIVITÉ
La fonction puissance(x,n) suivante renvoie à tout réel x, et tout entier naturel n, le
nombre xi. Elle utilise une boucle, on dit qu'il s' agit d' une fonction itérative :
"'O
0
c
:J Fonction puissance(x: réel, n : entier) : réel
0 Rôle : calcul itératif de xn
li)
..--t Variables locales : p, k (entiers)
0
N Début
@ p +--- l
....... Si n>O Alors
J::
O'l
·;:::: Pour k de l à n Faire
>- 1 p +--- p* x
0.
u
0 Fin Pour
FinSi
Retourner(p)
Fin Fonction

208
9.7 • Récursivité

On peut remarquer que, pour tout réel x et tout entier n ::=::: 1, on a X1=xxn- 1• Écri-
vons une seconde fonction puissanceR(x,n) renvoyant le nombre X1, utilisant la
relation puissanceR(x,n)=x*puissanceR(x,n- 1) :
Fonction puissanceR(x: réel, n: entier) : réel
Rôle : calcul récursif de xn
Début
Si n==O Alors
1 Retourner(l)
Sinon
1 Retourner(x ~' puissance(x,n-1 ))
FinSi
Fin Fonction

Une telle fonction fait appel à elle-même, on dit qu'il s'agit d'une fonction
récursive.

~ Une fonction récursive est une fonction s'appelant elle-même. Plus générale-
t.:J ment, un algorithme récursif est un algorithme s'appelant lui-même.

Lorsqu'on souhaite écrire une fonction u(n) retournant le terme un d'une suite
(un), si cette suite est définie par récurrence, il est alors plus commode de passer par
une fonction résursive. Cependant, son exécution peut dans certains cas, s'avérer
être beaucoup plus lente que si cette fonction avait été construite de manière
itérative.

Exemples
La suite de Fibonacci est la suite (un) définie par u0 = u 1 = 1 et pour tout entier
n ~ 2 par un= un-t + un_2 . La fonction récursive fib(n) suivante, écrite en Python,
renvoie un à tout entier naturel n :
def fib ( n ):
"'O
0 i f n <= 1:
c
:J r e turn(I)
0
li)
.,,:<:; el s e :
c::
..--t
0
:l r et urn (f i b(n- l )+fi b ( n-2) )
~
N
"
@
.......
~ L'appel de fib(S) renvoie 8 quasi instantanément, alors que l'on obtient la valeur
J::
0
:; de fib(35) en 22 secondes environ, et un temps encore plus long lorsque n
O'l
·;:::: "'0c:: augmente. On résout ce problème avec la fonction itérative fibl(n) suivante :
>- c::
o. .9
c::
0
u ü def fi bl ( n ):
.,,
:l

2
o.
a , b=l , 1
~ i f n >1 :
"
:;
1-
0 for k i n r ange( l , n ) :
.,,
0
1 b=a+b
c:
:l a =b - a
0
QJ r e turn(b)

209
Chapitre 9 • Concepts fondamentaux

Exercices corrigés

m Que vaut la variable c après exécution de l'algorithme suivant?

Variables : a, b, c (chaînes)
Début
a +--- 'az'
b +--- 'er'
c +--- a+b+'ty'
Fin

m Que vaut la variable al après exécution de l'algorithme suivant ?

Variables : al (réel), a2, a3 (entiers)


Début
al +- 0.l
a2 +--- 5
a3 +--- l OO
al +--- al +a2/a3
Fin

m Que Valent les Variables X et n après exécution de l' algorithme suivant ?

Variables : x (liste), n (entier)


Début
X +--- (l ,2)
Ajouter 3 à x
n +--- x [O]+x [l ]+x[2]
Fin

BJ Expliquer le rôle de l' algorithme suivant puis écrire son en-tête :


"'O
0
Variables : a,b,c (réels)
c
:J
Début
0 Afficher "Saisir un nombre a :"
LI)
.--t
Saisir a
0
N
Afficher "Saisir un nombre b :"
@ Saisir b
....... c +---a
J::
Ol a+--- b
·;::::
>- b +--- c
0..
0 Afficher "a= ",a," ; b=", b
u Fin

m Écrire un algorithme demandant à l'utilisateur un nombre entier de trois


chiffres, puis affichant la somme des chiffres de ce nombre. Implémenter cet algo-
rithme en Python.

210
Exercices corrigés

m Compléter l'algorithme suivant :

Variable : L (liste)
Début
Saisir L # Liste d'au moins 3 éléments
Si (L[O]~L[l] et L[l ]~L[2]) Alors
. h er "L es trors
Aff 1c . premiers
. e' 1ements
' .. ...... ............... ."
1
FinSi
Fin

m Donner le rôle de l'algorithme suivant, le simplifier, puis implémenter en


Python l' algorithme obtenu.

Variable : n (entier)
Début
Afficher "Rentrer un nombre entier : "
Saisir n
Si n%3==0 Alors
Si n> 1OO Alors
1 Afficher"C'est bon !"
Fin Si
FinSi
Fin

m Écrire un algorithme (avec un en-tête) demandant à l'utilisateur de saisir un


nombre puis affichant « Ce nombre est strictement positif. » , « Ce nombre est nul. »
ou « Ce nombre est strictement négatif. » selon le cas.

PD Écrire un algorithme calculant puis affichant L:~, k 2


c' est-à-dire la somme
12 + 22 + ... + 50 2. Implémenter en Python, puis exécuter le programme.
1#111] Quel est le rôle de l'algorithme suivant ? Implémenter en Python puis exécu-
ter le programme.
"'O
0 Variables : p,x (entiers), L (liste)
c
:J Début
0 p +-- 1
li)
.,,:<:;
..--t c:: L +-- [2 ,4,6,8, 1O]
:l
0
N
~
Pour x dans L Faire
"
@
.......
~ 0
1 p +-- p*x
Fin Pour
J:: :;
O'l
·;:::: "'0c:: Afficher p
>- c::
o. c:: Fin
0 .9
u ü
.,,
:l

2
o.
~
1#111 Écrire un algorithme qui génère et affiche la liste des diviseurs d' un nombre
"
:;
0
entier naturel rentré par l'utilisateur. Implémenter et exécuter cet algorithme en
1-
.,, Python avec le nombre 646.
0
1

c:
:l
0
QJ Pit~ Quel est le rôle de l' algorithme suivant ?

211
Chapitre 9 • Concepts fondamentaux

Variables : k, compt (entiers), texte (chaîne)


Début
Afficher "Saisit un texte : "
Saisir texte
k +--- 0
compt +--- 0
TantQue k<=longueur(texte) - l Faire
Si texte[k]=='e' Alors
1 compt +--- compt + l
Fin Si
k +--- k+ l
FinTantQue
Afficher compt
Fin

PllJ Écrire un algorithme demandant à l'utilisateur un pseudo d'au moins quatre


caractères, jusqu' à ce qu' il soit correct, puis affichant « Bonjour <pseudo>!».
Plll 1) Écrire un algorithme de jeu de hasard dont la règle est la suivante : on tire
au hasard un nombre entier de trois chiffres que l'utilisateur doit deviner. Tant qu' il
ne l'a pas trouvé, on lui indique le nombre de chiffres corrects. Une fois trouvé, on
affiche son nombre d'essais.
2) Implémenter en Python cet algorithme en important au préalable le module
random (écrire en début de programme l'instruction i mp or t rand o m). Le choix
d'un nombre entier de trois chiffres au hasard peut alors s'obtenir avec:
1 i n t ( 8 9 9 . 9 * r a n d o m. r a n d o m( ) +1 0 0 )

PIJ1 l) Écrire une fonction booléenne position(mot,texte,n) qui à deux chaînes


de caractères mot et texte, et à un entier naturel n, renvoie VRAI si la chaîne mot
apparaît dans la chaîne texte à partir du n-ième caractère, et FAUX sinon. Par
exemple, on devra avoir : p o s i t i on ( ' a z e, ' c 1 av i e r a z e r t y' , 9) =VRAI et
p os i t i on ( ' a z e , ' c 1 a v i e r a z e r t y ' , 8 ) =FAUX.
2) Écrire une fonction compte(mot,texte) faisant appel à la fonction posi-
"'O
0
tion(mot,texte,n), qui compte le nombre d 'apparitions de la chaîne mot dans la
c
:J chaîne texte. Par exemple, on devra avoir : c o mp t e ( ' ne ' , ' une f i ne p 1 u me ' ) =2 .
0
LI)
.--t
0
Pllij Écrire en Python une procédure comparaison(a,b) qui affiche le résultat de la
N comparaison de deux réels a et b. Par exemple, il devra résulter de l'appel de comparai-
@
....... son(8, 19) 1' affichage « 8< 19 » et del' appel de comparaison(12, 12) 1' affichage « 12=12 » .
J::
Ol
·;::::
>- Pif~ On considère le programme Python suivant :
0..
0
u de f u(n):
r et urn( 2**n)
def g(x):
N=O
wh i 1 e u ( N) < = x:
N=N+ 1
r et u r n ( N)

212
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 2P = (x2 )P et x 2P+ 1 = x(x2 )P (on parle de puissance rapide).

l#JlpJ Soit (un) la suite définie par u0 = 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
p +-- n ~' p
1
n +-- n-1
FinTantQue
Retourner(p)
Fin Fonction
"'O
0
c
0
:J Solutions
li)
.,,:<:;
..--t c::
:l
0 ~
N
@
~
" 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
....... 0
J:: :; la console Python en tapant a , b =' a z' ,' e r ' puis c =a+ b +' t y ' et en appelant enfin
O'l
·;:::: "'0c::
>- c:: la valeur de c.
o. c::

u
0 .9
ü
.,,
:l

2
m Après exécution, al vaut 0,1+5/100 = 0,15. (Vérifier sur la console Python.)

"
o.
~
:;
0
œ vaut [1,2,3] et n vaut 6. En effet, après exécution, X prend la valeur [1,2]
X
1- puis [1,2,3]. Ensuite n prend la valeur 1 + 2 + 3 = 6. On peut le vérifier sur la
.,,01
c:
:l
console Python en saisissant x = [ 1 , 2 ] puis x . a pp e n d ( 3 ) puis x = x [ 0] + x [ 1 ]
0
QJ + x [ 2] et en appelant enfin les valeurs de x et n.

213
Chapitre 9 • Concepts fondamentaux

l?.IJ L'algorithme intervertit les valeurs des variables a et b puis les affiche. En
effet, la valeur de a est d' abord stockée dans la variable c, la valeur de b est ensuite
stockée dans a (qui a donc pris la valeur initiale de b) puis c (qui contient la valeur
initiale de a) est stockée dans b (qui a donc pris la valeur initiale de a), d'où l' inter-
version. Voici l'en-tête complété de l' algorithme :
Algorithme interversion
Rôle : intervertit deux valeurs
Entrées : a,b (réels)
Sortie : affichage de a et b intervertis

Remarquons que Python peut effectuer directement cette opération en écrivant


a, b=b, a.
m 1) Algorithme:

Algorithme somme_chiffres
Rôle : donne la somme des chiffres d'un nombre de trois chiffres
Entrée : saisie d'un nombre entier de trois chiffres
Sortie : affichage de la somme des chiffres du nombre

Variables : n (chaîne), somme (entier)


Début
Afficher "Rentrer un nombre entier de trois chiffres : "
Saisir n
somme - int(n[O])+int(n[l ])+int(n[2])
Afficher"La somme des chiffres du nombre ",n," est ",somme,"."
Fin

Remarquons que n[O], n[l] et n[2] sont respectivement les 1er, 2e et 3e caractères de
la chaîne de caractères n rentrée par l'utilisateur, donc int(n[O]), int(n[O]) et int(n[O])
sont respectivement les 1er, 2e et 3e chiffres du nombre.

Implémentation en Python

"'O
n = i n put ( " Re nt r e r un no mb r e e nt i e r c o mp r i s e nt r e 10 0 e t 9 9 9 : " )
0
c s o mme = i n t ( n [ 0 ] ) +i n t ( n [ 1 ] ) +i n t ( n [ 2 ] )
:J p r 1. n t ("L a s o mme d e s c h 1" ff r e s d u n o mb r e " , n , " e s t " , s o mme , " . ")
0
LI)
.--t
0
N
@
m
croissant".
"Les trois premiers éléments de cette liste sont rangés par ordre
.......
J::
Ol
·;:::: iB L'algorithme affiche le message « C'est bon ! », que si l'entier n saisi par
>-
0..
0
l' utilisateur est à la fois divisible par 3 et supérieur à 100. Algorithme simplifié:
u Début
Afficher "Rentrer un nombre entier : "
Saisir n
Si n%3==0 et n> l OO Alors
J Afficher("C'est bon !")
FinSi
Fin

214
Exercices corrigés

Implémentation en Python
n = i n t ( i n pu t ( " Re n t r e r u n n o mb r e e nt i e r "))
i f n %3 = = 0 a n d n > 1 0 0 :
pr int("C'e st b on!")

m
Algorithme signe_nombre
Rôle : détermination du signe d'un nombre saisi
Entrée : saisie d'un nombre entier
Sortie : affichage du signe du nombre

Variable : x (réel)
Début
Afficher "Saisir un nombre : "
Saisir x
Si x<O Alors
1 Afficher "Ce nombre est strictement négatif."
SinonSi x==O Alors
1 Afficher "Ce nombre est nul. "
Sinon
1 Afficher "Ce nombre est strictement positif."
FinSi
Fin

Implémentation en Python
x = f l o a t ( i n p u t ( " S a i s i r u n n o mb r e : " ) )
Î f X <0:
p r i nt ( " Ce no mbr e es t s t r i c t e me n t néga t i f .")
e 1i f X ==0:
p r i nt ( " Ce no mb r e es t nul . " )
el s e :
p r i nt ( " Ce nomb r e e s t s t r i c t e me n t po s it if.")
"'O
0
c
:J
0
li)
.,,:<:;
..--t c::
:l
0
N
~ Algorithme somme_carrés
" Rôle : calcule et affiche la somme l " 2+ 2" 2+ ... +50" 2
@
.......
~ 0 Entrée : ---------------
J:: :;
O'l
·;:::: "'0c:: Sortie : affichage de la somme
>- c::
o. .9
c::
Variables : s,k (entiers)
0
u ü
.,,
:l Début
2
o. s~0 # initialisation
~
"
:;
Pour k de l à 50 Faire
1-
0
1 s ~ s+k"2
.,,
0
1
Fin Pour
c:
:l Afficher s
0
QJ Fin

215
Chapitre 9 • Concepts fondamentaux

Implémentation en Python
s =0
f o r k i n r ange( l ,5 1):
s =s+ k **2
p r int(s)

Résultat après exécution : 42 925 .


1#111] Rôle: calcul puis affichage de Ils 2k , c' est-à-dire de 2 x 4 x 6 x 8 x 10.
k= l

Implémentation en Python
p= l
L= [2,4 , 6,8 , 10 ]
f o r x i n L:
p=p*x
pri nt(p)

Résultat après exécution : 3 840.


1#111
Algorithme liste_diviseurs
Rôle : génère la li ste de s diviseurs d'un nombre
Entrée : saisie d'un nombre entier
Sortie : affichage de la liste des diviseurs

Variables : n,k (entiers), L (liste)


Début
L ~ [] # initialisation : liste vide
Afficher "Saisir un nombre entier : "
Saisir n
Pour k de l à n Faire
Si n%k==0 Alors
1 Ajouter k à L
Fin Si
Fin Pour
"'O
0 Afficher L
c
:J Fin
0
LI)
.--t
0
N
@
Implémentation en Python
.......
J:: L= [ ] # i n i t i a 1 i s a t i on l i s t e v i de
Ol
·;:::: n = i n t ( i n p u t ( " S a i s i r u n n o mb r e e n t i e r : " ) )
>- fo r k in r ange( l , n + l ):
0..
0
u i f n o/ok ==0:
L. a pp end(k)
p r i nt(L)

Résultat après exécution avec n = 646 : [l , 2, 17, 19, 34, 38, 323, 646].
Plt-'I Rôle : détermine le nombre de caractères « e » du tex te saisi par l'utilisateur.

216
Exercices corrigés

QIJ
Algorithme pseudo
Rôle : obtenir un pseudo correct puis afficher bonjour <pseudo>
Entrée : pseudo de l'utilisateur
Sortie : message « Bonjour <pseudo>»

Variable : pseudo (chaîne)


Début
Afficher "Saisir un pseudo d'au moins 4 caractères : "
Saisir pseudo
TantQue longueur(pseudo)<4 Faire
Afficher "Pseudo incorrect, veuillez le saisir de nouveau : "
1
Saisir pseudo
FinTantQue
Afficher "Bonjour", pseudo, "!"
Fin

Implémentation en Python
p s e u d o = i n p u t ( " S a i s i r u n p s e u d o d ' a u mo i n s 4 c a r a c t è r e s : " )
whi 1 e 1 en ( p se ud o) <4 :
pse ud o= in put (" Pseu do in cor r e c t, ve uill ez l e sa i sir de
no u vea u : ")
p r i nt ( " Bo nj o u r " , ps eud o, " ! ")

PIEi
Algorithme jeu_hasard

Variables : k, nombre, essai, nb_bonnes_rep (entiers), rep nb(chaînes)


Début
nombre +--- entier au hasard entre l OO et 999
"'O nb +--- str(nombre) # chaîne associée à nombre
0
c essai +--- l # initialisation : compteur des essais
:J
0 Afficher "Saisir un entier de trois chiffres : "
li)
.,,:<:; Saisir rep
..--t c::
0
:l
~
TantQue rep!=nb Faire
N
" nb_bonnes_rep +--- 0
@
.......
~ 0
essai +--- essai + l
:;
J::
Pour k de 0 à 2 Faire
O'l
·;:::: "'0c::
>- c:: Si nb[k]==rep[k] Alors
o. .9
c::
1 nb_bonnes _rep +--- nb_bonnes _rep + l
0
u ü
.,,
:l FinSi
2
o. Fin Pour
~
"
:;
Afficher nb_bonnes_rep," chiffre(s) correct(s). Recommencez : "
1-
0
Saisir rep
.,,
0
1
FinTantQue
c:
:l Afficher "Gagn é en ",e ssai," essai(s) !"
0
QJ Fin

217
Chapitre 9 • Concepts fondamentaux

Implémentation en Python
i mp o r t r a n d o m
n o mb r e = i n t ( 8 9 9 . 9 * r a n d o m. r a n d o m( ) + 1 0 0 )
n b = s t r ( n o mb r e )
essai=O
r e p=inpu t(" d ev i ne nb ")
wh i 1 e r e p ! = n b :
nb _ b onnes_re p=Ü
essa i =e ssai +l
for k in ran ge(3):
i f nb[k]==rep[k]:
nb _ b onn es _ rep=nb _ bonne s_ r ep+ l
r e p=i nput( st r(nb _ bonn es_ r ep) +' chi f fr e(s) co rr ect(s),
r e c o mme n c e : ' )
prin t( ' gagné en '+st r(e ss ai)+' essa i (s) !' )

Q ..11) Fonction position(mot,texte: chaînes ,n: entier): booléen.


Rôle : renvoie VRAI si mot apparaît dans texte à la position n, FAUX sinon.
Variable locale : i (entier)
Début
Si n- 1+longueur(mot)>longueur(texte) Alors
1 Retourner(FAUX) # mot trop long pour la position n
FinSi
Pour i de 0 à longueur(mot)-1 Faire
Si texte[n-1 +i] !=mot[i] Alors
1 Retourner(FAUX)
Fin Si
Fin Pour
Retou rner(VRAI)
Fin Fonction

Implémentation en Python
d e f p o s i t i o n ( mo t , t e x t e , n ) :
i f n - 1+ 1 e n ( mo t ) > 1 e n ( t e x t e ) :
r e t u r n ( Fa 1 s e ) # mo t t r o p 1 o n g p o u r 1 a p o s i t i o n n
f o r i i n r a n g e ( 1 e n ( mo t ) ) :
"'O
0
i f t e x t e [ n - 1 + i ] ! = mo t [ i ] :
c r et urn( Fat se)
:J
0 r etu rn (T ru e)
LI)
.--t
0
N 2) Fonction compte(mot,texte: chaînes) : entier.
@
....... Rôle : compte le nombre d'apparitions de la chaîne mot dans la chaîne texte .
J::
Ol Variables locales : n,compteur (entiers)
·;::::
>- Début
0..
0 compteur ~ 0 #initialisation du compteur
u Pour n de 1 à longueur(texte)) Faire
Si position(mot,texte,n) Alors
1 compteur ~ compteur+ l
Fin Si
Fin Pour
Retourner(co mpteur)
Fin Fonction

218
Exercices corrigés

Implémentation en Python
d e f c o mp t e ( mo t , t e x t e ) :
c o mp t e u r = Ü
for n i n r ange( l , l en( t exte)+ I ) :
i f p o s i t i o n ( mo t , t e x t e , n ) :
c o mp t e u r = c o mp t e u r + 1
r e t u r n ( c o mp t e u r )

Plld Procédure comparaison(a,b):


d e f c o mp a r a i s o n ( a , b ) :
i f a <b:
print (a, "<" , b )
e l if a= =b:
print(a , "= ", b )
e 1 se :
pri nt(a,">", b )

l#Jf~ 1) Les nombres u(O), u(l), u(2), u(3), etc. représentent les termes de la suite
(un) de terme général 211, c'est-à-dire 2° = 1, 2 1 = 2, 22 = 4, etc.
2) 7 est le plus petit entier naturel n tel que tel que 2n > 100.
3) g(x) renvoie, pour tout réel x > 0, le plus petit entier naturel n tel que 2n > x. Un tel
entier existe toujours car lim 2n = +oo (puisque 2 > 1), ce qui prouve que g(x) est
n-+too
bien définie quel que soit x > O.
p11:J
Fonction puissance_rap(x: réel, n: entier) : réel
Rôle : calcul récursif de xAn
Début
Si n==O Alors
J Retourner(l )
FinSi
Si n%2==0 Alors
"'O
1 Retourner(puis sance_rap(x'"x, n//2)
0
c
Sinon
:J 1 Retourner(x 1' puissance_rap(x 1'x,n//2)
0
li)
.,,:<:; FinSi
c::
..--t
0
:l Fin Fonction
~
N
"
@
.......
~ l#J@Jl)
0
J:: :;
O'l
·;:::: "'0c::
>- c:: Fonction u(n : entier) : entier
o. c::
0 .9 Rôle : calcul récursif de u_n
u ü
.,,
:l
Début
2
o.
~
Si n==O Alors
" 1 Retourner(2)
:;
1-
0
Sinon
.,,
0
1
J Retourner(2 1' u(n -l )-1)
c:
:l FinSi
0
QJ Fin Fonction

219
Chapitre 9 • Concepts fondamentaux

Implémentation Python
d e f u(n):
i f n == Ü:
r et ur n(2)
e 1 se:
r et ur n(2* u (n - l ) - I )

2)
Fonction u(n : entier) : entier
Rôle : calcul itératif de u_n
Variables locales : k, res (entiers)
Début
res - 2
Si n==O Alors
1 Retourner (res)
FinSi
Pour k de l à n Faire
1 res - 2'"res -l
Fin Pour
Retourner (res)
Fin Fonction

Implémentation Python
d ef u(n):
re s=2
i f n == Ü:
r et ur n(res)
f or k i n r ange( l , n+l ) :
r es =2*res -l
r etu r n(re s)

pt;in 1)
Fonction factR(n : entier) : entier
"'O Rôle : calcul récursif de n!
0
c Début
:J
0 Si n==O Alors
LI)
.-t
1 Retourner(l)
0 Sinon
N
@
1 Retourner(n '"factR(n-1 ))
....... FinSi
J::
Ol Fin Fonction
ï::::
>-
0..
0
u

220
Exercices corrigés

2)

Fonction factl(n : entier) : entier


Rôle : calcul itératif de n!
Variables locales : k,p (entiers)
Début
p ~ l
Si n==O Alors
1 Retourner (p)
FinSi
Pour k de 1 à n Faire
1 p ~ p ~' k
Fin Pour
Retourner(p)
Fin Fonction

3) La fonction inconnue(n) renvoie aussi n! à tout entier naturel n.

"'O
0
c
:J
0
li)
..--t
0
N
@
.......
~0
J:: :;
O'l
·;:::: "'c:
0
>- c:
0. c:
0 .9
u ü
:::l

2o.
~
'l.)
:;
~
1
"8c:
:::l
0
QJ

221
"'O
0
c
::J
0
li)
r-t
0
N
@
.....,
.s::
Ol
'i:
>-
0.
0
u
TRAVAUX PRATIQUES
10
10.1 Nombres parfaits
10.2 Évolution d 'un salaire
10.3 Nombres premiers palindromes
10.4 Calcul formel
10.5 Calcul matriciel
10.6 Opérations sur les ensembles
1O.7 Méthodes de tri
10.8 Cryptographie

Analyser un énoncé.
Formaliser une démarche de résolution de problème.
Écrire et interpréter des algorithmes.
Pratiquer, expérimenter, tester, corriger.
Implémenter et exécuter des algorithmes.

10.1 NOMBRES PARFAITS


"O
0
c
:J
Énoncé
0 :<:;
li)
..--t
"'5 a) Le problème
0
N
@ ~ Un nombre entier N > 1 est dit parfait s'il est égal à la somme de tous ses diviseurs
.......
J:: ~ autres que lui-même. Par exemple :
O'l "'
·;::::
>- 2 • Le nombre 6 est parfait car ses diviseurs sont 1, 2, 3 et 6 et on a 6 = 1 + 2 + 3.
0. c

u
0 ·5
:::l
• Le nombre 10 n'est pas parfait car ses diviseurs sont 1, 2, 5 et 10 et on n'a pas
2o. 10 = 1+2 + 5.
~
~ • Le nombre 28 est parfait car ses diviseurs sont 1, 2, 4, 7, 14 et 28 et on a 28 = 1 + 2
~1 + 4 + 7 + 14.
l Le but de ce TP est de déterminer le seul nombre parfait de trois chiffres et de
~ calculer la somme des inverses de ses diviseurs.

223
Chapitre l 0 • Travaux pratiques

b) Les questions
1) Quel est le rôle de la fonction li(n) suivante ?

Fonction li(n: entier) : liste


Rôle: ............................................... .
Variables locales : L (liste), k (entier)
Début
L ~ []
Pour k de l à n Faire
Si n%k==0 Alors
1 Ajouter k à L

FinSi
Fin Pour
Retourner(L)
Fin Fonction

2) Écrire une fonction booléenne estparfait(n) qui renvoie VRAI si le nombre entier
n est parfait et FAUX sinon.
Par exemple, on devra avoir estparfait(6) =VRAI et estparfait(7) =FAUX.
3) Écrire une fonction sominvdiv(n) qui renvoie la somme des inverses des diviseurs
d'un nombre entier n non nul.
Par exemple, puisque les diviseurs de 10 sont 1, 2, 5 et 10 on devra avoir sornin-
vdiv(lO)= 1/1+1/2 + 1/5 + 1/10 = 1+0,5 + 0,2 + 0,1=1,8.
4) Écrire un algorithme déterminant et affichant le seul nombre parfait de trois
chiffres puis la somme des inverses des diviseurs de ce nombre. Cet algorithme
devra faire appel aux fonctions précédentes. Implémenter sous Python cet algo-
rithme puis exécuter le programme.

Corrigé

a) Algorithme

"'O
0
c
Nom de l'algorithme Nombres_parfaits
:J Rôle : Détermination du nombre parfait de 3 chiffres et de la somme des
0
li)
inverses de ses diviseurs
..--t
0
Entrée : ---------------
N Sorties : Affichage du nombre parfait de 3 chiffres et de la somme cherchée
@
.......
J::
O'l
·;:::: Variable globale : nb (entier)
>-
0.
u
0 Fonctions
Fonction li(n:entier) : liste
Rôle : détermine la liste des diviseurs de n
Variables locales : L (liste), k (entier)
Début
1 L ~ []

224
10.1 • Nombres parfaits

Pour k de 1 à n Faire
Si n%k==0 Alors
1 Ajouter k à L

FinSi
Fin Pour
Retourner(L)
Fin Fonction

Fonction estparfait(n: entier) : booléen


Rôle : détermine si le nombre n est parfait ou non
Variables locales : s, k (entiers)
Début
s +-- 1
Pour k de 2 à n-1 Faire
Si n%k==0 Alors
1 s +-- s+k

FinSi
Fin Pour
Si n==s Alors
1 Retourner(VRAI)

FinSi
Retourner(FAUX)
Fin Fonction

Fonction sominvdiv(n : entier) : réel


Rôle : calcule la somme des inverse s des diviseurs du nombre n
Variables locales : som (réel), p (entier)
Début
som +-- 0
Pour p dans li(n) Faire
1 som +-- som + l / p

Fin Pour
Retourner(som)
Fin Fonction
.. . . . ... . .............. Partie principale . . .......... . ... . ...... . .. .

Début
nb +-- 100
"'O
0
TantQue non(estparfait(nb)) Faire
c 1 nb +-- nb+ 1
:J
0 FinTantQue
.,,:<:;
li)
..--t c::
:l
Afficher ''Nombre parfait de 3 chiffres : ",nb
0
N
~ Afficher "Somme des inverses de ses diviseurs : ",sominvdiv(nb)
" Fin
@
.......
~ 0
J:: :;
O'l
·;:::: "'0c:: b) Implémentation Python
>- c::
o. .9
c::
0 ########################## Fo n c ti o n #############################
u .,,ü
:l
d ef li (n) :
2
o. L= [ ]
~
"
:;
fo r k in ra n ge( l , n + l ):
0
1- if n%k ==0:
.,,
0
1
L. a p pend (k)
c:
:l r et ur n( L)
0
QJ

225
Chapitre l 0 • Travaux pratiques

def estparfait(n):
s=1
for k in range(2 , n):
i f n %k ==Ü:
s =s + k
if n== s:
r et urn ( Tru e)
ret urn ( Fal s e )

def somi n vd i v( n):


s o m=O
for pin li (n) :
s o m= s o m+ 1 / p
r e t u r n ( s o m)

##################### Partie prin c ipale ##########################


nb=IOO
wh i 1 e no t ( e s t p a r f a i t ( n b) ) :
nb=nb+I
p r i nt ( " No mb r e p a r f a i t de 3 c h i f f r e s : " , n b )
p r i n t ( " S o mme d e s i n v e r s e s d e s e s d i v i s e u r s " , s o mi n v d i v ( n b ) )

c) Résultats obtenus après exécution


Nombre parfait de trois chiffres : 496
Somme des inverses de ses diviseurs: 2.0

l 0.2 ÉVOLUTION D'UN SALAIRE

Énoncé

a) Le problème
"'O
0 Au premier janvier 2014, Paul vient de se faire embaucher pour un salaire net mensuel
c
0
:J de 2 000 € dans une entreprise qui a mis en place la règle d'évolution des salaires
li)
..--t
suivante : chaque mois, les salaires mensuels sont augmentés de 0,1 % puis de 1 €.
0
N
Donc le salaire net mensuel de Paul au mois de février 2014 sera de 1,001 x 2 000
@ + 1 = 2 003 €,puis de 1,001x2 003 + 1 = 2 006,003 €au mois de mars, etc.
.......
J::
O'l
Le but du sujet est de déterminer le mois et l'année à partir desquels le salaire net
·;::::
>- mensuel de Paul dépassera 3 000 €.
0.
0
u
b) Les questions
1) Quel est le rôle de la fonction s(n) ? Quelle est sa nature?

226
10.2 • Évolution d'un salaire

Début
Si n== 1 Alors
1 Retourner(2000)

Sinon
1 Retourner (s(n-1)'~1,001+1)
FinSi
Fin Fonction
2) Écrire une fonction mois(n) qui renvoie le n-ième mois de Paul dans l'entreprise.
Par exemple, on devra avmr mois( l)='j anvier', mois(2)='février' et
mois( 14)='février'.
Cette fonction devra utiliser la liste suivante :

L = [ ' j a n v i e r ' , ' f é v r i e r ' , ' ma r s ' , ' a v r i l ' , ' ma i ' , ' j u i n ' , ' j u i l l e t ' ,
1 ' a o û t ' , ' s e p t e mb r e ' , ' o c t o b r e ' , ' n o v e mb r e ' , ' d é c e mb r e ' ]

3) Écrire une fonction annee(n) retournant l' année correspondant au n-ième mois de
Paul dans l'entreprise. Par exemple, on devra avoir annee(3)=2014, annee(l2)=2014
et annee(l3)=2015.
4) Écrire un algorithme donnant le mois et l'année à partir desquels le salaire net
mensuel de Paul dépassera 3 000 €.Cet algorithme devra faire appel aux fonctions
s(n), mois(n) et annee(n). Implémenter sous Python cet algorithme puis exécuter le
programme.

Corrigé

a) Algorithme

Nom de l'algorithme Salai re_Pau 1


Rôle : Détermination mois et année à partir desquels : salaire de Paul > 3 000 €
Entrée : ---------------
Sorties : Affichage du mois et de l'année
"'O
0
c
:J
0 Variable globale : N (entier)
li)
.,,:<:;
..--t c::
:l
0 ~
N
" .. . ... . . . . . . . ... .. ..... . . Fonctions .. ... . . . ... .. ... . .......... . .
@
.......
~ 0
J:: :;
O'l "'0c:: Fonction s(n: entier) : réel #Nature de la fonction : récursive
·;::::
>- c:: Rôle : calcule le salaire net mensuel au n-ième mois
o. c::
0 .9 Début
u .,,ü
:l
Si n== 1 Alors
2
o.
~
1 Retourner(2000)
"
:; Sinon
1-
0
1 Retourner (s(n-1)"' 1.001+1)
.,,
0
1
FinSi
c:
:l Fin Fonction
0
QJ

227
Chapitre l 0 • Travaux pratiques

Fonction mois(n: entier) : chaîne


Rôle : détermine le n-ième mois
Variable locale : L (liste)
Début
L - ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août','septembre',
'octobre' ,'novembre' ,'décembre']
n - (n-1 )%12
Retourner(L[n])
Fin Fonction

Fonction annee(n : entier) : entier


Rôle : détermine l'année correspondant au n-ième mois
Variable locale : a (entier)
Début
a - 2014+(n-l)// 12
1
Retourner( a)
Fin Fonction

Partie principale
Début
N- l # premier mois
TantQue s(N)<=3000 Faire
1 N - N+l
FinTantQue
Afficher "Le salaire de Paul dépassera 3 000 €au mois de", mois(N),annee(N)," ."
Fin

b) Implémentation Pytho n
#########################Fonct i ons #############################
d ef s(n) :
if n == l :
r et u r n( 2000)
e 1s e :
r et u rn (s (n -1 )* 1. 00 1+1 )

de f mo i s ( n ) :
L= [ ' j a n v i e r ' , ' f é v r i e r ' , ' ma r s ' , ' a v r i 1 ' , ' ma i ' , ' j u i n ' , ' j u i 1 1 e t ' ,
"'O
0
' a o û t ' , ' s e p t e mb r e ' , ' o c t o b r e ' , ' n o v e mb r e ' , ' d é c e mb r e ' ]
c
:J n =( n - 1) %12
0 r etu r n ( L[ n])
li)
..--t
0
N d ef a n nee( n):
@ a =20 14+( n- 1) // 12
.......
J::
O'l
ret u rn ( a )
·;::::
>-
0.
0
u #################### Partie pr i nc ip ale #########################

N=l
wh i 1 e s ( N) < = 3 0 0 0 :
N=N+l
p r i n t ( " L e s a 1 a i r e d e P a u 1 d é p a s s e r a 3 0 0 0 € a u mo 1 s
d e " , mo i s ( N) , a n n e e ( N) , " . " )

228
10.3 • Nombres premiers palindromes

c) Résultats obtenus après exécution


Le salaire de Paul dépassera 3 000 €au mois de janvier 2038.

10.3 NOMBRES PREMIERS PALINDROMES

Énoncé

a) Le problème
Un entier naturel N est dit premier s'il possède exactement deux diviseurs : 1 et lui-
même. Les nombres premiers sont 2, 3, 5, 7, 11, 13, 17, 19, 23, etc.
Un nombre entier est appelé palindrome s'il peut se lire indifféremment de
gauche à droite ou de droite à gauche. Par exemple, 25852 et 423595324 sont des
palindromes.
18181 est un nombre premier palindrome de cinq chiffres dont la somme des
chiffres est 19. On se propose de déterminer le plus petit nombre premier palindrome
de cinq chiffres dont la somme des chiffres est 19.

b) Les questions
1) Écrire une fonction booléenne estpremier(n) qui renvoie VRAI si n est un
nombre premier et FAUX sinon.
Par exemple, on devra avoir estpremier(l 7) = VRAI et estpremier(l 8) = FAUX.
2) Écrire une fonction somchiffre(n) qui renvoie la somme des chiffres d'un nombre
entier n.
Par exemple, on devra avoir somchiffre(2135) = 11.
3) Quel est le rôle de la fonction change(n) suivante?

Fonction change(n: entier) : entier


Rôle: .. ..................................................................... .
"'O
0
Variables locales : ch ,nb (chaînes), res (entier)
c Début
:J
0
.,,:<:; nb - str(n)
li)
..--t c::
:l ch - "
0
N
~
Pour k de 0 à longueur(nb)-1 Faire
" nb[k] + ch
@
.......
~ 0
1 ch -

Fin Pour
J:: :;
O'l
·;:::: "'0c:: res - int(ch)
>- c:: Retourner(res)
o. .9
c::
0 Fin Fonction
u ü
.,,
:l

2
o.
~
"
:;
4) Écrire un algorithme affichant le plus petit nombre premier palindrome de cinq
0
1- chiffres dont la somme des chiffres est 19. Cet algorithme devra faire appel aux
.,, fonctions estpremier(n), somchiffre(n) et change(n) .
0
1

c:
:l
0
QJ Implémenter sous Python cet algorithme puis exécuter le programme.

229
Chapitre l 0 • Travaux pratiques

Corrigé
a) Algorithme

Nom de l'algorithme Nombre_premier_palindrome


Rôle : Détermination du plus petit nombre premier palindrome de cinq chiffres
Entrée : ---------------
Sortie : Affichage du plus petit nombre premier palindrome de cinq chiffres

Variable globale : N (entier)

Fonctions

Fonction estpremier(n: entier) : booléen


Rôle : détermine si n est premier ou non
Variable locale : k (entier)
Début
Si n<2 Alors
1 Retourner(FAUX) # 0 et l ne sont pas premiers
Sinon
Pour k de 2 à n-1 Faire
Si n%k==0 Alors
1 Retourner(FAUX)
FinSi
Fin Pour
FinSi
Retourner(VRAI) #si aucun diviseur entre 2 et n-1, on renvoie VRAI
Fin Fonction

Fonction somchiffre(n: entier) : entier


Rôle : calcule la somme des chiffres de n
Variables locales : som (réel), nb (chaîne)
Début
som - o
nb - str(n) # chaîne de caractères associée à n
Pour k de 0 à longueur(nb)-1 Faire
"'O J som - som + int(nb[k])
0
c Fin Pour
:J
0 Retourner(som)
li) Fin Fonction
..--t
0
N
@ Fonction change(n: entier) : entier
....... Rôle : retourne l'entier obtenu en inversant l'ordre des chiffres de n
J::
O'l Variables locales : ch,nb (chaînes), res
·;::::
>- Début
0.
0 nb - str(n) #chaîne associée à n
u chaine - " # chaîne vide
Pour k de 0 à longueur(n)-1 Faire
J ch - nb[k] +ch #concaténation
Fin Pour
res - int(ch) # nombre associé à la chaîne ch
Retourner(res)
Fin Fonction

230
10.3 • Nombres premiers palindromes

....................... Partie principale .......................... .

Début
N - l 0000 #plus petit entier de 5 chiffres
TantQue non(estpremier(N) et change(N)==N et somchiffre(N)== 19) Faire
J N - N+l
FinTantQue
Afficher('Le plus petit nombre premier palindrome de
cinq chiffres dont la somme des chiffres est 19, est ",N)
Fin

b) Implémentation Python
#########################Ponet ion s #############################

d e f e s t p r e mi e r ( n ) :
i f n <2:
return(Fal se)
e 1s e :
fo r k in ra n ge(2,n):
i f n %k == 0:
return(Fal se)
r eturn( Tr ue)

d e f s o me h i f f r e ( n ) :
s o m=O
nb =str(n)
for k in ran ge( 1 e n( nb)):
s o m= s o m+ i n t ( n b [ k ] )
r e t u r n ( s o m)

def c ha nge(n):
nb= str( n )
c h= " # chai ne v id e
for k i n r ange(le n( nb)):
e h =nb[k]+e h
re s =in t(c h )
"'O return(re s)
0
c
:J
0
li)
.,,:<:;
..--t c::
0
:l ##################### Part i e pr i ne i p a 1 e ##########################
~
N
"
@
.......
~ 0
N=IOOOO
J:: :; wh i 1 e no t ( e s t p r e mi e r ( N) a n d e h a n g e ( N) = = N a n d
O'l
·;:::: "'0c:: s o me h i f f r e ( N) = = 1 9 ) :
>- c::
o. .9
c:: N= N+ 1
0
u ü
.,,
:l p r i n t ( " L e p 1 u s p e t i t n o mb r e p r e mi e r p a 1 i n d r o me d e c 1 n q e h i f f r e s
2
o.
d o n t 1 a s o mme d e s c h i f f r e s e s t l 9 , e s t " , N)
~
"
:;
1-
0
c) Résultats obtenus après exécution
.,,1
0
c:
:l
Le plus petit nombre premier palindrome de cinq chiffres dont la somme des chiffres
0
QJ est 19, est 16 561.

231
Chapitre l 0 • Travaux pratiques

l 0.4 CALCUL FORMEL

Énoncé

a) Le problème
Le but de ce TP est de créer un algorithme de calcul formel sur les sommes de frac-
tions. Plus précisément, il s'agit de demander à l'utilisateur une expression du type
alb+c/d (où a, b, c et d sont des nombres entiers naturels avec b 7:- 0 et d 7:- 0) et
d'afficher le résultat sous la forme d'une fraction simplifiée.

b) Les questions
1) Écrire une fonction somme(ch) qui à une chaîne ch du type 'a/b+c/d' (où a, b, cet
d sont des nombres entiers naturels avec b -=t. 0 et d -=t. 0) retourne la liste
[a*d+b*c,b*d] correspondant au numérateur et au dénominateur de la somme des
fractions a/b et c/d.
Par exemple, on devra avoir somme('l/2+ 1/3')=[5,6] .
2) Quel est le rôle de la fonction récursive p(a,b) suivante?

Fonction p(a,b: entiers) : entier


Rôle: ........................................................................ .
Début
Si b==O Alors
1 Retourner (a)
Sinon
1 Retourner (p(b,a%b))
FinSi
Fin fonction

3) Écrire une fonction fractionsimp(a,b) qui à des nombres entiers naturels a et b


(avec b 7:- 0) retourne la chaîne de caractères 'u/v' et où u/v est l'écriture simplifiée de
la fraction a/b. Par exemple, on devra avoir fractionsimp(2,6) = '1/3'.
"'O
4) Écrire un algorithme demandant à 1' utilisateur une somme du type a/b+c/d puis
0
c calculant et affichant le résultat sous la forme d'une fraction simplifiée. Implémenter
:J
0 sous Python puis exécuter le programme.
li)
..--t
0
N
@ Corrigé
.......
J::
O'l
·;:::: a) Algorithme
>-
0.
0
u
Nom de l'algorithme calcul _formel _somme_fractions
Rôle : calculer la somme de deux fractions avec résultat simplifié
Entrée : chaîne du type 'a/b+c/d'
Sortie : Affichage de la fraction sous forme simplifiée

Variables globales : expression, simp (chaînes), som (liste)

232
10.4 • Calcul formel

......................... Fonctions ............................ .


Fonction somme(ch: chaîne) : liste
Rôle : calcule la somme sous la forme d'une liste [numérateur,dénominateur]
Variables locales : k, a, b, c, d (entiers), L (liste)
Début
L +-- []
Pour k de 0 à longueur(ch)- 1 Faire
Si ch[k]=='/' ou ch[k]=='+' Alors
1 Ajouter k à L
Fin Si
Fin Pour
a +-- int(ch[O:L[O]])
b +-- int(ch[L[O]+ 1 :L[l]])
c +-- int(ch[L[l]+ 1 :L[2]])
d +-- int(ch[L[2]+ 1 :longueur(ch)])
Retourner(a'"d+b-i'c,b-i'd)
Fin Fonction

Fonction p(a,b: entiers): entier


Rôle : calcule le pgcd de a et b par l'algorithme d'Euclide
Début
Si b==O Alors
J Retourner (a)
Sinon
1 Retourner (p(b,a%b))
FinSi
Fin Fonction

Fonction fractionsimp(a,b: entiers) : chaîne


Rôle : simplifie la fraction a/b
Variables locales : u,v (entiers)
Début
u +-- a//p(a,b)
V +-- b//p(a,b)
Retourner(str(u)+'/'+st r(v))
Fin Fonction
. .. ....... . . . ... .. ... . . Partie principale ... . . . . . .. . ... . .......... . .
Début
"'O
0 Afficher "Ecrire une somme de fractions de la forme a/b+c/d : "
c
:J Saisir expression
0
li)
.,,:<:; som +-- somme(expression)
c::
..--t
0
:l simp +-- fractionsimp(som[O],som[l])
N
~

" Afficher (expression+'='+simp)


@
.......
~ 0
Fin
J:: :;
O'l
·;:::: "'0c:: b) Implémentation Python
>- c::
o. c::
0 .9 ######################### Fonction s ##############################
u .,,ü
:l

2
o. de f s o mme ( c h ) :
~
"
:; L=[ ]
1-
0
f o r k i n ra nge( 1 e n ( c h )) :
.,,
0
1
if c h [ k]== '/ ' o r c h[k ]=='+':
c:
:l L. a pp e nd( k)
0
QJ a= i nt (c h[ O: L[O]])

233
Chapitre l 0 • Travaux pratiques

b=i nt (ch[L[O] +l: L[ l]])


c=i nt (ch[ L[ l ] +l: L[2] ])
d =in t (ch [ L[ 2] + 1: 1 en (c h )])
return(a * d+b *c, b * d)

def p(a,b ):
if b==Ü:
return(a)
el se:
ret ur n( p( b , ao/ob))

de f f r a c t i o n s i mp ( a , b ) :
u, v=a//p(a , b), b//p(a, b )
return(str(u)+' /' +st r(v))

#####################Partie principale ##########################

e x p r e s s i o n = i n p u t ( " Ec r i r e u n e s o mme d e f r a c t i o n s d u t y p e
a/b+c/d: ")
s o m= s o mme ( e x p r e s s i o n )
s i mp = f r a c t i o n s i mp ( s o m[ 0 ] , s o m[ 1 ] )
p r i n t ( e x p r e s s i o n + ' = ' + s i mp )

c) Résultats obtenus après exécution


Par exemple, pour 1/2 + 516, on obtient 1/2 + 516 = 4/3.

10.5 CALCUL MATRICIEL

Énoncé

a) Le problème
Le but de ce TP est d'écrire un algorithme permettant de calculer des expressions du
"'O
0
c
type x0 X 13 + x 1 x A+ x 2 x A2 + ... + xn x A11 pour A une matrice A carrée d'ordre 3
0
:J et pour des coefficients réels x0 , x1, ... et xn (les coefficients et les éléments de la
li)
..--t
matrice étant rentrés par l'utilisateur). Nous définirons une matrice :
0
N
@ a1 ,1 a1 ,2 ai 3
.......
J::
O'l a 2,1 a 2,2 a 2,3
·;::::
>-
0.
0 a 3,1 a 3,2 a 33
u
comme la liste dont les éléments sont les listes des éléments de chaque ligne :

Dans tout le TP, toute matrice sera carrée d'ordre 3.

234
10.5 • Calcul matriciel

b) Les questions
1) Quel est le rôle de la fonction so(A,B) suivante?

Fonction so(A,B: listes) : liste


Rôle: ............................................................... .
Variables locales : i,j (entiers) C (liste)
Début
c f - [[0,0,0],[0,0,0],[0,0,0]]
Pour i de 0 à 2 Faire
Pour j de 0 à 2 Faire
1 C[i]Li] f - A[i]Li]+B[i]Li]
Fin Pour
Fin Pour
Retourner(C)
Fin Fonction

2) Écrire une fonction produitR(x,A) qui à un réel x et à une matrice A carrée


d'ordre 3, retourne la matrice xA.
3) Écrire une fonction produit(A,B) qui à A et B deux matrices carrées d'ordre 3,
retourne la matrice A x B.

On rappelle que si A = (a l..j ) B = (b IJ


1
..) C = (c.IJ .) et C = A x B alors, pour tous
1

i,j E {7 ,2,3} on a : c;,j = a;, 1 ; b 1,J + a;,2 ,, b2 J + a;,3 x b3 J.

4) Écrire une fonction récursive puissance(A,n) qui retourne A n, à une matrice A,


carrée d' ordre 3, et un entier naturel n.
5) Écrire un algorithme demandant à l'utilisateur un entier naturel n et les coeffi-
cients x 0 , ... , xn, puis les éléments d' une matrice A, carrée d' ordre 3, et affichant la
matrice x0 x13 + x 1 x A+ x 2 x A2 + ... + xn x A n. Cet algorithme devra faire appel aux
fonctions so(A,B), produitR(A,B) et puissance(A,n). Implémenter sous Python
puis exécuter le programme.

"'O
0
Corrigé
c
:J
0
li)
.,,:<:; a) Algorithme
..--t c::
:l
0 ~
N
"
@
.......
~
0
Nom de l'algorithme expression_matricielle
J:: :; Rôle : calculer x_0 1'1_3+x_ l ~'A/\ 1+ .. .+x_n '~AAn
O'l
·;:::: "'0c:: Entrées : n, coefficients x _O, ... , x _n et éléments de A
>- c::
o.
0
c::
.9 Sortie : Affichage de la matrice x _O* l_3+x_l *A/\ 1+ ... +x_n*AAn
u ü
.,,
:l

2
o.
~
Variables globales : N,p,q (entiers), coef (réel), listecoefs, matA, S (listes)
"
:;
0
1-
.. . ..... . . . . . ... .. ..... . . Fonctions . ... . ... . . . . . .. . ....... . ..... .
.,,
0
1

c:
:l
0
Fonction so(A,B: listes) : liste
QJ Rôle : calcule la somme A+B, pour A,B matrices carrées d'ordre 3

235
Chapitre l 0 • Travaux pratiques

Variables locales : i,j (entiers), C (liste)


Début
c f - [[0,0,0],[0,0,0],[0,0 ,0]]

Pour i de 0 à 2 Faire
Pour j de 0 à 2 Faire
1 C[i]Li] f - A[iJU]+B[iJU]
Fin Pour
Fin Pour
Retourner(C)
Fin Fonction

Fonction produitR(x: réel, A: liste) : liste


Rôle : calcule le produit xA
Variables locales : i,j (entiers), C (liste)
Début
c f - [[0,0,0],[0,0,0],[0,0,0]]

Pour i de 0 à 2 Faire
Pour j de 0 à 2 Faire
1 C[i]Li] f - x 1'A[i]Li]
Fin Pour
Fin Pour
Retourner(C)
Fin Fonction

Fonction produit(A,B: listes) : liste


Rôle : calcule le produit AB
Variables locales : i,j,k (entiers), C (liste)
Début
c f - [[0,0 ,0],[0,0,0],[0,0 ,0]]
Pour i de 0 à 2 Faire
Pour j de 0 à 2 Faire
Pour k de 0 à 2 Faire
1 C[i]Li] f - C[i]Li]+A[i][k]* B[k]Li]
Fin Pour
Fin Pour
Fin Pour
Retourner(C)
Fin Fonction
"'O
0 Fonction puissance(A: liste, n: entier) : liste
c
:J Rôle : calcule A"n
0 Début
li)
..--t Si n==O:
0
N 1 Retourner([[l ,O,O],[O, 1,0],[0,0,1]]) # matrice identité 1_3
@ Sinon
....... 1 Retourner(produit(puissance(A,n-1 ),A)) # A" n=N'A"(n-1)
J::
O'l
·;:::: FinSi
>- Fin Fonction
0.
0
u
.. .. .. . ... . ... . .. .. .. . . Partie principale ... . ... . .. . ... . ... . ... . .. . .

Début
Afficher "Calcul de x_0 1' 1_3+x_ l *A" 1+x_2 1'A"2+ ...+x_n 1'A"
Afficher "Rentrer n : "
Saisir N

236
10.5 · Calcul matriciel

listecoefs - [] #initialisation des coefficients : liste vide


matA - [[0,0,0],[0,0,0],[0,0,0]] # initialisation de la matrice A

Pour p de 0 à N Faire
Afficher "x_",p,"="
Saisir coef #Saisie des coefficients x_O, ... , x_n
Ajouter coef à listecoefs
Fin Pour

Pour p de 0 à 2 Faire
Pour q de 0 à 2 Faire
Afficher "a_",p+ l ,",",q+ l ,"="
1
Saisir matA[p][q] #Saisie des éléments de A
Fin Pour
Fin Pour

s- [[0,0,0],[0,0,0],[0,0,0]]
Pour p de 0 à N Faire
1 S - so(S,produitR(listecoefs[p],puissance(A,p)))
Fin Pour

Afficher "Matrice obtenue :"


Afficher(S[O]) #première ligne de la matrice x_0"'1_3+ ...+x_n '"A
Afficher(S[l]) #deuxième ligne de la matrice x_0"' 1_3+ ... +x_n "'A
Afficher(S[2]) # troisième ligne de la matrice x_0 "'1_3+ ... +x_n "'A
Fin

b) Implémentation Python
#########################Fonction s #############################
def s o ( A,B) :
C= [ [ 0 , 0 , O], [ 0 , 0 , O] , [ 0 , 0 , O]]
for 1 1n ran ge( 0 ,3 ) :
for j in range(0 ,3) :
C[ i ] [ j ] =A[ i ] [ j ] +B[ i ] [ j ]
return(C)
def produit R( x, A):
C=[ [ 0 , 0 , 0] ' [ 0 , 0 , 0] ' [ 0 , 0 , 0]]
"'O for i 1n ran ge( 0 ,3):
0
c for j in r ange(0,3):
:J
0 C[ i ] [ j ] =X * A[ i ] [ j ]
li)
.,,:<:; return(C)
..--t c::
:l
0
N
~
def produit (A, B):
"
@
.......
~ C= [ [ 0 , 0 , O], [ 0 , 0 , O] , [ 0 , 0 , O]]
J::
0
:; for i in ran ge(0,3):
O'l
·;:::: "'0c:: for j in r a n ge( 0 , 3):
>- c::
o. c:: for k in ran ge( 0 ,3) :
0 .9
u ü C[ i ] [ j ] =C[ i ] [ j ] +A[ i ] [ k] * B[ k] [ j ]
.,,
:l
r e turn (C)
2
o.
~
"
:;
def pui ssa nce(A,n) :
1-
0
if n==O:
.,,
0
1
r et ur n ( [ [ 1, 0 , 0] , [ 0 , 1, 0] , [ 0 , 0 , 1]] )
c:
:l e l se :
0
QJ r et urn(produi t(pui ssa n ce(A, n - 1) , A))

237
Chapitre l 0 • Travaux pratiques

#####################Part i e principale ##########################

p r i nt ( " Ca 1 c u 1 de x _ 0 * 1 _ 3 + x _ l * A" l + x _ 2 * A" 2 + ... + x _ n * A" )


N= i nt ( i n put ( " Re nt r e r n : " ) )
1 i stecoe f s = []
mat A= [ [ 0 , 0, 0] , [ 0 , 0, 0] , [ 0 , 0, 0] ]
f o r pin r ange(N+l):
coef=f 1 oat (input (' x _' +st r ( p ) +' ='))
1 i s t ecoefs. append(coef)
for pin range(3):
for q in ra n ge(3):
mat A[ p] [ q] = f 1 o a t ( i n put ( ' a_' + s t r ( p + 1) +' , ' + s t r ( q + l) +' =' ) )
S=[ [ 0, 0, 0], [ 0, 0, 0], [ 0, 0, 0]]
for p i n r ange ( Nt 1 ) :
S = s o ( S, p r o du i t R( 1 i s t e c o e f s [ p] , pu i s sa n ce ( mat A, p) ) )
print("Matrice obtenue: " )
print(S[O])
print(S[l])
pri nt(S[2 ] )

c) Résultats obtenus après exécution


Par exemple, pour A=[[l,2,3],[2,3,4],[3,4,5]], n = 2, x 0 = 1, x 1 = 2 et x2 = 3, on
obtient:
• [45,64,84]
• [64,94,122]
• [84,122,161]

1 2 3 45 64 84
Donc, si A= 2 3 4 , alors 13 + 2A + 3A2 = 64 94 122
3 4 5 84 122 161

"'O
l 0.6 ÜPÉRATIONS SUR LES ENSEMBLES
0
c
:J
0
li)
Énoncé
..--t
0
N
@ a) Le problème
.......
J::
O'l
Le but de ce TP est de déterminer la réunion et l' intersection deux ensembles dont
·;::::
>- les éléments sont saisis par l'utilisateur. Un ensemble sera considéré comme une
0.
u
0 liste sans doublon, c'est-à-dire sans éléments se répétant plusieurs fois.
Par exemple [] sera l'ensemble vide, [A,3,[Azerty,'OK'],8.9] sera un sensemble,
mais la liste [0,2,5,4,2,3] n'en sera pas un.

b) Les questions
1) Quel est le rôle de la fonction ver(ens) suivante?

238
10.6 • Opérations sur les ensembles

Fonction ver(ens: liste): booléen


Rôle: .. ....... ........ ............... .............................. ........ ....... . .
Variables locales : i,j (entiers)
Début
Pour i de 0 à longueur(ens)-2 Faire
Pour j de i+ l à longueur(ens)-1 Faire
Si ens[i]==ensLi] Alors # deux éléments identiques
1 Retou rner(FAUX)
FinSi
Fin Pour
Fin Pour
Retourner(VRAI)
Fin Fonction

2) Écrire une fonction appartient(x,ens) qui retourne VRAI si l'élément x est dans
la liste ens et FAUX sinon.
3) Écrire une fonction inter(ensl,ens2) qui retourne la liste des éléments de l'inter-
section des ensembles ensl et ens2.
4) Écrire une fonction union(ensl,ens2) qui retourne la liste des éléments de la
réunion des ensembles ensl et ens2.
5) Écrire un algorithme demandant à l'utilisateur deux ensembles A et B, véri-
fiant qu'il s'agisse bien d'ensembles, puis affichant les éléments de Au B et An
B. Implémenter sous Python cet algorithme puis exécuter le programme. Pour la sai-
sie d ' une liste, utiliser la fonction eval(input()).

Corrigé
a) Algorithme

Nom de l'algorithme opérations_ensembles


Rôle : déterminer l'intersection et la réunion de deux ensembles
Entrées : ensemble l, ensemble2 (listes)
Sorties : Affichage de l'intersection et de la réunion de ensemble l et ensemble2

"'O
0 Variables globales : ensemble l, ensemble2 (listes)
c
:J
0 .. . ... . ... . ...... . ... . ... Fonctions . . ... . ... . .. . ... . ... . ... . .. . .
li)
.,,:<:;
..--t c::
:l
0 ~
Fonction ver(ens: liste) : booléen
N
" Rôle : vérifie si la liste ens est sans doublon
@
.......
~ 0 Variables locales : i,j (entiers)
J:: :;
O'l "'0c:: Début
·;::::
>- c:: Pour i de 0 à longueur(ens)-2 Faire
o. .9
c::
Pour j de i+ l à longueur(ens)-1 Faire
0
u ü
.,,
:l Si ens[i]==ensLi] Alors # deux éléments identiques
2
o. 1 Retou rner(F AUX)
~
"
:;
FinSi
1-
0
Fin Pour
.,,
0
1
Fin Pour
c:
:l Retourner(VRAI) # si aucun doublon
0
QJ Fin Fonction

239
Chapitre l 0 • Travaux pratiques

Fonction appartient(x: tout type possible, ens: liste) : booléen


Variable locale : k (entier)
Début
Pour k de 0 à longueur(ens)-1 Faire
Si x==ens[k] Alors
1 Retourner(VRAI)
Fin Si
Fin Pour
Retourner(FAUX)
Fin Fonction

Fonction inter(ens 1 ,ens2: listes) : liste


Variables locales : k (entier), res (liste)
Début
res f - []
Pour k de 0àlongueur(ens1 )-1 Faire
Si appartient(ens 1 [k],ens2) Alors
1 Ajouter ens 1 [k] à res
Fin Si
Fin Pour
Retourner(res)
Fin Fonction

Fonction union(ensl ,ens2 : listes) : liste


Variables locales : k (entier), res (liste)
Début
res f - ens2
Pour k de 0àlongueur(ens1 )-1 Faire
Si non(appartient(ens 1 [k],ens2)) Alors
1 Ajouter ens 1 [k] à res
Fin Si
Fin Pour
Retourner(res)
Fin Fonction
.. .. .. . ... . ... . .. .. .. . . Partie principale

Début
"'O
Afficher "Saisir un premier ensemble : "
0
c Saisir en semble 1
0
:J TantQue non(ver(ensemble 1)) Faire
li) Afficher "Attention ! Sai sir un premier en semble (sans doublon) : "
..--t
0 1 Saisir ensemble l
N
FinTantQue
@
.......
J::
O'l
Afficher" Saisir un second ensemble : "
·;::::
>- Saisir ensemble2
0.
0
TantQue non(ver(ensemble2)) Faire
u Afficher "Attention ! Saisir un second ensemble (sans doublon) : "
1
Saisir ensemble2
FinTantQue

Afficher "L'intersection de ces ensembles est : ",inter(ensemblel ,ensemble2)


Afficher "La réunion de ces ens embles est : ",union(ensemble 1,ensemble2)
Fin

240
10.6 • Opérations sur les ensembles

b) Implémentation Python
#########################Fonctions #############################

def ve r (e ns ):
fo r 1 1n range(len ( en s) -1):
for j in ran ge( i+l,l en(e ns)) :
if ens[ i]== ens[j] :
r etu rn ( False)
r et urn ( Tru e)

d ef appartient(x ,e n s) :
f o r k in r ange( len( ens)) :
if x==ens [ k]:
return ( Tru e)
r et urn(Fal s e)

def inter (ens l , en s 2):


r es = [ ]
for k in ran ge( len(en s l )):
if appartient (e n s ![ k ], e n s2) :
r es.a ppend ( en s l[k])
return(res)

de f uni on( en s 1, en s2):


re s =ens2
fo r k in r a n ge(len(ens l )):
if not(appartient(en s l[k] ,e n s2)) :
re s . append(en s l[k] )
ret ur n( re s)
##################### Pa rti e pri nc ip a l e##########################
e n s e mb 1 e 1 = e v a 1 ( i n p u t ( " S a i s i r u n p r e m1 e r e n s e mb 1 e : " ) )
wh i 1 e no t ( ve r ( e n s e mb 1 e 1 ) ) :
e n s e mb 1 e 1 = e v a 1 ( i n p u t ( " At t e n t i o n ! S a i s i r u n p r e mi e r e n s e mb 1 e
(sans doublon ): "))

e n s e mb 1 e 2 = e v a 1 ( i n p u t ( " S a i s i r u n s e c o n d e n s e mb 1 e : " ) )
wh i 1 e n o t ( v e r ( e n s e mb 1 e 2 ) ) :
"'O e n s e mb 1 e 2 = e va 1 ( i n pu t ( " At t e nt i on ! Sa i s i r u n s e con d e n s e mb 1 e
0
c (s an s doublon ): "))
:J
0
li)
.,,:<:; pr i n t ( " L' i n t e r s e c t i o n d e c e s e n s e mb 1 e s e s t
..--t c::
0
:l
~
" , i nt e r ( e n s e mb 1 e 1 , e n s e mb 1 e 2 ) )
N pr i n t ( " La r é u n i o n d e c e s e n s e mb 1 e s e s t
"
@
.......
~ 0
" , uni o n ( e n s e mb 1 e 1, e n s e mb 1 e 2 ) )
J:: :;
O'l
·;:::: "'0c::
c) Résultats obtenus après exécution
>- c::
o. c::

u
0 .9 Exemple:
.,,ü
:l

2 • Saisir un premier ensemble: [1,'az',2,3,4,8] .


o.
~
" • Saisir un second ensemble : [4,'ok',5,'az',6,5].
:;
0
1- • Attention ! Saisir un second ensemble (sans doublon): [4,'ok',5,'az',6].
.,,1
0
c:
:l
• L'intersection de ces ensembles est: ['az',4].
0
QJ • La réunion de ces ensembles est : [4,'ok',5,'az',6,1,2,3,8].

241
Chapitre l 0 • Travaux pratiques

l 0.7 MÉTHODES DE TRI

Énoncé

a) Le problème
Le but de ce TP est de comparer le temps d'exécution de plusieurs méthodes de tri
d'une liste de nombres par ordre croissant. Parmi ces méthodes, on peut distinguer:
• Le tri par sélection : on recherche le plus petit élément de la liste, que l'on place
en première position, puis le plus petit de la liste formée par les autres éléments,
que l'on place en seconde position, etc.
• Le tri à bulles : pour une liste L, on compare tous les éléments successifs L[k],
L[k+ 1]. Lorsque deux éléments successifs ne sont pas rangés par ordre croissant,
on les intervertit. Après un parcours complet de la liste, on recommence, et ainsi
de suite jusqu'à ce qu'au cours d'un parcours, aucune interversion n'ai lieu.
• Le tri rapide : pour une liste Layant au moins deux éléments, on retire le premier
élément x de cette liste puis on crée deux listes, celle des éléments inférieurs ou
égaux à x (liste 1) et celle des éléments supérieurs à x (liste 2). On fait de même
avec ces nouvelles listes et ainsi de suite (il s'agit d'un algorithme récursif). On
obtient la liste triée en prenant les éléments triés de la liste 1 puis x puis les
éléments de la liste 2.

b) Les questions
1) Écrire une fonction tri_select(L) retournant la liste triée par la méthode de tri par
sélection.
2) Écrire une fonction tri_bulles(L) retournant la liste triée par la méthode de tri à
bulles.
3) Écrire une fonction récursive tri_rapide(L) retournant la liste triée par la
-0
méthode de tri rapide. On se servira de la fonction Python pivot=L.pop() qui affecte
0
c à la variable pivot la valeur du dernier élément de la liste L et qui le supprime de
:J
0 cette liste.
li)
..--t
0
4) Écrire un algorithme permettant de comparer la rapidité d'exécution de chacune
N
@
des fonctions précédentes. Pour cela :
....... • importer le module Python time, en insérant en début de partie principale,
J::
O'l
·;::::
>-
l'instruction import time, puis utiliser la fonction time.time() renvoyant le temps
0.
0 en seconde écoulé depuis le 1er janvier 1970 à 0 h OO.
u
• importer le module Python random, en insérant en début de partie principale,
l'intruction import random, puis générer une liste Lh de 100 nombres réels, en
utilisant l'instruction Lh.append(random.random()) qui insère dans la liste Lh un
nombre réel choisi au hasard entre 0 et 1.
5) Classer ces méthodes de tri, de la plus rapide à la moins rapide.

242
1O.7 • Méthodes de tri

Corrigé

a) Algorithme

Nom de l'algorithme méthodes de tri


Rôle : comparer les vitesses d'exécution des algorithmes de tri
Entrée : liste de 1OO nombres réels au hasard
Sortie : affichage du classement des méthodes de tri

Variables globales : k (entier), debut, fin (réels), Lh (liste)


. .. .. .. . . . . . . ... .. . .. .. . . Fonctions

Fonction tri_select(L: liste) : liste


Variables locales : i,j (entiers)
Début
Pour i de 0 à longueur(L)-2 Faire
Pour j de i+ 1 à longueur(L)-1 Faire
Si LLi]<L[i] Alors
J L[i],LLi] (---- Lü],L[i] #interversion de L[i] et LLi]
FinSi
Fin Pour
Fin Pour
Retourner(L)
Fin Fonction

Fonction tri_bulles(L: liste) : li ste


Variables locales : i (entier), echange (booléen)
Début
echange (---- VRAI
TantQue echange ==VRAI Faire
echange (---- FAUX
Pour i de 0 à longueur(L)-2 Faire
Si L[i] > L[i+ 1] Alors
L[i], L[i+ 1] (---- L[i+ 1], L[i] #intervertit L[i] et L[i+ 1]
1
echange (---- VRAI
"'O FinSi
0
c Fin Pour
:J
0 Fin Pour
li)
.,,:<:; Retourner(L)
..--t c::
:l
0 ~
Fin Fonction
N
"
@
.......
~ 0 Fonction tri_rapide(L: liste) : liste
J:: :;
O'l "'0c:: Variables locales : x , pivot (réels), petits, grands (listes)
·;::::
>- c:: Début
o. .9
c::
Si longueur(L)<= 1 Alors
0
u ü
.,,
:l
J Retourner(L)
2
o. FinSi
~
"
:;
pivot (---- L.pop()
1-
0
petits (---- []
.,,
0
1
grands (---- []
c:
:l Pour x dans L Faire
0
QJ 1 Si x<= pivot Alors

243
Chapitre l 0 · Travaux pratiques

1Ajouter x à petits
Sinon
1 Ajouter x à grands
Fin Si
Retourner(tri_rapide(petits)+[pivot]+tri_rapide(grands))
Fin Fonction

.. . ... . ... . ... . .. .. .. . . Partie principale ... . ... . .. . ... . ....... . .. . .


Début
Lh +--- []
Pour k de 0 à 99 Faire #génère une liste de l OO réels au hasard
1 Ajouter random.random() à Lh
Fin Pour
debut +--- time.time()
tri_select(Lh)
fin +--- time.time()
Afficher 'Temps d'exécution en secondes avec le tri par sélection : ",fin-debut
Lh +--- []
Pour k de 0 à 99 Faire
1 Ajouter random.random() à Lh
Fin Pour
debut +--- time.time()
tri_bu l les(Lh)
fin +--- time .time()
Afficher 'Temps d'ex écution en secondes avec le tri à bulles : ",fin-debut
Lh +--- []
Pour k de 0 à 99 Faire
1 Ajouter random.random() à Lh
Fin Pour
debut +--- time.tim e()
tri_rapide(Lh)
fin +--- time.time()
Afficher 'Temps d'ex écution en secondes avec le tri rapide : ",fin-debut
Fin

b) Implémentation Python
######################### F o n c ti o ns #############################
"'O
0
c def tri _ se l ec t ( L) :
:J
0 fo r i in r a nge( O, l e n ( L) -1 ):
li)
..--t
f o r j in r a n ge( i + l , len (L)) :
0 i f L[ j ] <L[ i ] :
N
@ L[ i ] , L[ j ] =L[ j ] , L[ i ]
....... r et urn ( L)
J::
O'l
·;::::
>- def t r i _ bull e s (L):
0.
0 ec h a n g e = Tr u e
u \\h i l e ec h a nge == Tru e:
ec h a n ge = Fa l s e
fo r i in ra n ge(O, l e n (L) -1 ):
i f L[ i ] >L[ i + L] :
L[ i ] , L[ i + l] =L[ i +1] , L[ i ]
ec h a n ge = Tr u e
r e t u r n ( L)

244
1O.7 • Méthodes de tri

def tri_rapide(L ) :
if len(L)<=l :
r et urn ( L)
pivot =L. pop()
p et it s =[]
g rand s =[]
f or x i n L:
if x<=pivot:
petits. append( x)
e 1 se:
g rand s. append(x)
return( t ri _ rapide (petits) +[ pivot]+tri _ rapide(grands))

#####################Part i e principale ##########################

i mp or t t i me
i mp o r t r a nd o m

Lh= [ ]
for k in ran ge( I OO) :
Lh . a p p e n d ( r a n d o m. r a n d o m( ) )
d e b u t = t i me . t i me ( )
tri_ se lect(Lh )
f i n = t i me . t i me ( )
p r i n t ( " Te mp s d ' e x é c u t i o n e n s e c o n d e s a v e c 1 e t r i p a r
sé le c ti o n : ", fin-debut)

Lh=[]
for k in ra nge( 100 ) :
L h . a p p e n d ( r a n d o m. r a n d o m( ) )
d e b u t = t i me . t i me ( )
tri_bulle s (Lh )
f i n = t i me . t i me ( )
p r i n t ( " Te mp s d ' e x é c u t i o n e n s e c o n d e s a v e c 1 e t r i à b u 1 1 e s
" , f in-d e but )

Lh = [ ]
for k in r ange( I OO):
L h . a p p e n d ( r a n d o m. r a n d o m( ) )
"'O d e b u t = t i me . t i me ( )
0
c tri _ rapide(Lh )
:J
0 f i n = t i me . t i me ( )
li)
.,,:<:;
..--t c::
:l
p r i n t ( " Te mp s d ' e x é c u t i o n e n s e c o n d e s a v e c 1 e t r i r a p i d e
0
N
~
" , fi n - debu t)
"
@
~
.......
J::
0
:; c) Résultats obtenus après exécution
O'l
·;:::: "'0c::
>- Exemple d'exécution :
c::
o. .9
c::

u
0
ü • Temps d'exécution en seconde avec le tri par sélection: 0.006999969482421875 .
.,,
:l

2
o. • Temps d'exécution en seconde avec le tri à bulles: 0.006000041961669922.
~
" • Temps d'exécution en seconde avec le tri rapide: 0.0009999275207519531.
:;
0
1-
.,,1 Une répétition de plusieurs exécutions du programme montre que le classement
0
c:
:l
de ces méthodes de tri, de la plus rapide à la moins rapide, est : tri rapide, tri à bulles
0
QJ et tri par sélection.

245
Chapitre l 0 • Travaux pratiques

l 0.8 CRYPTOGRAPHIE
Énoncé
a) Le problème
On considère un texte composé uniquement de caractères minuscules et d ' espaces
comme 'bonjour tout le monde' par exemple. On peut crypter ce texte en remplaçant
chaque lettre par la lettre obtenue par un décalage circulaire de +3 dans l' alphabet.
Par exemple 'a' devient 'd', 'b' devient 'e', ... ,'y' devient 'b' et 'z' devient 'c'. Donc le
message 'bonjour tout le monde' devient 'erqmrxu wrxw oh prqgh'. On parle de
codage par la méthode de César avec le décalage 3.

~ On définit de même le codage par la méthode de César avec le décalage d (où d est
~ un entier compris entre 0 et 25).

Le but de ce TP est de décrypter le message 'tew wm jegmpi uyi gipe pi gsheki


hi giwev', codé par la méthode de César, sans connaître le décalage appliqué.

Nous appelerons message toute chaîne de caractères ne contenant que des


lettres minuscules et des espaces comme 'bonjour tout le monde' par exemple.
Toutes les fonctions ci-dessous devront être implémentées en Python.

a) Les questions
1) Écrire une fonction codage(message,d) qui à un message message et à un entier d
compris entre 0 et 25, renvoie le message codé par la méthode de César, avec le décalage d.
2) Écrire une fonction freq_lettres(messagecode) qui à un message messagecode
(un message codé) retourne la liste des fréquences des lettres de l'alphabet. Par
exemple, freq_lettres(texte)[O] devra être la fréquence du caractère 'a' dans le
message texte, etfreq_lettres(texte)[3], celle de 'd'.
3) Écrire une fonction calcul_auto_decal(messagecode) qui à un message
"'O messagecode (un message codé), retourne le décalage probable, basé sur le fait que,
0
c statistiquement, le caractère le plus présent dans un texte est 'e'.
:J
0
li)
4) Écrire un algorithme permettant de décrypter le message codé 'tew wm jegmpi
..--t
0 uyi gipe pi gsheki hi giwev'. On pourra remarquer que l'on obtient le décryptage
N
@ par utilisation de codage(textecode,-d), où d est le décalage utilisé pour coder.
.......
J::
O'l
·;:::: Corrigé
>-
0.
0
u a) Algorithme

Nom de l'algorithme crypage_César


Rôle : décrypter un message codé par la méthode de César
Entrée : -----------------
Sortie : affichage du message décrypté

246
10.8 • Cryptographie

Variables globales : alphabet, textcod (chaînes), decal (entier)


.. . ....... . . . ... ... .. . ... Fonctions . .... . . . . . . . ... .. ... . . . . . . . . .

Fonction codage(message: chaîne ,d: entier) : chaîne


Variables locales : k,i (entiers), messagecode (chaine)
Début
messagecode +-- " #Initialisation : chaîne vide
Pour k de 0 à longueur(message)-1 Faire
Si message[k]==' 'Alors #caractère "espace"
1 messagecode +-- messagecode+' '
Fin Si
Pour i de 0 à 25 Faire
Si message[k]==alphabet[i] Alors
1 messagecode +-- messagecode+alpha[(i+d)%26]
FinSi
Fin Pour
Fin Pour
Retourner(messagecode)
Fin Fonction

Fonction freq_lettres(messagecode: chaîne) : liste


Variables locales : k,i (entiers), listefreq (liste)
Début
listefreq +-- [0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0]
Pour k de 0 à longueur(messagecode)-1 Faire
Pour i de 0 à 25 Faire
Si messagecode[k]==alphabet[i] Alors
1 li stefreq [i] +-- 1i stefreq [i]+ 1
FinSi
Fin Pour
Fin Pour
Retourner(! istefreq)
Fin Fonction

Fonction calcul_auto_decal(messagecode : chaîne) : entier


Variables locales : i, indicemax (entiers), liste_freq (liste)
Début
"'O
0 indicemax +-- 0
c liste_freq +-- freq_lettres(messagecode)
:J
0
.,,:<:; Pour ide 0 à 25 Faire
li)
..--t c::
:l
Si liste_freq[i]>indicemax Alors
0
N
~
1 indicemax +-- i
"
@
.......
~ 0
Fin Si
Fin Pour
J:: :;
O'l
·;:::: "'0c:: Si indicemax>=4 Alors
>- c::
o. c:: 1 d +-- indicemax-4
.9
u
0
ü Sinon
.,,
:l
1 d +-- indicemax+22
2
o.
~ FinSi
"
:; Retourner(d)
0
1- Fin Fonction
.,,
0
1

c:
0
:l . .. ... . ... . . . ... .. ... . . Partie principale ... . . . .... . .............. . .
QJ

247
Chapitre l 0 · Travaux pratiques

Début
alphabet+-- 'abcdefghijklmnopqrstuvwxyz'
textcod +-- 'tew wm jegmpi uyi gipe pi gsheki hi giwev'
decal +-- calcul_auto_decal(textcod)
Afficher(codage(textcod ,-decal))
Fin

b) Implémentation Python
#########################Fonctions##############################

d e f c o d a g e ( me s s a g e , d ) :
me s s a g e c o d e = "
f o r k i n r a n g e ( 1 e n ( me s s a g e ) ) :
i f me s s a g e [ k ] = = ' ' :
messagecode=messagecode+' '
for i in range(26):
i f me s s a g e [ k ] = = a 1 p h a b e t [ i ] :
me s s a g e c o d e = me s s a g e c o d e + a 1 p h a b e t [ ( i + d ) %2 6 ]
r e t u r n ( me s s a g e c o d e )

d e f f r e q _ 1 e t t r e s ( me s s a g e c o d e ) :
1 i st ef r eq=[ 0 , 0 , 0, 0, 0 , 0, 0 , 0, 0 , 0, 0 , 0, 0 , 0, 0 , 0, 0 , 0, 0 , 0 , 0 , 0, 0 , 0, 0 , O]
f o r k i n r a n g e ( 1 e n ( me s s a g e c o d e ) ) :
for i in range(26):
i f me s s a g e c o d e [ k ] = = a 1 p h a b e t [ i ] :
1 i s te fr e q [ i] =l i ste fr e q [ i ] + 1
r etu rn ( I i stefreq)

d e f c a 1 c u 1 _ a u t o _ d e c a 1 ( me s s a g e c o d e ) :
i ndi cemax=O
1 i s t e _ f r e q = f r e q _ 1 e t t r e s ( me s s a g e c o d e )
for i in range(26):
if liste _ freq[i]>indicemax:
i ndi ce max= i
i f i n d i c e ma x > = 4 :
"'O
0 d = i n d i c e ma x - 4
c
:J e 1s e :
0
li)
d = i n d i c e ma x +2 2
..--t
0
return(d)
N
@
.......
J:: #####################Partie principale ##########################
O'l
·;::::
>- a 1 p h a b e t =' a b c d e f g h i j k 1 mn o p q r s t u v wx y z '
0.
0
u t e x t c o d =' t e w wm j e g mp i u y i g i p e p i g s h e k i h i g i we v '
de ca l =ca l cu l _ aut o _deca l ( t ext cod)
pr i nt (codage( t ext cod, -decal))

C) Résultats obtenus après exécution


On obtient le message d'origine: « pas si facile que cela le codage de cesar » .

248
L'EXAMEN
D'ALGORITHMIQUE

a
m_... _E
_x_a_m_e_n_l_-
_R_
e_m_p_Ii-ss-age d'une tirelire
Examen 2 - La suite de Syracuse

~ Pratiquer, s'entraîner à l'examen oral d'algorithmique.

L'algorithmique appliquée est évaluée en CCF (Contrôle en cours de formation) ou


en forme ponctuelle. Il a pour but d'évaluer la capacité du candidat à analyser un
énoncé, formaliser une démarche de résolution de problème, écrire, interpréter et
éventuellement modifier ou compléter un ou plusieurs algorithmes.
Plus précisément, il s' agit d'évaluer:
• la maîtrise des connaissances d' algorithmique appliquée,
• l'efficacité et la pertinence de la solution proposée,
• la correction et la cohérence de l'utilisation du formalisme retenu,
"'O
0
• la qualité de la mise œuvre, notamment la lisibilité (indentation, commentaires,
c
:J etc.),
0
li)
.,,:<:; •l'efficacité de l' implémentation,
..--t c::
:l
0
" • la pertinence de 1'utilisation des composants logiciels disponibles,
~
N
@
.......
~ • l'adéquation des tests de validation effectués,
0
J:: :;
O'l
·;:::: 0
"'c:: • l'aptitude à proposer des éléments de correction pertinents.
>- c::
o. c::
0 .9 L'examen se déroule en deux temps :
u ü
.,,
:l

2 • Un temps de préparation qui se décompose en deux parties:


o.
~
"
:; Une première partie de 30 minutes (sur table) : une situation problème et des
0
1-
.,,
1 consignes écrites sont données au candidat qui devra fournir une production
0
c:
:l
manuscrite comportant un ou plusieurs algorithmes, susceptible d' être exami-
0
QJ née par la commission.

249
Chapitre 11 · L'examen d'algorithmique

- Une seconde partie de 30 minutes (sur machine): sur un équipement dédié, mis
à disposition par le centre d'examen, le candidat met en œuvre sur machine les
algorithmes qu' il a écrits dans la première partie.
• Puis un temps d'évaluation orale qui se décompose aussi en deux parties:
- Le candidat présente d'abord sa solution algorithmique et son implémentation,
en une durée maximale de 10 minutes.
- Ensuite il participe à un entretien d'explicitation conduit par la commission, en
une durée maximale de 10 minutes.
Les compétences liées à l'unité « mathématiques » (U21) ne sont pas évaluées
dans cette épreuve mais la réalisation demandée peut s'appuyer sur les techniques
abordées dans cette unité, les méthodes requises sont alors fournies dans le sujet.

Mode d'emploi des examens proposés


Nous présentons ici deux sujets officiels donnés au CCF d'algorithmique appli-
quée lors de la session 2014. Nous fournissons aussi les fiches réponse données
aux candidats. Ces sujets, entièrement corrigés, ne se prétendent pas exhaustifs,
mais constituent tout de même une base de travail solide, en tant qu'exemple de
ce qui peut être donné dans ce type d'évaluation.

Examen 7 - Remplissage d'une tirelire

Le problème initial
Je remplis une tirelire de la manière suivante :
• je commence par déposer 1 € dans la tirelire (un lundi),
• puis j'y dépose 2,01 €le jour suivant (un mardi),
• puis 3,02 € le jour suivant (un mercredi),
"'O
• puis 4,03 € le jour suivant (un jeudi),
0
c • etc. (chaque jour j ' y dépose 1,01 €de plus que la veille).
:J
0 Par exemple: le huitième jour (un lundi), j'y dépose 8,07 € et le contenu total de
li)
..--t
0
la tirelire est : 1 + 2,01 + 3,02 + 4,03 + 5,04 + 6,05 + 7,06 + 8,07 = 36,28 € .
N
Lorsque le contenu total de la tirelire dépasse 1 500 €,je casse cette tirelire.
@
.......
J::
O'l
Le but du sujet est de déterminer le contenu de la tirelire lorsque je la casserai,
·;:::: ainsi que le jour de la semaine correspondant (lundi , mardi, mercredi, jeudi,
>-
0.
0 vendredi, samedi ou dimanche).
u

Partie A (sur table) (30 minutes)


1) Compléter l'écriture de la fonction récursive depot(n) retournant la somme que
j'ai déposée dans la tirelire le n-ième jour. Par exemple, on devra avoir depot(l) = 1
et depot(4) = 4.03.

250
Examen 1 - Remplissage d'une tirelire

Fonction depot(n: type .. ............ ) #type du résultat : .................... .


Début
Si n== ........ .. Alors
1 Retourner( .... ..... ....... ..)
Sinon
1 Retourner (. ......................................)
FinSi
Fin Fonction

2) Écrire une fonction jour(n) retournant le jour de la semaine correspondant au


n-ième dépôt. Par exemple, on devra avoir jour(l)='lundi', jour(2)='mardi' et
jour(12)='vendredi'. Cette fonction devra utiliser la liste suivante:
L=['lundi','mardi','mercredi','jeudi','vendredi','samedi','dimanche']
3) Quel est le rôle de 1'algorithme suivant ?

Variables : k (entier), s, m (réels)


Début
s ~ o
Pour k de 1 à 7 Faire
1 s ~ s + depot(k)
Fin Pour
m ~ s/7
Afficher m
Fin

4) Écrire une fonction contenu(n) qui, à un entier n;:::: 1, renvoie la somme totale en
euro, contenue dans la tirelire le n-ième jour. Par exemple on devra avoir
contenu(3) = 1 + 2.01 + 3.02 = 6.03.
5) Écrire un algorithme affichant le contenu de la tirelire lorsque je la casserai, ainsi
que le jour de la semaine correspondant. Cet algorithme devra faire appel aux fonc-
tions depot(n), jour(n) et contenu(n).

Partie B (sur machine) (30 minutes)


"'O 1) Implémenter l'algorithme de la partie A en corrigeant les éventuelles erreurs.
0
c 2) Exécuter le programme puis noter le jour et le contenu.
:J
0
li)
.,,:<:;
c::
..--t
0
:l Fiche réponse
~
N
"
@
.......
~ 0
J:: :; Nom de l'algorithme .. ................................................................................ .
O'l
·;:::: "'0c:: Rôle : ........................................................................................................... .
>- c::
o. .9
c:: Entrée(s) : --------------
0
u .,,ü
:l Sortie(s) : .....................................................................................................
2
o.
~ Variable(s) globale(s) et type(s) : ... .. ... ....... ..... ........ ............... ........ ... ...... .
"
:;
1-
0 . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions ............................ .
.,,
0
1
Fonction depot(n: type ........... ..) #type du ré sultat : ... ... ........ ..... .
c:
:l Début
0
QJ 1 Si n== .......... Alors

251
Chapitre 11 • L'examen d'algorithmique

1Retourner( ................. )
Sinon
1 Retourner (. .. .. ........ ............... ........ ..... .. ........ )
Fin Fonction

Fonction mois(n : type ............ ) # type du résultat : ....................................... .


Variable(s) locale(s) et type(s) : ......... ........ .. ...... .
Début
L +--- ['janvier' ,'février', 'mars','avril' ,'mai', 'juin', 'juillet','août',
'septembre', 'octobre', 'novembre', 'décembre']

Fin Fonction

Fonction contenu(n: type ....... ..... ) #type du résultat : ...... ....... ............... .
Variable(s) locale(s) et type(s) :

Début

Fin Fonction
.. .. .. . ... . ... . .. .. .. . ... . Partie principale
Début

Fin

Résultats obtenus après exécution : .............................................................


Rôle de l'algorithme de la question 3 : ....................................................... .
"O
0
c
:J
Solutions
0
li)
..--t
0
N Partie A
@
.......
.!::
Rôle de l'algorithme de la question 3 : calcule puis affiche la moyenne des dépôts
O'l
·;:::: effectués la première semaine.
>-
0.
0
u
Nom de l'algorithme : Algorithme_tirelire
Rôle : Détermination du contenu de la tirelire et du jour lorsqu'elle sera cassée
Entrée(s) : -----------------
Sortie(s) : Affichage contenu et jour

Variable(s) globale(s) et type(s) : N (entier)

252
Examen 1 - Remplissage d'une tirelire

. . . . . . . . . . . . . . . . . . . . . . . . . Fonctions ............................ .

Fonction depot(n: entier)# type du résultat : réel


Début
Si n== l Alors
1 Retourner(l) # depot(l)= l
Sinon
1 Retourner (depot(n-1)+1.01) # depot(n)=depot(n-1)+1.01
FinSi
Fin Fonction

Fonction jour(n: entier) #type du résultat : chaîne de caractères


Variable locale : L (liste)
Début
L +---- ['lundi' ,'mardi' ,'mercredi', 'jeudi' ,'vendredi', 'samedi' ,'dimanche']
n +---- (n-1 )%7
Retou rner(L[n])
Fin Fonction

Fonction contenu(n: entier) #type du résultat : réel


Variable locale : s (réel)
Début
s +---- 0 #initialisation : somme s=O
Pour k de l à n Faire
1 s +---- s + depot(n)
Fin Pour
Retourner(s)
Fin Fonction
... .. ... . ......... . ... .. .. Partie principale

Début
N +---- l #initialisation de N au premier jour
TantQue (contenu(N)<= l 500) Faire
1 N +---- N+ l
FinTantQue
Afficher "Je casserai la tirelire un "jour(N)," et son contenu sera de",
contenu(N)," €."
Fin
"'O
0
c
0
:J
Partie B: implémentation en Python et exécution
li)
.,,:<:;
c::
..--t
0
:l ######################### Fo nc t i o n s #############################
~
N
" d ef d epot ( n ) :
@
.......
~ 0 i f n == 1:
J:: :;
ret u r n( 1)
O'l
·;:::: "'0c::
>- c:: e1se :
o. .9
c::
r et urn ( de po t ( n-1 ) +1. 0 1)
0
u ü
.,,
:l

2
o. d ef j o ur ( n) :
~
"
:;
L=[ ' 1 u n d i ' , ' ma r d i ' , ' me r c r e d i ' , ' j e u d i ' , ' v e n d r e d i ' ,
1-
0 ' s a me d i ' , ' d i ma n c h e ' ]
.,,
0
1
n = ( n - 1 ) %7
c:
:l r et ur n( L[n])
0
QJ

253
Chapitre 11 • L'examen d'algorithmique

def contenu( n):


s =0
for k in range(l, n+l):
s=s+depot(k)
return(s)
#####################Partie principale#########################
N=l
while contenu(N)< 1500:
N=Ntl
print("Je casserai la tirelir e un",jour(N),"et son contenu sera
de " , con t en u ( N) , " €. " )

Résultats obtenus après exécution


Je casserai la tirelire un samedi et son contenu sera de 1 554.85 €.

Examen 2 - La suite de Syracuse

Le problème initial
On part d'un nombre entier N supérieur à 1. S'il est pair, on le divise par 2, sinon on
le multiplie par 3 puis on ajoute 1. Puis on recommence avec le résultat et ainsi de
suite ... on s'arrête dès qu'on arrive à 1.
Par exemple : on part du nombre 1O.
• 10 est pair donc on le divise par 2 : on obtient 5.
• 5 est impair donc on le multiplie par 3 puis on ajoute 1 : on obtient 16.
• 16 est pair donc on le divise par 2: on obtient 8.
• 8 est pair donc on le divise par 2 : on obtient 4.
• 4 est pair donc on le divise par 2 : on obtient 2.
• 2 est pair donc on le divise par 2 : on obtient 1.
-0
0
On a obtenu 1 : On arrête.
c
:J En partant du nombre 10, on a donc obtenu successivement 5, 16, 8, 4, 2 puis 1,
0
li) donc six étapes pour arriver à 1 et le plus grand nombre rencontré est 16.
..--t
0
N
Autre exemple : si on part de 7, on obtient successivement 22, 11 , 34, 17, 52, 26,
@ 13, 40, 20, 10, 5, 16, 8, 4, 2 puis 1, donc 16 étapes pour arriver à 1 et le plus grand
.......
J:: nombre rencontré est 52 .
O'l
·;::::
>-
0.
~ ~e but du sujet est ?e déter~iner le plus petit entier de départ N néces;;itant 30
u
0
e:J etapes pour arriver a l en precisant le plus grand nombre alors rencontre.

Partie A (sur table) (30 minutes)


1) Compléter l'écriture de la fonction suivant(n) ci-dessous afin qu'elle renvoie le
nombre suivant n. Par exemple, on aura suivant(10)=5 et suivant(l)= l.

254
Examen 2 - La suite de Syracuse

Fonction suivant (n: type ............ )#type du résultat : .............. .


Début
Si n== ....... Alors
1 Retourner( .... ... )
SinonSi n%2== .. ......... .
1 Retourner( .............. )
Sinon
1 Retourner( .... ....... ... )
FinSi
Fin Fonction
2) Quel est le rôle de l'algorithme suivant?
Variables : n (entier), ch (chaine)
Début
n - l0
ch - " # chaîne vide
TantQue suivant(n)!= l Faire
ch =ch + suivant(n) + '-' # concaténation
1
n - suivant(n)
FinTantQue
Afficher ch+'l'
Fin

3) Écrire une fonction trajet(n) qui retourne la liste de tous les nombres rencontrés
lorsqu'on part de l'entier n. Par exemple on devra avoir trajet(l0)=[5,16,8,4,2,1].
4) Écrire une fonction max(n) qui à un nombre de départ n, retourne le plus grand
nombre alors rencontré.
5) Écrire un algorithme déterminant puis affichant le plus petit entier N nécessitant
30 étapes pour arriver à 1 ainsi que le plus grand nombre alors rencontré.

Partie B (sur machine) (30 minutes)


1) Implémenter l'algorithme de la partie A en corrigeant les éventuelles erreurs.
2) Exécuter le programme puis noter les résultats obtenus.

Fiche réponse
"'O
0
c
:J
0 Nom de l'algorithme .. ...... ... ....... ... .. ... ..... .. ... ..... ... .. .. ........ ... ..... ..... .. ... .. ... ..... .... .
li)
.,,:<:; Rôle : .................................................................................................................
..--t c::
0
:l
~
Entrée(s) : --------------
N
" Sortie(s) : ... ....... ....... ... ..... ....... .. ...... ... ..... .... ... ... ..... ... .... ........ ... ..... ... .... ........ ... .. .
@
.......
~ 0
J:: :; Variable(s) globale(s) et type(s) : .. ... ... .................... ....................... ... .... .
O'l
·;:::: "'0c::
>- c:: . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions .. ... . . ... . .. ... . ......... .. .
o. .9
c::
0
u ü
.,,
:l
Fonction suivant(n: type .. ...... .) # type du résultat : .................. .
2
o.
~
Début
"
:; Si n== ... .... Alors
1 Retourner( ... ... .)
0
1-
.,,
0
1
SinonSi n%2== ... ... ..... .
1 Retourner(. ..... ....... .)
c:
:l
0
QJ Sinon

255
Chapitre 11 • L'examen d'algorithmique

Retourner( ............. .)
1

1
FinSi
Fin Fonction

Fonction trajet(n : type .. ........... ) #type du résultat : ................. .


Variable(s) locale(s) et type(s) : ..... ........ ........ ....... ......... ........ ...... .. ....... ....... .. .
Début

Fin Fonction

Fonction max(n: type ............. ) #type du résultat : .... ......... ...... .


Variable(s) locale(s) et type(s) : .................................................................... .
Début

Fin Fonction
. . .......... . ... . ......... Partie principale

Début

Fin

Résultats obtenus après exécution : .......................................................


Rôle de l'algorithme de la question 2 : ..................................................

Solutions
"'O
0
c
0
:J Partie A
li)
..--t
0
Rôle de l'algorithme de la question 2 : détermine puis affiche les nombres rencon-
N
trés séparés par des tirets, si l'on part de l'entier 10 (c'est-à-dire "5-16-8-4-2-1").
@
.......
J::
O'l
·;::::
>- Nom de l'algorithme : Suite de Syracuse
0.
0 Rôle : Détermine plus petit entier nécessitant 30 étapes et plus grand nb
u rencontré
Entrée(s) : ---------
Sortie(s) : Affichage plus petit entier nécessitant 30 étapes et plus grand nb
rencontré

Variable(s) globale(s) et type(s) : N (entier)

256
· Examen 2 - La suite de Syracuse

Fonctions ............................ .
Fonction suivant(n: entier) #type du résultat : entier
Début
Si n== l Alors
1 Retourner(l)
SinonSi n%2==0 Alors
1 retourner(n//2)
Sinon
J Retourner(3 '"n+ l)
FinSi
Fin Fonction

Fonction trajet(n : entier) #type du résultat : liste


Variable(s) locale(s) et type(s) : L (liste)
Début
L - [] #Initialisation : liste vide
TantQue suivant(n)!= l Faire
Ajouter suivant(n) à L
1
n - suivant(n) # n devient suivant(n)
FinTantQue
Ajouter l à L
Retourner(L)
Fin Fonction

Fonction max(n: entier) # type du résultat : entier


Variable(s) locale(s) et type(s) : k, maxi (entiers)
Début
maxi - 0 #Initialisation : maxi=O
Pour k de 0 à longueur(trajet(n))-1 Faire #parcours des éléments de trajet(n)
Si maxi < trajet(n)[k] Alors
Jmaxi - trajet(n)[k] # maxi devient trajet(n)[k] si maxi < trajet(n)[k]
Fin Si
Retourner(maxi)
Fin Fonction

. .. ....... . . . ... .. ... . ... . Partie principale .. .. ... . . . . . .. . ....... . .


Début
N- 2 # initialisation de N : plus petit nombre de départ
"'O TantQue longueur(trajet(N))!=30 Faire
0
c J N - N+l
:J
0 FinTantQue
li)
.,,:<:; Afficher "Le nombre cherché est ",N,". Le plus grand nombre rencontré
..--t c::
0
:l
~
est", max(N),"."
N
" Fin
@
.......
~ 0
:;
J::
O'l
·;:::: "'0c:: Partie B: implémentation Python et exécution
>- c::
o. .9
c:: ######################### F onct i ons #############################
0
u ü
.,,
:l
d ef s ui va nt ( n ):
2
o.
~
i f n == l:
"
:; r etu rn(I )
1-
0
e 1 i f n %2 = = 0 :
.,,
0
1
r et ur n( n //2)
c:
:l e 1 se :
0
QJ r etu r n(3 * n + l )

257
Chapitre 11 · L'examen d'algorithmique

def t r aje t (n):


L= [ ]
wh i 1 e s u i va n t ( n) ! = l :
L. a pp end( s ui va nt ( n))
n= s ui va n t(n)
L. appe nd ( 1)
return(L)

de f max ( n) :
maxi =0
fo r k in range(O , l e n (t r ajet(n))):
i f ma x i < t r a j e t ( n ) [ k ] :
ma x i = t r a j e t ( n ) [ k ]
return(maxi)

##################### Part i e pr i n e i p a 1 e #########################


N=2
wh i 1 e 1 e n ( t r a j e t ( N) ) ! = 3 0:
N=N+ 1
p r i n t ( " L e n o mb r e c h e r c h é e s t " , N, " . Le p 1 u s g r a n d n o mb r e r e n c o n t r é
e s t " , ma x ( N) , " . " )

Résultats obtenus après exécution


Le nombre cherché est 86. Le plus grand nombre rencontré est 196.

"'O
0
c
:J
0
li)
..--t
0
N
@
.......
J::
O'l
·;::::
>-
0.
0
u

258
"'O
0
c
:J
0
LI)
r-i
0
N
@
......
.s::
Ol
·;::
>-
0.
0
u
"'O
0
c
::J
0
li)
r-t
0
N
@
.....,
.s::
Ol
'i:
>-
0.
0
u
EXERCICES
,
SU PP LEM ENTAl RES

CHAPITRE l
1111] Écrire en base 10 les nombres suivants : (11001) 2, (100100h, (10001011) 2,
(101100110)2 , (AB) 16, (B9) 16, (281) 16 et (52AD) 16 .
1111 Écrire en base 2 les nombres suivants : 27, 80, 140, 213, (2D) 16, (C1) 16,
(3D9) 16 et (28C) 16 .
llf11 Écrire en base 16 les nombres suivants : 136, 539, 1 755, 2 189, (lllOOl)i,
( 1010111) 2, (11001101) 2 et (1000111 l)i.
lljJ On considère l'opération 141 + 93 = 234 écrite en base 10. Écrire en base 2
puis en base 16 cette opération.
1111 Écrire en base 10 les nombres suivants: (0,llh, (10,lh, (11,011) 2, (101,01)2 ,
(6,C) 16, (12,F) 16 , (A0,7) 16 et (A3,B8) 16 .
1111 Écrire en base 2 puis en base 16 les nombres suivants : 7,75 ; 28,5 ; 94,25 ;
100,5625.
111d a) On donne a= (11101) et b = (1001) 2 . Calculer a+ b, a - b, ab.
2
b) Même exercice avec a= (l 1000110)i et b = (1100) 2 .
llfl a) On donne a= (B6) 16 et b = (41) 16. Calculer a+ b, a - b, ab.
"'O
0
b) Même exercice avec a= (2A5) 16 et b = (63) 16 .
c
0
:J

.,,:<:;
111:J a) On donne a = (llOllO)i et b = (llOOO)i. Calculer a + b, a - b, ab et a:b.
li)
..--t c::
:l b) Même exercice avec a= (1101011 lh et b = (1010110) 2.
0 ~
N
@
~
" 111#1 a) On donne a= (3 498)16 et b = (264) 16. Calculer a+ b, a- b, ab et a:b.
....... 0
J:: :; b) Même exercice avec a= (B825) 16 et b = (AD5) 16 .
O'l
·;:::: "'0c::
>-
o.
0 .9
c::
c:: 111:J a) On donne a = (lOOl )i, b = (11100)2 et c = (10101)i. Calculer a + b+c,
u .,, a + be et (a + b)c.
ü
:l

2
o.
~ b) Même exercice avec a= (3DC) 16, b = (82) 16 etc= (2BE) 16 .
"
:;
1-
0
111#1 Dans chaque cas, donner le quotient q et le reste r de la division euclidienne
.,, de a par b, et écrire la division euclidienne en ligne :
0
1

c:
:l
0
QJ a) a = 80 et b = 17 b) a = 514 et b = 73 c) a = 2 541 et b = 87

261
Mathématiques pour l'informatique

lldl] Dans chaque cas, dire si les égalités proposées correspondent à des divisions
euclidiennes. Préciser alors les valeurs du quotient et du reste.
a) 114 = 13 X 8 + 10 b) 283 = 23 X 12 + 7 c) 465 = 19 X 23 + 28
lldl Dans une division euclidienne par 8, quels sont les restes possibles ?
On effectue la division euclidienne d'un entier naturel n par 8. Le quotient est 63.
Quelles sont les valeurs possibles den ?
ll:f;I Le nombre 1/13 vaut 0,076923076923076923 . .. où l'on observe une répéti-
tion périodique de la séquence 076923. Quel est le 1 oooe chiffre après la virgule? le
11 llle?

llŒJ On dispose den données numériques à ranger dans des listes de même taille:
• Si on fait des listes de 7 données, on peut faire q listes et il reste 6 données.
• Si on fait des listes de 11 données, on fait 20 listes de moins mais il reste toujours
6 données.
a) Combien a-t-on de données numériques à classer?
b) Quelle peut être la taille des listes afin qu'il ne reste aucune donnée ?
lltll Soit a et b deux entiers naturels. On sait que la division euclidienne de a par
5 donne pour quotient q et pour reste 3, et que la division euclidienne de b par 7
donne le même quotient et un reste égal à 1. Déterminer les valeurs de a et de b
sachant que a + b = 448.
11@91 Faire la liste des diviseurs de 18, de 26 et de 40.
lldd Chercher tous les couples (a;b) tels que a#- b et a est divisible par b dans la
liste suivante: 9-15-27-36-45-135.
1131 Vrai ou faux ? Justifier en donnant un contre-exemple lorsque c'est faux, et
en faisant une démonstration lorsque c'est vrai.
"'O
0
c
a) Si a est divisible par b et parc, alors a est divisible par b + c.
:J
0 b) Si a+ b est divisible parc et si a est divisible parc, alors b est divisible parc.
li)
..--t
0
N c) Si a divise b, alors a divise b 2.
@
....... d) Si a divise b 2, alors a divise b.
J::
O'l
·;::::
>-
llîf:J Les nombres suivants sont-ils premiers ? Si oui, dire quel est le dernier divi-
0.
0 seur testé, si non, donner un diviseur.
u
109 - 167 - 183 - 287 - 319 - 431 - 527 - 641 - 667 - 961 - 1009
Il® Soit n un entier naturel non multiple de 6.
a) Expliquer pourquoi n est de la forme 6k + 1, 6k + 2, 6k + 3, 6k + 4 ou 6k + 5, avec
k E N.

262
Exercices supplémentaires

b) Montrer que si n = 6k + 2, alors n n'est pas un nombre premier. Dans quels autres
cas n n'est-il pas un nombre premier?
c) En déduire que tout nombre premier est de la forme 6k + 1 ou 6k + 5 , avec k E ru.
d) Inversement, tout entier naturel de la forme 6k + 1 ou 6k + 5 est-il un nombre
premier ?
1161] Pour tout n entier naturel, on pose An= n 2 + 7.
a) Montrer que sin est impair, alors An n' est pas un nombre premier.
b) Déterminer le plus petit entier naturel n pair tel que An ne soit pas un nombre
prellller.
lltjl On se propose de chercher s'il existe des nombres premiers de la forme n3 - 1,
pour n entier naturel supérieur ou égal à 2, et si possible, d'en faire la liste. On note
An le nombre n 3 - 1.
a) Tester si An est premier pour n valant 2, 3, 4, 5 puis 6.
b) Développer (n - l)(n2 + n + 1). En déduire que, à part pour n = 2, An n'est jamais
premier.
lfi;a Écrire la décomposition en produit de facteurs premiers des nombres suivants:
a) 240 b) 450 c) 810 d) 980
lfiJ Écrire la décomposition en produit de facteurs premiers des nombres suivants:
a) 1 134 b) 3 575 c) 2 057 d) 4 123
lftl Écrire la liste des diviseurs des nombres suivants en utilisant leurs décompo-
sitions en produit de facteurs premiers :
a) 54 b) 156 c) 324 d) 1 089
lfi1 Écrire la liste des diviseurs des nombres suivants en utilisant leurs décompo-
sitions en produit de facteurs premiers :
a)1617 b)5915 c)3127 d)7889
"'O
0
llHH Écrire la décomposition en produit de facteurs premiers des nombres a = 1
c
:J 100 et b = 1 750. En déduire la décomposition de ab et de a2 .
0
.,,:<:;
li)
..--t
0
c::
:l
lfi4 On donne les nombres a= 34 x
11 x 13 2 et b = 33 x 13 2 .
~
N
" a) Déterminer la décomposition en produit de facteurs premiers de ab.
@
.......
~
:; b) Quel est le quotient de a par b ?
0
J::
O'l
·;:::: "'0c::
>-
o.
c::
c::
lfi:J Décomposer les nombres a et ben produits de facteurs premiers et détermi-
0 .9
u .,, ner leur PGCD dans les cas suivants :
ü
:l

2
o.
~
a) a = 52 et b = 117 b) a= 9 900 et b = 9 075
"
:;
1-
0 lfil Décomposer les nombres a et ben produits de facteurs premiers et détermi-
.,, ner leur PGCD dans les cas suivants :
0
1

c:
:l
0
QJ a) a = 949 et b = 730 b) a = 5 760 et b = 7 200

263
Mathématiques pour l'informatique

ll:lt] En utilisant la règle PGCD(a;b) = PGCD(b;r) où r est le reste de la division


euclidienne de a par b, déterminer le PGCD des nombres a et b dans les cas suivants:
a) a= 300 et b = 228 b) a= 4 774 et b = 2 618
11:11 En utilisant l'algorithme d ' Euclide, chercher PGCD(a ;b) dans les cas
suivants: a) a= 1 120 et b = 294 b) a= 3 300 et b = 792

ll:f;,J Vrai ou Faux ?


93 = 5[8] 78 = 4[12] 101 = 76[5] 115 = 63[26]
1 000 = 100[11] 14 = 104[9] 48 = 132[7] 204 = 88[15]
ll:JJ Compléter les congruences avec un entier naturel, le plus petit possible :
108 = ..... . [5] 141 = ...... [9] 200 = ...... [13] 112 = ...... [4]
11:§1 a et b sont deux entiers naturels tels que a= 4[9] et b = 7[9] et
s = {0;1;2;3;4;5;6;7;8}.
1) Compléter les congruences suivantes, en mettant un nombre de l'ensemble S:
a+ b = ...... [9] a X b := ..... . [9] Sa+ 3b = ...... [9]
a2 = ......[9] b 3 = ...... [9] a 2b 3 = ...... [9]
2) Donner un nombre a et un nombre b, supérieurs à 50, tels que a= 4[9] et b = 7[9].
11:191 Soit x un entier naturel tel que x = 4[7].
a) Compléter les congruences suivantes en mettant un nombre de l'ensemble
s = {0;1;2;3;4;5 ;6} .
x 2 = ....... [7] x 3 = ....... [7] x 4 = ....... [7] x5 = ....... [7] x 6 = ....... [7]
b) Expliquer pourquoi 3 000 = 4[7].
c) Montrer que 3 000 1515 = (3 000 6) 252 x 3 000 3.
-0
0
c d) En utilisant les résultats de la question a, déterminer le reste de la division eucli-
:J
0 dienne de 3000 1515 par 7.
li)
..--t
0
N Il:© On considère l'équation 2x = 9[21].
@
....... a) Déterminer un nombre entier a tel que 2 x a = 1[21] .
J::
O'l
·;:::: b) Résoudre l'équation.
>-
0.
0 c) Citer toutes les solutions de l'équation qui sont comprises entre 1OO et 200.
u
ll:fi On considère 1'équation Sx + 6 = 0[26].
a) Vérifier que 5 x 21=1[26].
b) Résoudre l'équation.
c) Citer toutes les solutions de l'équation qui sont comprises entre 200 et 300.

264
Exercices supplémentaires

ll:l:J À chaque lettre de 1' alphabet, on associe un nombre entier entre 0 et 25 selon
la table de correspondance proposée par le tableau 1.16.

Tableau 1.16

Lettre A B c D E F G H 1 J K L M

Nombre 0 l 2 3 4 5 6 7 8 9 10 ll l2

Lettre N 0 p Q R s T u V w X y z
Nombre l3 14 l5 16 l7 l8 19 20 21 22 23 24 25

Pour crypter (ou coder) un message, on crypte les lettres une par une selon le
procédé suivant :
• On repère le nombre x associé à la lettre, dans le tableau 1.16.
• On calcule le nombre ax + b (les nombres a et b sont les clés de cryptage).
• On détermine le reste y de la division euclidienne de ax + b par 26.
• On repère la lettre associée au nombre y dans le tableau: c'est la lettre cryptée.
• Ainsi, on a y = ax + b[26] . Ce type de cryptage est un codage affine.
Par exemple, pour crypter la lettre F avec les clés a = 9 et b = 2 :
• Le nombre x associé à la lettre Fest 5.
• On calcule 9 x 5 + 2, ce qui donne 4 7.
• On détermine le reste de la division euclidienne de 47 par 26 : on trouve 21.
• On repère la lettre associée à 21 dans le tableau 1.16 : c ' est V.
Ainsi, avec les clés a = 9 et b = 2, Fest cryptée par V.
Partie A- Cryptage d'un mot avec les clés a= 9 et b = 2
a) Déterminer quelle est la lettre qui crypte la lettre S en détaillant toutes les étapes
du processus de cryptage.

"'O
b) Crypter l'expression « BTS SIO ».
0
c
0
:J Partie B - Décryptage avec les clés a = 9 et b = 2
.,,:<:;
li)
..--t c::
:l
a) Trouver l'entier c compris entre 0 et 25 tel que 9 x c = 1 [26].
0
b) Montrer que y = 9x + 2[26] => x = 3y + 20[26].
~
N
"
@
.......
~ 0
J:: :; c) Décrypter le mot « UZKHR Y ».
O'l
·;:::: "'0c::
>-
o.
c::
c:: Partie C - Étude d ' autres clés de cryptage
0 .9
u ü
.,, a) Que pensez-vous d'un cryptage utilisant les clés a= 1 et b = 0 ?
:l

2
o.
~ b) On prend maintenant les clés a = 4 et b = O.
"
:;
1-
0
Comment est cryptée la lettre E ? la lettre R ? Que pensez-vous de ce cryptage ?
.,,1
0
c:
:l
c) Pour qu' un cryptage affine soit considéré comme acceptable, il faut qu 'il soit
0
QJ bijectif.

265
Mathématiques pour l'informatique

Il est possible de prouver que des bonnes clés de cryptage sont deux entiers naturels
inférieurs ou égaux à 25 avec la clé a qui est un nombre premier avec 26.
Faire la décomposition de 26 en produit de facteurs premiers. En déduire la liste des
valeurs possibles de a.
Combien peut-on trouver de couples (a;b) permettant un bon cryptage?
ll:pJ Tous les codes qui substituent une lettre à une autre lettre peuvent facilement
être déchiffrés par une analyse fréquentielle. Pour éviter cela et rendre le code plus
sur, on peut coder les mots par blocs de deux lettres. À chaque bloc de deux lettres,
appelé bigramme, on associe un entier entre 0 et 675 à l'aide du tableau 1.17.
La première lettre du bigramme est écrite dans la première ligne, la deuxième dans
la première colonne.

Tableau 1.1 7

A B c D E F ...
A 0 1 2 3 4 5

B 26 27 28 29 30 31

c 52 53 54 55 56 57

...
Par exemple, le bigramme BC correspond à 53 et CB correspond à 28.
a) À quel entier correspond le bigramme DF ? le bigramme KG ? le bigramme SP ?
b) Quel bigramme correspond à 440? à 115 ? à 307?
c) Des clés a et b étant données, on utilise la fonction de codage y = ax + b[676],
dans laquelle x est le nombre correspondant au bigramme à coder, y étant la valeur
-0
correspondant au bigramme codé.
0
c
:J Dans cet exercice, on prendra les clés a = 21 et b = 8 et, par conséquent, la fonction
0
li) de codage y= 2lx + 8[676]. Coder le mot BIGRAMME.
..--t
0
N d) Vérifier que 21 x 161 = 1[676]. En déduire la fonction de décodage. Décoder le
@
....... message BOUUQY.
J::
O'l
·;::::
>-
0.
lllUll Soit S l'ensemble des entiers naturels inférieurs ou égaux à 10.
0
u
a) Déterminer les entiers naturels a et b appartenant à S tels que \ 2a + b = O[ll].
7a+b=4[11]

b)M eme question avec 1e systeme


A • , 13a+2b=9[11] .
Sa+ b = 6[11]

266
Exercices supplémentaires

CHAPITRE 2
f..IJJ Calculer les quatre premiers termes de la suite (u,.) définie pour tout entier
n ~ 0 par un= n + 1 - 1/(n + 1).

f..111 Calculer les trois premiers termes des suites (vn) définies par v 1 = 4 et
Vn+l = Vn2 + n.
f§1 Soit (un) la suite définie par u0 = 3 et pour tout entier n ~ 0 par un+ 1 = -3un + 8.
Pour tout n E ru, on pose Sn= Uo + U1 + ... +un"
On souhaite déterminer, à l'aide d'un tableur, quelques valeurs particulières de un et
de S11 • On adopte pour cela la disposition la disposition de la fig. 2.13.

A B c
1 n Un Sn
2 0
3 1
4 2
5 3
6 4

Figure 2.1 3

a) Que doit-on saisir dans la cellule B2?


b) Quelle formule doit-on saisir dans la cellule B3, avant de l'étirer vers le bas?
c) Que peut-on saisir dans la cellule C2 ?
d) Quelle formule peut-on saisir dans la cellule C3, avant de l'étirer vers le bas?
e) Déterminer, à l'aide du tableur, les valeurs de u 15 et S 10 .
f..llIH Soient(un), (vn) et (wn) les suites définies pour tout entier naturel n par
"'O
0 un= (3n+2)/2, v11 = 2/lOn et wn = --4n. Pour chacune de ces suites, dire si elle est arith-
c
0
::J ..; métique, géométrique ou ni arithmétique et ni géométrique.
'03
lJ)
...... ""'c:
0
N
::l
~
f..lfi Dans chacun des cas suivants, déterminer uk .
"
@ ] a) (un) est une suite arithmétique de raison 3 et on a u0 = 2 et k = 8.
..._, Ci
.s:: :;
Ol
'i:
"'c:0 b) (u,) est une suite arithmétique et on a u0 = -5, u2 = -17 et k = 7.
>-
o.
c:
c:

u
0 .9
ü::l f..ll:J Dans chacun des cas suivants, déterminer u k .
""'2P.
!.:!
a) (u11) est une suite géométrique de raison 4 et on a u0 = 2,5 et k = 5.
2l
::l
0
1-
b) (un) est une suite géométrique de raison 0,2 et on a u2 = 8 et k = 6.
1

""'c:0
::l
f..IPl Le nombre 22 peut-il être le premier terme d'une suite arithmétique de raison
0
© --4 dont un des termes est 50 ?

267
Mathématiques pour l'informatique

f..IJll] On considère une suite (un) telle que u0 = 2, u 1 = 8 et u2 = 32. Donner la valeur
de vérité des propositions suivantes (justifier) :
• P = « Il est possible que la suite (un) soit arithmétique »
• Q = « Il est possible que la suite (un) soit géométrique »
• S = « La suite (un) est obligatoirement arithmétique »
• T = « La suite (un) est obligatoirement géométrique »
f..IJll Soit (un) la suite arithmétique de premier terme u0 = -20 et de raison 2.
Pour tout entier naturel n, on pose Sn= u0 + u 1 + ... +un.
a) Déterminer u 1 et S 1•
b) Donner l'expression de un en fonction de n.
c) Existe-il un entier naturel n tel que un= 11 ?
d) Quel est le plus petit entier n tel que un> 555,5 ?
e) Calculer S30 .
f) Déterminer, à l'aide d'un tableur, le plus petit entier n tel que Sn ~ 1 200.
f..IJt"I Soit (un) la suite géométrique de premier terme u 0 = 4 et de raison 0,4.
a) Déterminer u 1.
b) Donner l'expression de un en fonction de n.
c) Déterminer l'entier naturel n tel que un= 0,1024.
d) Calculer u0 + u 1 + ... + u7 (arrondir à 10- 3 près).
f..IJIJ Calculer les sommes suivantes :
. s = 1 + 3 + 32 + ... + 3 15
• T = 10 + 20 + 30 + ... + 410 + 420
f..IJll Calculer les sommes suivantes :
"'O
• u = 1 + 3 + 5 + 7 + ... + 149 + 151
0
c
:J
• V = v0 + v1 + v2 + ... + v12 où (vn) est une suite géométrique de raison 2,5 telle que
0 V2 = 0,25.
li)
..--t
0
N f..IJl91 Soit (wn) la suite définie par w 0 = 500 et pour tout entier naturel n par
@
....... Wn+I - wn+ 52 =O .
J::
O'l
·;:::: a) Déterminer w 1 et w 2 .
>-
0.
u
0 b) Quelle est la nature de la suite (w n) ?
c) En déduire l'expression de wn en fonction den.
d) Calculer w11 •
e) Quel est le plus petit entier naturel n tel que wn < 0 ?
f) Calculer w 0 + w 1 + w2 + ... + w 16 .

268
Exercices supplémentaires

f..llkd Soit (un) la suite définie par u 0 = 4 et pour tout entier naturel n par un+l = un/2.
1) a) Quelle est la nature de cette suite ?
b) En déduire l'expression de un en fonction de n.
2) Pour tout n E ru, on pose Sn= Uo + U1 + ... +un.
a) Déterminer une expression simplifiée de Sn en fonction de n.
b) En déduire l'arrondi à 10- 3 près de S8 .
c) Vrai ou faux? (Justifier): « il existe un entier naturel n tel que Sn 2:: 10 » .
f..llf~ Donner le sens de variations de chacune des suites (un), (vn) et (wn) définies
pour tout n E ru par: Un= -10 + l5n , Vn = 3n f 300, Wn = Ü,98 - n + 2.
f..llf:J Soit (un) la suite définie par un= un= 5 x 2n.
a) Déterminer le plus petit entier naturel n tel que un> 10 000.
b) Écrire un algorithme permettant de déterminer le plus petit entier n tel que
un> 1020.

f..111'#] Soit (un) la suite définie par un= O,sn-4.


a) Déterminer le plus petit entier naturel n tel que un< 0,01.
b) Écrire un algorithme permettant de déterminer le plus petit entier n tel que
un< 10- 8.

f 41•1 Déterminer les limites sui vantes :


A= lim 0,99 11 B = lim (1000 X 0,07") C = lim (-0,01 x lün)
n -H-oo n-?+oo n-?+oo

4n 11
D= lim -
11
-
n-7-too 2 X 12
E = lim (2-F3)
11-?+oo

f411 Déterminer les limites suivantes:


"'O
0
c A= lim (7-0,25") B = lim (1+ 0, 97") C = lim (3+ 11 x0,8 11 )
:J 11-?+oo 11-?+oo 11-?+oo
0
li)
.,,:<:;
c::

(14-2)
..--t :l

E = lim (8 + 4-3n)
0
N
~

" D = lim
911
@
~
11-?+oo 1!-?+oo

....... 0
J:: :;
O'l
·;::::
>-
"'0c::
c::
f4f-'I Deux
entreprises de services informatiques Siol et Sio2, viennent d'être
o.
0 .9
c::créées début 2014. Les chiffres d'affaires obtenus en 2014 par Siol et Sio2 sont
u .,,ü respectivement 80 000 € et 90 000 €. Les gérants de ces entreprises prévoient des
:l

2
o.
~ hausses constantes de leurs chiffres d'affaires :+ 5 % par an pour Siol et+ 4 % par
"
:;
1-
0 an pour Sio2. On note respectivement un et vn les chiffres d 'affaires, en euro, de
.,, l' année 2014 + n des entreprises Sio 1 et Sio2 .
0
1

c:
:l
0
QJ 1) Déterminer u1 et v1 puis interpréter les résultats obtenus.

269
Mathématiques pour l'informatique

2) a) Montrer que les suites (un) et (vn) sont géométriques et déterminer leurs raisons.
b) En déduire l'expression de un en fonction den et celle de vn en fonction den.
c) Quels sont les chiffres d ' affaires prévisibles de ces entreprises en 2020 ? (arrondir
à l'euro près)
3) Pour tout entier naturel n, on pose wn = un/ vn.
a) Vérifier que w 0 < 1.
b) Déterminer le plus petit entier naturel n tel que w n > 1.
c) À partir de quelle année le chiffre d ' affaires de Siol dépassera-t-il celui de Sio2?
f4jJ Soit (un) la suite définie par u0 = 3 et pour tout entier naturel n par
un+1 = 0 ,5un - 2.
1) a) Déterminer u 1 et u2 .
b) Montrer que (un) n' est ni arithmétique, ni géométrique.
c) À partir d'une table de valeur éditée sur une calculatrice graphique, émettre une
conjecture sur la limite de la suite (un) .
2) Soit (vn) la suite définie pour tout entier naturel n par vn =un+ 4.
a) Calculer les trois premiers termes de la suite (vn).
b) Montrer que (vn) est une suite géométrique de raison 0,5.
c) Exprimer vn en fonction den. En déduire l'expression de un en fonction den.
d) Déterminer lim u, 1

11 - H =

f4jl Un ordinateur est infecté par un virus. Le nombre un de fichiers infectés après
n allumages vérifie u 1 = 1 et un+l = 3un + 1.
1) a) Quel est le nombre de fichiers infectés après trois allumages ?
b) Écrire un premier algorithme donnant le nombre de fichiers infectés après 20 allu-
mages. Implémenter cet algorithme sur calculatrice ou en Python.
"'O
0
c c) Écrire un second algorithme déterminant à partir de combien d' allumages le
:J
0 nombre de fichiers infectés dépassera 50 000. Implémenter cet algorithme sur calcu-
li)
..--t
0
latrice ou en Python .
N
@ 2) Pour tout entier naturel n ~ 1, on pose vn =un+ 0,5.
.......
J::
O'l
a) Calculer v1, v2 et v3 . Quelle conjecture peut-on émettre sur la nature de la suite (vn) ?
·;::::
>-
0.
b) Montrer que pour tout entier n ~ 1, on a vn+ I = 3vw
0
u c) En déduire l'expression de vn puis de un en fonction den.
d) Retrouver à l'aide de l'expression de un le résultat de la question le).
f411 La loi de Moore affirme que depuis 1975, le nombre de transistors par micro-
processeur proposés à la vente au grand public, double tous dix-huit mois. En 1975,
un tel microprocesseur comportait 9 000 transistors.

270
Exercices supplémentaires

1) Justifier que le nombre de transistors des microprocesseurs quadruple tous les


trois ans.
2) On note un le nombre de transistors (en milliers) d'un microprocesseur fabriqué
lors de l'année 1975 + 4n.
a) Justifier que u0 = 9.
b) Calculer u 1 et u2 puis interpréter ces nombres.
c) Montrer que (un) est une suite géométrique, puis donner l'expression de un en
fonction de n.
d) Déterminer le nombre de transistors dans un microprocesseur fabriqué en 1991.
e) En imaginant que cette évolution se poursuive ainsi, à partir de quelle année le
nombre de transistors par microprocesseur devrait-il dépasser les 150 milliards ?
f41d Le but de cet exercice est d'étudier la dépréciation d'un modèle d'ordinateur
en fonction du temps écoulé, exprimé en trimestre, depuis sa mise sur le marché.
L'entreprise conceptrice de ce modèle souhaite déterminer l'évolution trimestrielle
du prix de vente de cet ordinateur, exprimé en euro. On appelle n le nombre de
trimestres écoulés depuis la mise sur le marché de ce produit. Ainsi, à la mise sur le
marché, on a n = O. Deux modélisations ont été retenues par cette entreprise :
A) Première modélisation : le prix de vente initial à la mise sur le marché de ce
modèle d'ordinateur est de 795 €. Chaque trimestre, le prix de vente de ce modèle
diminue de 10 % en raison des progrès technologiques.
On note (u 11 ) la suite telle que, pour tout entier naturel n, un désigne le prix de vente,
exprimé en euro, de ce modèle d'ordinateur, n trimestres après sa mise sur le
marché.
1. Donner u0 puis calculer u 1 et u2 .
2. Déterminer la nature de la suite (un) et préciser sa raison.
3. En déduire que, pour tout entier n, on a un= 795 x 0,911 •
4. À partir de combien de trimestres le prix de vente d'un tel ordinateur devient-il
"'O strictement inférieur à 300 € ?
0
c
0
:J B) Deuxième modélisation : le prix de vente, exprimé en euro, de ce modèle d'ordi-
li)
.,,:<:; nateur au bout de n trimestres écoulés depuis sa mise sur le marché, noté vn est
..--t c::
:l
0
N
~
donné par Vn = 525 X 3-o.25n + 270.
"
@
.......
~ 1. Vérifier que le prix de vente de ce modèle d'ordinateur à sa mise sur le marché est
0
J:: :;
O'l
·;:::: "'0c:: de 795 €.
>- c::
o. c::
.9
2. Déterminer le nombre minimal de trimestres écoulés depuis sa mise sur le
0
u ü
.,,
:l marché à partir duquel le prix de vente de ce modèle d'ordinateur deviendra infé-
2
o.
~ rieur ou égal à 300 €.
"
:;
0
1- C) Comparaison des deux modèles :
.,,
1
0
c:
:l
1. Déterminer les prix de vente, dans chacune des modélisations, cinq trimestres
0
QJ après la mise sur le marché du modèle d'ordinateur.

271
Mathématiques pour l'informatique

2. À long terme, laquelle des deux modélisations donne le prix de vente le plus bas?
Justifier la réponse.

CHAPITRE 3
llf:J On considère les matrices A= (a.l, j ) , B = (bl.., j ) et C = (c.. ) , carrées d ' ordre
l ,j

. . =i2
4, définies par al,j , bl., j. = i + 1· et cl., j . = Min(i; 1'). Écrire ces matrices sous la
forme de tableaux de nombres.
5 -1
llJ:l On considère la matrice A =
2 -1
a) Déterminer A+2A et -lOA.
b) Est-il possible de trouver un nombre réel x tel que xA + / 2 = 0 ? (Justifier)

3 2
11111 Soit A la matrice définie par A= . Déterminer le plus petit entier
5 10
naturel n tel que tous les éléments de n x A soient strictement supérieurs à 103 .
3 1 2 0 2 1
1111 Soient A= et B =
1 3 -1 -2 1 3
a) Calculer A - B et 2A - SB.
b) Déterminer les deux matrices Cet D telles que C-D = 3B et C+D=2A.
Qt.:.J Une entreprise emploie trois catégories de salariés (ouvriers, commerciaux et
administratifs) dans deux annexes (annexe 1 et annexe 2). On associe la matrice A
suivante à la répartition de ces salariés :
56 3 7
A=
-0
25 2 5
0
c
:J
Par exemple, on compte trois commerciaux dans l'annexe 1.
0
li) a) Donner, pour chaque annexe le nombre de salariés de chaque catégorie.
..--t
0
N b) On peut obtenir, à partir de deux matrices B et C, et du produit B x A x C , le nombre
@
....... total de salariés dans l'ensemble des deux annexes. De quelles matrices s' agit-il?
J::
O'l
·;:::
>-
0.
llFJ La matrice A suivante donne les notes de trois étudiants que l'on appellera
0 El, E2 et E3 (les notes de Ei sont sur la i ème ligne) dans quatre disciplines : mathéma-
u
tiques, algorithmique, français et droit (dans cet ordre) :
8 10 14 12
A = 12 6 12 18
14 11 10 10

272
Exercices supplémentaires

Par exemple, El a 8 en mathématiques et 14 en français.


a) Quelles sont les notes de E2 dans chacune des disciplines?
Les coefficients de ces disciplines sont : 2 pour les mathématiques, 1 pour l' algorith-
mique, 3 pour le français et 5 pour le droit.
b) On peut obtenir, à partir d'une matrice A, et du produit A x B, la moyenne de
chaque étudiant. De quelle matrice s'agit-il? Effectuer le calcul et donner la matrice
C obtenue.
c) Donner la matrice M telle que Mx C représente la moyenne de ce groupe de trois
étudiants.

2 0 2 0 -2 5
Qll On considère les matrices A= B= et C=
3 -1 ' -1 2 1 3

Faire tous les produits possibles de deux matrices.

2 1 1 2 1
4
11191 On considère les matrices A= ,B= -3 1 0 et C = 1 -2
-2
0 7 2 3 0

Faire tous les produits possibles de deux matrices.


llld Dans cet exercice, A , B et C désignent des matrices carrées d'ordre 2. Vrai
ou faux ? (Justifier)
a) V A, V B , A x B =B x A d)::JA,A 2 =12

b) ::JA, ::JB, A x B=BxA e) V A , ::J B, A x B = 12


c) ::JA, A2 =0

1 0 1
3 1
Qf~ On considère les matrices A =
"'O
0
c
et B = 0 1 2
:J -1 6
0
.,,:<:; 1 3 -1
li)
..--t c::
:l
0
N
~

" a) Calculer A 2 puis A3 •


@
.......
~ b) Calculer B 2 puis B3 •
0
J:: :;
O'l
·;:::: "'0c::
>- c::
o.
0 .9
c:: 0 0 0
u ü
.,,
:l

2
o.
llf:J Soit B = 1 0 0
~
"
:;
2 3 0
0
1-
.,, a) Calculer B 2 et B 3 •
0
1

c:
:l
0
QJ b) Montrer que B 4 = O (matrice nulle) puis que, pour tout n ~ 3, B 11 = O.

273
Mathématiques pour l'informatique

QPl Une entreprise emploie trois catégories de personnels A, B et C répartis en


trois services. En voici la répartition :

Tableau 3.4

A B c
Service 1 4 6 5

Service 2 3 8 5

Service 3 l 3 10

Dans cette entreprise, les salaires mensuels nets et les primes de fin d' années sont
données par le tableau suivant :

A B c
Salaire mensuel (en milliers d'euros) 2,5 2 l ,6

Prime (en milliers d'euros) l l 0,8

1
0 0
4 6 5 2,5 1 15
1
On considère les matrices A = 3 8 5 , B= 2 1 et J = 0 0
16
1 3 10 1,6 0,8
1
0 0 -
14
a) Calculer A x B et interpréter ce que représentent les colonnes de la matrice obte-
-0
nue.