+ qu'un profMon espace

Première Spé Maths

Logique, ensembles et listes Python

Le programme officiel de maths comporte trois parties transversales, qui servent dans tous les chapitres : « Vocabulaire ensembliste et logique », « Algorithmique et programmation » (avec la notion de liste) et « Automatismes » (traités dans la page qui leur est consacrée). Cette page rassemble les deux premières, avec des exemples courts.

Tu y trouveras des astuces 💡, des pièges ⚠️ et un peu d'humour 😄.

🎯 Comment utiliser cette page

  • Lis chaque partie une fois, puis fais les exercices en cachant les corrections.
  • Retiens surtout les phrases-types : elles reviennent dans les corrections de tous les chapitres.
  • Reviens ici dès qu'un mot te bloque dans un énoncé (« réciproque », « contre-exemple », « par l'absurde »...).

1. Le vocabulaire des ensembles

  • x∈Ax\in A : xx appartient à l'ensemble AA. x∉Ax\notin A : il n'y appartient pas.
  • A⊂BA\subset B : AA est inclus dans BB (tout élément de AA est dans BB).
  • A∩BA\cap B : l'intersection (les éléments communs). A∪BA\cup B : la réunion (les éléments d'au moins un des deux).
  • A‾\overline A ou E∖AE\setminus A : le complémentaire de AA dans l'ensemble de référence EE (ce qui est dans EE mais pas dans AA).
  • ∅\varnothing : l'ensemble vide. A∖BA\setminus B : les éléments de AA qui ne sont pas dans BB.
  • Card(A)\mathrm{Card}(A) : le cardinal de AA, c'est-à-dire son nombre d'éléments (pour un ensemble fini).
  • A×BA\times B : le produit cartésien, l'ensemble des couples (a ; b)(a\,;\,b) avec a∈Aa\in A et b∈Bb\in B.

Les ensembles de nombres.

NotationEnsembleExemples
N\mathbb N entiers naturels 0 ; 1 ; 2 ; …0\,;\,1\,;\,2\,;\,\dots
Z\mathbb Z entiers relatifs −3 ; 0 ; 5-3\,;\,0\,;\,5
D\mathbb D nombres décimaux 0,25 ; −1,50{,}25\,;\,-1{,}5
Q\mathbb Q nombres rationnels (quotients d'entiers) 13 ; −74\dfrac13\,;\,-\dfrac{7}{4}
R\mathbb R nombres réels 2 ; π\sqrt2\,;\,\pi

Ces ensembles sont emboîtés : N⊂Z⊂D⊂Q⊂R\mathbb N\subset\mathbb Z\subset\mathbb D\subset\mathbb Q\subset\mathbb R.

Exemple (intervalles). A=[1 ; 5]A=[1\,;\,5] et B=]3 ; 8]B=]3\,;\,8]. Alors A∩B=]3 ; 5]A\cap B=]3\,;\,5] et A∪B=[1 ; 8]A\cup B=[1\,;\,8].

Exemple (complémentaire). Dans R\mathbb{R}, le complémentaire de ]−∞ ; 2]]-\infty\,;\,2] est ]2 ; +∞[]2\,;\,+\infty[.

Exemple (cardinal). A={2 ; 4 ; 6}A=\{2\,;\,4\,;\,6\} a pour cardinal Card(A)=3\mathrm{Card}(A)=3, et Card(∅)=0\mathrm{Card}(\varnothing)=0.

Exemple (produit cartésien). {1 ; 2}×{a ; b}={(1 ; a) ; (1 ; b) ; (2 ; a) ; (2 ; b)}\{1\,;\,2\}\times\{a\,;\,b\}=\{(1\,;\,a)\,;\,(1\,;\,b)\,;\,(2\,;\,a)\,;\,(2\,;\,b)\} : 2×2=42\times2=4 couples, et Card({1 ; 2}×{a ; b})=4\mathrm{Card}(\{1\,;\,2\}\times\{a\,;\,b\})=4.

⚠️ Pièges :

  • Un élément appartient (∈\in) ; un ensemble est inclus (⊂\subset). On écrit 2∈{1 ; 2}2\in\{1\,;\,2\} et {2}⊂{1 ; 2}\{2\}\subset\{1\,;\,2\}.
  • Le couple (1 ; 2)(1\,;\,2) est ordonné : (1 ; 2)≠(2 ; 1)(1\,;\,2)\neq(2\,;\,1). L'ensemble {1 ; 2}\{1\,;\,2\} ne l'est pas.
  • Un crochet ouvert ne contient pas la borne : ]3 ; 8]]3\,;\,8] ne contient pas 33.

😄 Confondre ∈\in et ⊂\subset, c'est dire « le chat est inclus dans la maison » : on comprend, mais le prof grince.

2. Connecteurs, implication, réciproque, contraposée, équivalence

  • « et » : la proposition « PP et QQ » est vraie quand PP et QQ sont vraies toutes les deux. Elle correspond à l'intersection ∩\cap.
  • « ou » : la proposition « PP ou QQ » est vraie quand l'une au moins est vraie (le « ou » est inclusif : les deux peuvent être vraies). Elle correspond à la réunion ∪\cup.

Exemples. « x⩾−2x\geqslant-2 et x⩽3x\leqslant3 » signifie x∈[−2 ; 3]x\in[-2\,;\,3]. « x<−2x<-2 ou x>3x>3 » signifie x∈]−∞ ; −2[ ∪ ]3 ; +∞[x\in]-\infty\,;\,-2[\ \cup\ ]3\,;\,+\infty[. Pour x=4x=4, la proposition « x>3x>3 ou xx est pair » est vraie, et elle est vraie aussi pour x=6x=6 (les deux sont vraies).

  • Implication P⇒QP\Rightarrow Q : « si PP, alors QQ ». PP est une condition suffisante pour QQ ; QQ est une condition nécessaire pour PP.
  • Réciproque de P⇒QP\Rightarrow Q : Q⇒PQ\Rightarrow P. Elle n'a aucune raison d'être vraie en même temps.
  • Contraposée de P⇒QP\Rightarrow Q : non Q⇒non P\text{non}\,Q\Rightarrow\text{non}\,P. Elle est toujours équivalente à l'implication de départ.
  • Équivalence P  ⟺  QP\iff Q : les deux implications sont vraies (P⇒QP\Rightarrow Q et Q⇒PQ\Rightarrow P). On dit aussi « PP si et seulement si QQ ».

Exemple. « Si x=2x=2, alors x2=4x^2=4 » est vraie. Sa réciproque « si x2=4x^2=4, alors x=2x=2 » est fausse : x=−2x=-2 convient aussi.

Exemple. « Si nn est un multiple de 44, alors nn est pair » est vraie. Sa contraposée « si nn est impair, alors nn n'est pas un multiple de 44 » est vraie aussi.

Utiliser l'équivalence dans un raisonnement. Quand on résout une équation, chaque ligne doit être équivalente à la précédente : on ne perd ni n'ajoute de solution.

3x−5=7  ⟺  3x=12  ⟺  x=43x-5=7\iff3x=12\iff x=4

Attention : élever au carré donne seulement une implication. De x=−1x=-1, on tire x2=1x^2=1, mais x2=1x^2=1 n'entraîne pas x=−1x=-1 : x=1x=1 convient aussi.

Le statut des égalités et des lettres.

  • Une identité est une égalité vraie pour toutes les valeurs de la lettre : (x+1)2=x2+2x+1(x+1)^2=x^2+2x+1 est vraie pour tout réel xx.
  • Une équation est une égalité que l'on cherche à rendre vraie : x2=4x^2=4 n'est vraie que pour x=−2x=-2 et x=2x=2.
  • Une variable prend des valeurs quelconques d'un ensemble (dans f(x)=3x+1f(x)=3x+1, xx est la variable). Une inconnue est la valeur que l'on cherche. Un paramètre est une lettre fixée dans un problème, mais qui peut changer d'un problème à l'autre : dans mx+2=0mx+2=0, xx est l'inconnue et mm un paramètre.

Quantificateurs, en français. On dit « pour tout » et « il existe ». Les symboles ∀\forall et ∃\exists existent, mais ils ne sont pas exigibles : tu peux (et tu dois) écrire en français.

Négation d'une proposition quantifiée. Pour nier une phrase, on change le quantificateur et on nie la propriété :

  • la négation de « pour tout réel xx, x2>xx^2>x » est « il existe un réel xx tel que x2⩽xx^2\leqslant x » ;
  • la négation de « il existe un entier nn tel que n2=2n^2=2 » est « pour tout entier nn, n2≠2n^2\neq2 ».

Quantifications implicites. Dans une phrase conditionnelle, le « pour tout » est souvent caché : « si x>2x>2, alors x2>4x^2>4 » signifie « pour tout réel xx, si x>2x>2 alors x2>4x^2>4 ». Pour la nier, il faut le rétablir : « il existe un réel x>2x>2 tel que x2⩽4x^2\leqslant4 ».

Contre-exemple. Pour réfuter une phrase commençant par « pour tout », un seul exemple suffit. « Tous les nombres premiers sont impairs » est fausse : 22 est premier et pair.

Exemple. « Pour tout réel xx, x2>xx^2>x » est fausse : pour x=12x=\dfrac12, x2=14<12x^2=\dfrac14<\dfrac12.

💡 Astuce. Devant une affirmation « pour tout », teste d'abord 00, 11 et −1-1. Un contre-exemple se cache souvent là.

⚠️ Pièges :

  • Vérifier sur des exemples ne prouve rien : cela ne fait que rendre la phrase plausible.
  • La négation de « tous » n'est pas « aucun » : c'est « au moins un ne vérifie pas ».
  • Ne confonds pas réciproque et contraposée. La contraposée a toujours la même valeur de vérité que l'implication.

😄 « Tous les cygnes que j'ai vus sont blancs » ne prouve pas que tous les cygnes sont blancs. Il suffit d'un cygne noir.

3. Raisonnements : disjonction des cas, contraposée, absurde

La disjonction des cas. On sépare toutes les situations possibles et on traite chacune.

Exemple. Montrer que, pour tout entier nn, n(n+1)n(n+1) est pair.

Si nn est pair, n(n+1)n(n+1) contient le facteur pair nn : le produit est pair.

Si nn est impair, n+1n+1 est pair : le produit est pair.

Dans les deux cas, n(n+1)n(n+1) est pair. □\square

Le raisonnement par contraposée. Pour prouver P⇒QP\Rightarrow Q, on prouve non Q⇒non P\text{non}\,Q\Rightarrow\text{non}\,P.

Exemple. Montrer que si n2n^2 est pair, alors nn est pair.

Contraposée : si nn est impair, alors n2n^2 est impair. Avec n=2k+1n=2k+1 : n2=4k2+4k+1=2(2k2+2k)+1n^2=4k^2+4k+1=2\left(2k^2+2k\right)+1, qui est impair. □\square

Le raisonnement par l'absurde. Pour prouver PP, on suppose non PP et on aboutit à une contradiction.

Exemple. Montrer que 2\sqrt2 est irrationnel.

Supposons 2=pq\sqrt2=\dfrac pq avec pp et qq entiers, la fraction étant irréductible.

Alors p2=2q2p^2=2q^2, donc p2p^2 est pair, donc pp est pair (contraposée ci-dessus) : p=2mp=2m.

Alors 4m2=2q24m^2=2q^2, soit q2=2m2q^2=2m^2, donc qq est pair.

pp et qq sont tous les deux pairs : la fraction n'est pas irréductible. C'est absurde. Donc 2\sqrt2 est irrationnel. □\square

💡 Astuce. Dans un énoncé, les mots « montrer qu'il n'existe pas » ou « montrer que... est impossible » appellent presque toujours un raisonnement par l'absurde.

4. Notion de liste (algorithmique et programmation)

En Première, la seule notion nouvelle est celle de liste. Le reste consolide ce que tu connais : variables, instructions conditionnelles, boucles, fonctions.

  • Affectation. En langage naturel, on écrit x←3x\leftarrow3 (« xx prend la valeur 33 ») et n←n+1n\leftarrow n+1 (« nn prend la valeur n+1n+1 »). En Python : x = 3 et n = n + 1.
  • Types de variables. Un entier (int), un nombre à virgule (float), un texte (str), un booléen (bool, True ou False), une liste (list). 3 et 3.0 n'ont pas le même type, et type(x) donne le type de x.
  • Programmation modulaire. On découpe une tâche en fonctions simples, que l'on réutilise : une fonction def reçoit des arguments et renvoie un résultat avec return.
def est_pair(n):
    return n % 2 == 0

print(est_pair(6), est_pair(7))   # affiche True False

Une liste range plusieurs valeurs entre crochets. Les éléments sont numérotés à partir de 0.

L = [3, 1, 4, 1, 5]
print(L[0])      # affiche 3 (premier élément)
print(L[-1])     # affiche 5 (dernier élément)
print(len(L))    # affiche 5 (nombre d'éléments)
L[1] = 7         # modifie le deuxième élément
print(L)         # affiche [3, 7, 4, 1, 5]

Générer une liste : en extension, par ajouts successifs, en compréhension.

A = [2, 4, 6]            # en extension

B = []                    # par ajouts successifs
for k in range(1, 4):
    B.append(2 * k)       # B vaut [2, 4, 6]

C = [2 * k for k in range(1, 4)]   # en compréhension : [2, 4, 6]

Ajouter, supprimer, extraire.

L = [3, 1, 4]
L.append(9)      # ajoute à la fin : [3, 1, 4, 9]
L.remove(1)      # supprime la première valeur 1 : [3, 4, 9]
L.pop(0)         # supprime l'élément d'indice 0 : [4, 9]
L.insert(1, 8)   # insère 8 à l'indice 1 : [4, 8, 9]
print(L[0:2])    # affiche [4, 8] (indices 0 et 1, pas le 2)
print(sum(L), max(L), min(L))   # affiche 21 9 4

Parcourir une liste. On peut prendre les éléments un par un (itérer sur les éléments), ou passer par les indices.

L = [3, 1, 4]
for x in L:
    print(x)             # affiche 3, puis 1, puis 4

for i in range(len(L)):
    print(i, L[i])       # affiche 0 3, puis 1 1, puis 2 4

Liste en compréhension et ensemble. Une liste en compréhension se lit comme un ensemble défini par une condition. La liste [k for k in range(1, 11) if k % 3 == 0] correspond à l'ensemble {k∈N ∣ 1⩽k⩽10 et k multiple de 3}={3 ; 6 ; 9}\{k\in\mathbb N\ |\ 1\leqslant k\leqslant10\ \text{et}\ k\ \text{multiple de}\ 3\}=\{3\,;\,6\,;\,9\}.

carres = [k ** 2 for k in range(1, 6)]
print(carres)     # affiche [1, 4, 9, 16, 25]

pairs = [k for k in range(10) if k % 2 == 0]
print(pairs)      # affiche [0, 2, 4, 6, 8]

M = [k for k in range(1, 31) if k % 3 == 0 and k % 5 == 0]
print(M, len(M))  # affiche [15, 30] 2   (condition avec et)

La condition d'une liste en compréhension utilise les connecteurs de la partie 2 : and pour « et », or pour « ou » (inclusif), not pour la négation.

Un exemple de suite. On range les termes de u0=2u_0=2, un+1=3un−1u_{n+1}=3u_n-1 dans une liste :

u = [2]
for n in range(5):
    u.append(3 * u[-1] - 1)
print(u)   # affiche [2, 5, 14, 41, 122, 365]

⚠️ Pièges :

  • Le premier indice est 00 : une liste de 55 éléments va de L[0] à L[4].
  • L[0:2] s'arrête avant l'indice 22.
  • range(1, 6) donne 1,2,3,4,51, 2, 3, 4, 5 : le dernier nombre n'est pas atteint.
  • Une liste se modifie en place : L.append(9) ne renvoie rien, il faut écrire L.append(9) et non L = L.append(9).

😄 Compter à partir de 00 est la seule raison pour laquelle un programmeur ne rate pas son bus : il arrive toujours en retard d'un cran.

Histoire des mathématiques. De nombreux textes témoignent d'une préoccupation algorithmique au long de l'Histoire. Quand un texte historique décrit une méthode de calcul, on peut la transformer en algorithme, voire en programme, ou faire l'inverse : ce changement de registre donne du sens au formalisme. Le programme cite par exemple le calcul de la racine carrée chez Héron d'Alexandrie (voir l'exercice 8).

5. Huit exercices

Exercice 1 (★) : intervalles et ensembles

Soient A=[−2 ; 3]A=[-2\,;\,3] et B=]1 ; 6[B=]1\,;\,6[.

1. Déterminer A∩BA\cap B et A∪BA\cup B.

2. Déterminer le complémentaire de AA dans R\mathbb{R}.

✏️ Correction de l'exercice 1

Question 1

A∩BA\cap B : les nombres à la fois dans [−2 ; 3][-2\,;\,3] et dans ]1 ; 6[]1\,;\,6[ : ils sont supérieurs à 11 (strictement) et inférieurs ou égaux à 33.

A∪BA\cup B : de −2-2 (inclus) jusqu'à 66 (exclu), sans trou.

✅ A∩B=]1 ; 3]A\cap B=]1\,;\,3] et A∪B=[−2 ; 6[A\cup B=[-2\,;\,6[.

Question 2

✅ A‾=]−∞ ; −2[ ∪ ]3 ; +∞[\overline A=]-\infty\,;\,-2[\ \cup\ ]3\,;\,+\infty[.


Exercice 2 (★★) : réciproque, contraposée, négation

On considère l'implication « si x>2x>2, alors x2>4x^2>4 ».

1. Énoncer sa réciproque. Est-elle vraie ?

2. Énoncer sa contraposée. Est-elle vraie ?

3. Écrire, en français, la négation de « pour tout réel xx, x2>xx^2>x » puis dire si la phrase de départ est vraie.

✏️ Correction de l'exercice 2

Question 1

Réciproque : « si x2>4x^2>4, alors x>2x>2 ».

✅ Elle est fausse : x=−3x=-3 donne x2=9>4x^2=9>4 mais x=−3<2x=-3<2.

Question 2

Contraposée : « si x2⩽4x^2\leqslant4, alors x⩽2x\leqslant2 ».

✅ Elle est vraie, comme l'implication de départ : si x2⩽4x^2\leqslant4, alors −2⩽x⩽2-2\leqslant x\leqslant2, donc x⩽2x\leqslant2.

Question 3

Négation : « il existe un réel xx tel que x2⩽xx^2\leqslant x ».

✅ Cette négation est vraie (x=12x=\dfrac12 : 14⩽12\dfrac14\leqslant\dfrac12), donc la phrase de départ est fausse.


Exercice 3 (★★) : disjonction de cas et absurde

1. Montrer que, pour tout entier nn, n2+nn^2+n est pair.

2. Montrer par l'absurde qu'il n'existe pas d'entier nn tel que n2+1n^2+1 soit divisible par 44.

✏️ Correction de l'exercice 3

Question 1

n2+n=n(n+1)n^2+n=n(n+1). Si nn est pair, le produit est pair. Si nn est impair, n+1n+1 est pair, donc le produit est pair.

✅ Dans tous les cas, n2+nn^2+n est pair.

Question 2

Supposons qu'il existe nn avec n2+1=4kn^2+1=4k. Si nn est pair, n=2mn=2m et n2+1=4m2+1n^2+1=4m^2+1 est impair : il n'est pas multiple de 44.

Si nn est impair, n=2m+1n=2m+1 et n2+1=4m2+4m+2=4(m2+m)+2n^2+1=4m^2+4m+2=4\left(m^2+m\right)+2 : le reste dans la division par 44 est 22.

✅ Dans les deux cas, on a une contradiction : aucun entier nn n'a un n2+1n^2+1 divisible par 44.


Exercice 4 (★★) : listes et suites

On définit u0=1u_0=1 et un+1=2un+3u_{n+1}=2u_n+3.

1. Écrire un script Python qui range u0,…,u5u_0,\dots,u_5 dans une liste.

2. Quelle liste obtient-on ? En déduire u5u_5.

✏️ Correction de l'exercice 4

Question 1

On part de la liste [1] puis on ajoute 55 termes avec append, chacun calculé à partir du dernier élément u[-1].

u = [1]
for n in range(5):
    u.append(2 * u[-1] + 3)
print(u)

✅ range(5) fait cinq tours : le script range bien u0,…,u5u_0,\dots,u_5.

Question 2

u1=2×1+3=5u_1=2\times1+3=5, u2=13u_2=13, u3=29u_3=29, u4=61u_4=61, u5=125u_5=125.

✅ Le script affiche [1, 5, 13, 29, 61, 125], donc u5=125u_5=125.


Exercice 5 (★) : connecteurs, identités, quantifications implicites

1. Traduire avec « et » ou « ou » : x∈[−2 ; 3]x\in[-2\,;\,3] ; puis x∈]−∞ ; −2[ ∪ ]3 ; +∞[x\in]-\infty\,;\,-2[\ \cup\ ]3\,;\,+\infty[.

2. Les égalités suivantes sont-elles des identités ou des équations ? (a) (x+1)2=x2+2x+1(x+1)^2=x^2+2x+1 ; (b) x2=4x^2=4 ; (c) 2(x+3)=2x+62(x+3)=2x+6.

3. Dans mx+2=0mx+2=0, quel est le rôle de xx ? de mm ? Résoudre cette équation pour m≠0m\neq0.

4. Rétablir la quantification cachée dans « si x>2x>2, alors x2>4x^2>4 », puis écrire la négation de cette phrase. Cette négation est-elle vraie ?

✏️ Correction de l'exercice 5

Question 1

✅ x∈[−2 ; 3]x\in[-2\,;\,3] s'écrit « x⩾−2x\geqslant-2 et x⩽3x\leqslant3 » ; x∈]−∞ ; −2[ ∪ ]3 ; +∞[x\in]-\infty\,;\,-2[\ \cup\ ]3\,;\,+\infty[ s'écrit « x<−2x<-2 ou x>3x>3 ».

Question 2

(a) est vraie pour tout réel xx : c'est une identité. (b) n'est vraie que pour x=−2x=-2 et x=2x=2 : c'est une équation. (c) 2(x+3)=2x+62(x+3)=2x+6 est vraie pour tout xx : c'est une identité.

Question 3

xx est l'inconnue et mm un paramètre. Pour m≠0m\neq0 : mx+2=0  ⟺  mx=−2  ⟺  x=−2mmx+2=0\iff mx=-2\iff x=-\dfrac2m.

✅ La solution est x=−2mx=-\dfrac2m.

Question 4

La phrase signifie « pour tout réel xx, si x>2x>2 alors x2>4x^2>4 ». Sa négation est « il existe un réel x>2x>2 tel que x2⩽4x^2\leqslant4 ».

✅ Cette négation est fausse : si x>2x>2, alors x2>4x^2>4. La phrase de départ est donc vraie.


Exercice 6 (★★) : résoudre par équivalences

1. Résoudre 2x+3=72x+3=7 en écrivant des équivalences.

2. Résoudre (x−1)(x+2)=0(x-1)(x+2)=0 en justifiant chaque équivalence.

3. On considère l'équation x+2=x\sqrt{x+2}=x. Montrer que x+2=x⇒x2=x+2\sqrt{x+2}=x\Rightarrow x^2=x+2, résoudre x2=x+2x^2=x+2, puis conclure : l'implication précédente est-elle une équivalence ?

✏️ Correction de l'exercice 6

Question 1

2x+3=7  ⟺  2x=4  ⟺  x=22x+3=7\iff2x=4\iff x=2

✅ S={2}S=\{2\}.

Question 2

Un produit est nul si et seulement si l'un de ses facteurs est nul :

(x−1)(x+2)=0  ⟺  x−1=0 ou x+2=0  ⟺  x=1 ou x=−2(x-1)(x+2)=0\iff x-1=0\ \text{ou}\ x+2=0\iff x=1\ \text{ou}\ x=-2

✅ S={−2 ; 1}S=\{-2\,;\,1\}.

Question 3

Si x+2=x\sqrt{x+2}=x, en élevant au carré on obtient x+2=x2x+2=x^2 : c'est une implication.

x2=x+2  ⟺  x2−x−2=0  ⟺  (x−2)(x+1)=0  ⟺  x=2x^2=x+2\iff x^2-x-2=0\iff(x-2)(x+1)=0\iff x=2 ou x=−1x=-1.

Vérification : pour x=2x=2, 4=2\sqrt4=2 ✓ ; pour x=−1x=-1, 1=1≠−1\sqrt1=1\neq-1 ✗.

✅ Seule la solution x=2x=2 convient : S={2}S=\{2\}. L'implication n'est pas une équivalence : élever au carré peut ajouter des solutions.


Exercice 7 (★★) : listes, ensembles et cardinaux

On note AA l'ensemble des multiples de 33 compris entre 11 et 3030, et BB celui des multiples de 55 compris entre 11 et 3030.

1. Écrire en Python la liste A en compréhension. Quel est Card(A)\mathrm{Card}(A) ?

2. Déterminer A∩BA\cap B et A∪BA\cup B à la main, puis donner leurs cardinaux.

3. Écrire en compréhension la liste de A∩BA\cap B, puis celle de A∪BA\cup B (avec « ou »).

4. Pour la liste U de A∪BA\cup B, quelles instructions suppriment 15 puis ajoutent 33 à la fin ? Que vaut len(U) ensuite ?

✏️ Correction de l'exercice 7

Question 1

A = [k for k in range(1, 31) if k % 3 == 0]

On obtient [3,6,9,12,15,18,21,24,27,30][3,6,9,12,15,18,21,24,27,30] : 1010 éléments.

✅ Card(A)=10\mathrm{Card}(A)=10.

Question 2

B={5 ;10 ;15 ;20 ;25 ;30}B=\{5\,;10\,;15\,;20\,;25\,;30\} (66 éléments). Les éléments communs sont les multiples de 1515 :

A∩B={15 ;30},A∪B={3 ;5 ;6 ;9 ;10 ;12 ;15 ;18 ;20 ;21 ;24 ;25 ;27 ;30}A\cap B=\{15\,;30\},\qquad A\cup B=\{3\,;5\,;6\,;9\,;10\,;12\,;15\,;18\,;20\,;21\,;24\,;25\,;27\,;30\}

✅ Card(A∩B)=2\mathrm{Card}(A\cap B)=2 et Card(A∪B)=14\mathrm{Card}(A\cup B)=14 (on retrouve 10+6−2=1410+6-2=14).

Question 3

I = [k for k in range(1, 31) if k % 3 == 0 and k % 5 == 0]   # [15, 30]
U = [k for k in range(1, 31) if k % 3 == 0 or k % 5 == 0]    # 14 éléments

Question 4

U.remove(15)
U.append(33)

✅ On enlève un élément puis on en ajoute un : len(U) vaut encore 1414.


Exercice 8 (★★) : un algorithme de calcul de racine carrée

Pour approcher 2\sqrt2, on utilise la méthode attribuée à Héron d'Alexandrie : u0=1u_0=1 et, pour tout nn, un+1=un+2un2u_{n+1}=\dfrac{u_n+\dfrac2{u_n}}2.

1. Écrire cet algorithme en langage naturel, avec le symbole ←\leftarrow, pour calculer u3u_3.

2. Écrire un script Python qui range u0,…,u3u_0,\dots,u_3 dans une liste.

3. Calculer u1u_1, u2u_2, u3u_3 sous forme de fractions. Vérifier que u3u_3 approche 2\sqrt2 à moins de 10−510^{-5}.

✏️ Correction de l'exercice 8

Question 1

  • u←1u\leftarrow1
  • Pour nn allant de 11 à 33 : u←u+2u2u\leftarrow\dfrac{u+\frac2u}2
  • Afficher uu

Question 2

u = [1]
for n in range(3):
    u.append((u[-1] + 2 / u[-1]) / 2)
print(u)

Question 3

u1=1+22=32,u2=32+432=1712,u3=1712+24172=577408u_1=\dfrac{1+2}2=\dfrac32,\quad u_2=\dfrac{\frac32+\frac43}2=\dfrac{17}{12},\quad u_3=\dfrac{\frac{17}{12}+\frac{24}{17}}2=\dfrac{577}{408}

u3≈1,4142157u_3\approx1{,}4142157 et 2≈1,4142136\sqrt2\approx1{,}4142136 : l'écart est d'environ 2×10−62\times10^{-6}.

✅ ∣u3−2∣<10−5|u_3-\sqrt2|<10^{-5} : trois étapes suffisent pour une très bonne approximation.


🎯 À retenir

  • Ensembles : ∈\in pour un élément, ⊂\subset pour un ensemble ; ∩\cap pour « et », ∪\cup pour « ou » (inclusif) ; Card\mathrm{Card} pour le nombre d'éléments.
  • Implication : la contraposée a toujours la même valeur de vérité ; la réciproque non. Une résolution se fait par équivalences.
  • Pour réfuter un « pour tout » : un seul contre-exemple.
  • Pour nier : « pour tout » devient « il existe » (et inversement), et on nie la propriété. Pense aux « pour tout » cachés.
  • Python : indices à partir de 00, append, remove, parcours avec for, liste en compréhension (condition = logique), fonctions avec def.

Un doute sur ce chapitre ? On en parle ensemble, sans engagement.

Réserver un appel découverte