Étape 1Calculer un reste à la main✓
Effectue la division euclidienne de $17$ par $5$ et donne uniquement le reste.
💡 $17 = 5 \times q + r$ avec $0 \leq r < 5$. Trouve $q$ puis $r$.
Solution
$17 = 5 \times 3 + 2$. Le quotient est $3$ et le reste est $\mathbf{2}$.Étape 2Qu'est-ce que « divisible » veut dire ?✓
On dit que $n$ est divisible par $d$ quand la division euclidienne de $n$ par $d$ donne un reste égal à…
Solution
$n$ est divisible par $d$ signifie exactement que $n = d \times q$, donc le reste est $\mathbf{0}$. Par exemple $15$ est divisible par $5$ car $15 = 5 \times 3 + 0$.Étape 3Exercices : divisible ou pas ?✓
Parmi les propositions suivantes, laquelle est vraie ?
Solution
$21 = 7 \times 3 + 0$ → reste $0$ → divisible ✓$17 = 4 \times 4 + 1$ → reste $1$ → pas divisible
$13 = 3 \times 4 + 1$ → reste $1$ → pas divisible
Étape 4L'opérateur
% en Python✓
En Python, l'opérateur
Que vaut
% calcule exactement le reste de la division euclidienne.
17 % 5 → 2 · 21 % 7 → 0 · 13 % 3 → 1
24 % 6 en Python ?
Solution
$24 = 6 \times 4 + 0$. Reste $= 0$, donc24 % 6 vaut 0.Autrement dit : si
n % d == 0, c'est que $n$ est divisible par $d$.Étape 5Compléter la fonction
est_divisible✓
Complète les deux trous de la fonction qui teste si
Trou 1 : l'opérateur de reste — Trou 2 : la valeur à comparer
n est divisible par d.Trou 1 : l'opérateur de reste — Trou 2 : la valeur à comparer
divisibilite.py
def est_divisible(n, d):
if n d == :
return True
else:
return False
if n d == :
return True
else:
return False
Solution
Trou 1 :% (opérateur modulo — le reste)Trou 2 :
0 (divisible = reste nul)Ligne complète :
if n % d == 0:Étape 6Lance ton programme !✓
Clique sur ▶ Lancer pour appeler ta fonction et voir le résultat s'afficher dans le terminal.
Python 3 — terminal
>>> est_divisible(21, 7)
>>> est_divisible(17, 4)
>>> est_divisible(17, 4)
Solution
21 % 7 == 0 → True ✓ (21 est divisible par 7)17 % 4 == 1 ≠ 0 → False ✓ (17 n'est pas divisible par 4)Étape 1Calculer une image à la main✓
Soit $f(x) = 2x^2 - 3x + 1$. Calcule $f(3)$ à la main.
Solution
$f(3) = 2 \times 9 - 3 \times 3 + 1 = 18 - 9 + 1 = \mathbf{10}$.Étape 2Les puissances en Python :
**✓
En Python, on n'écrit pas
À la place, on utilise
Comment écrit-on $x^2$ en Python ?
x^2. Le symbole ^ ne signifie pas « puissance » en Python !À la place, on utilise
**.
3**2 → 9 · 2**10 → 1024 · 5**3 → 125
Solution
En Python, $x^2$ s'écritx**2. Le symbole ^ existe mais fait autre chose (opération binaire).Note :
x*x fonctionne aussi, mais x**2 est plus lisible et généralise à toutes les puissances.Étape 3Écrire
f(x) en Python✓
Complète la fonction Python qui calcule $f(x) = 2x^2 - 3x + 1$.
Trou : la formule mathématique traduite en Python
Trou : la formule mathématique traduite en Python
fonction.py
def f(x):
return
return
Solution
return 2*x**2 - 3*x + 1Attention : en Python, on écrit toujours
2*x (avec le *), pas 2x.Étape 4La racine carrée :
math.sqrt✓
Pour calculer une racine carrée, Python a besoin du module
Que retourne
math. On l'importe une fois en haut du programme.
import mathmath.sqrt(9) → 3.0 · math.sqrt(2) → 1.4142... · math.sqrt(100) → 10.0
math.sqrt(49) ?
Solution
$\sqrt{49} = 7$. Python retourne7.0 (un nombre décimal, même quand le résultat est entier).Étape 5Calculer la distance $AB$ à la main✓
Soient $A(1\,;\,2)$ et $B(4\,;\,6)$. Calcule la distance $AB$ à la main.
💡 $AB = \sqrt{(x_B - x_A)^2 + (y_B - y_A)^2}$
Solution
$AB = \sqrt{(4-1)^2 + (6-2)^2} = \sqrt{9+16} = \sqrt{25} = \mathbf{5}$.Étape 6Compléter la fonction
distance✓
Complète les deux trous de la fonction qui calcule $AB$.
Trou 1 : le module à importer — Trou 2 : la formule sous la racine (avec
Trou 1 : le module à importer — Trou 2 : la formule sous la racine (avec
**)
distance.py
import
def distance(xA, yA, xB, yB):
return math.sqrt()
def distance(xA, yA, xB, yB):
return math.sqrt()
Solution
Trou 1 :mathTrou 2 :
(xB-xA)**2 + (yB-yA)**2On utilise
**2 pour élever au carré, et math.sqrt pour la racine.Étape 7Lance ton programme !✓
Clique sur ▶ Lancer pour appeler tes deux fonctions et voir les résultats.
Python 3 — terminal
>>> f(3)
>>> distance(1, 2, 4, 6)
>>> distance(1, 2, 4, 6)
Solution
f(3) = 2×9 - 3×3 + 1 = 10distance(1,2,4,6) = sqrt((4-1)²+(6-2)²) = sqrt(25) = 5.0Étape 1La condition d'alignement✓
Trois points $A$, $B$, $C$ sont alignés si et seulement si le déterminant des vecteurs $\overrightarrow{AB}$ et $\overrightarrow{AC}$ est égal à…
💡 $\det(\overrightarrow{AB}, \overrightarrow{AC}) = x_{AB} \times y_{AC} - y_{AB} \times x_{AC}$
Solution
$A$, $B$, $C$ sont alignés $\Leftrightarrow$ $\det(\overrightarrow{AB}, \overrightarrow{AC}) = \mathbf{0}$.Si le déterminant est non nul, les vecteurs ne sont pas colinéaires et les points ne sont pas alignés.
Étape 2Calculer $\overrightarrow{AB}$ à la main✓
On prend $A(1\,;\,2)$ et $B(4\,;\,6)$.
Les coordonnées du vecteur $\overrightarrow{AB}$ sont $(x_B - x_A \;;\; y_B - y_A)$.
Quelles sont les coordonnées de $\overrightarrow{AB}$ ?
Les coordonnées du vecteur $\overrightarrow{AB}$ sont $(x_B - x_A \;;\; y_B - y_A)$.
Quelles sont les coordonnées de $\overrightarrow{AB}$ ?
Solution
$\overrightarrow{AB} = (x_B - x_A \;;\; y_B - y_A) = (4-1 \;;\; 6-2) = \mathbf{(3\,;\,4)}$.Étape 3Calculer $\overrightarrow{AC}$ à la main✓
Maintenant avec $C(7\,;\,10)$.
Quelles sont les coordonnées de $\overrightarrow{AC}$ ?
Quelles sont les coordonnées de $\overrightarrow{AC}$ ?
Solution
$\overrightarrow{AC} = (x_C - x_A \;;\; y_C - y_A) = (7-1 \;;\; 10-2) = \mathbf{(6\,;\,8)}$.Étape 4Calculer le déterminant✓
Avec $\overrightarrow{AB} = (3\,;\,4)$ et $\overrightarrow{AC} = (6\,;\,8)$, calcule :
$\det(\overrightarrow{AB}, \overrightarrow{AC}) = x_{AB} \times y_{AC} - y_{AB} \times x_{AC}$
Les points $A$, $B$, $C$ sont-ils alignés ?
$\det(\overrightarrow{AB}, \overrightarrow{AC}) = x_{AB} \times y_{AC} - y_{AB} \times x_{AC}$
Les points $A$, $B$, $C$ sont-ils alignés ?
Solution
$\det = 3 \times 8 - 4 \times 6 = 24 - 24 = \mathbf{0}$.Le déterminant est nul → $A$, $B$, $C$ sont alignés.
Étape 5Traduire en Python, étape par étape✓
On calcule d'abord les coordonnées des vecteurs dans des variables, puis le déterminant.
Complète les 4 trous (coordonnées des vecteurs $\overrightarrow{AB}$ et $\overrightarrow{AC}$).
Complète les 4 trous (coordonnées des vecteurs $\overrightarrow{AB}$ et $\overrightarrow{AC}$).
alignement.py
def alignes(xA, yA, xB, yB, xC, yC):
# Coordonnées du vecteur AB
xAB =
yAB =
# Coordonnées du vecteur AC
xAC =
yAC =
# Déterminant
det = xAB * yAC - yAB * xAC
return det == 0
# Coordonnées du vecteur AB
xAB =
yAB =
# Coordonnées du vecteur AC
xAC =
yAC =
# Déterminant
det = xAB * yAC - yAB * xAC
return det == 0
Solution
xAB = xB - xAyAB = yB - yAxAC = xC - xAyAC = yC - yAChaque ligne traduit directement la formule mathématique du vecteur.
Étape 6Lance ton programme !✓
Clique sur ▶ Lancer pour tester ta fonction avec deux triplets de points.
Python 3 — terminal
>>> alignes(1, 2, 4, 6, 7, 10)
>>> alignes(0, 0, 1, 2, 3, 4)
>>> alignes(0, 0, 1, 2, 3, 4)
Solution
1ᵉʳ appel : $\det = 3\times8 - 4\times6 = 0$ →True (alignés)2ᵉ appel : $\det = 1\times4 - 2\times3 = -2 \neq 0$ →
False (non alignés)
Étape 1Calculer une somme à la main✓
Calcule à la main $S = 1 + 2 + 3 + 4 + 5$.
Solution
$S = 1+2+3+4+5 = \mathbf{15}$.Étape 2L'idée du compteur✓
Quand tu as calculé $1+2+3+4+5$, tu as sûrement fait ça dans la tête :
Commence à $S = 0$
Ajoute $1$ → $S = 1$
Ajoute $2$ → $S = 3$
Ajoute $3$ → $S = 6$
Ajoute $4$ → $S = 10$
Ajoute $5$ → $S = 15$
Avant d'ajouter quoi que ce soit, on démarre toujours $S$ à…
Ajoute $1$ → $S = 1$
Ajoute $2$ → $S = 3$
Ajoute $3$ → $S = 6$
Ajoute $4$ → $S = 10$
Ajoute $5$ → $S = 15$
Solution
On démarre àS = 0 parce qu'on n'a encore rien ajouté. C'est comme un verre vide avant de le remplir.Étape 3La boucle
for et range()✓
En Python,
Quelles valeurs génère
for i in range(1, 6): fait prendre à i les valeurs $1, 2, 3, 4, 5$ une par une.range(1, 6) génère : 1, 2, 3, 4, 5 (6 est exclu)range(1, 4) génère : 1, 2, 3 (4 est exclu)
range(2, 5) ?
Solution
range(2, 5) génère 2, 3, 4. La borne supérieure (5) est toujours exclue.Étape 4Comprendre
S += i✓
La ligne
Exemple : si
Si
S += i est un raccourci Python. Elle signifie exactement :S += i est identique à S = S + iExemple : si
S = 3 et i = 4, après S += i, S vaut 7.
S = 10 et i = 5, que vaut S après S += i ?
Solution
S += i signifie S = S + i = 10 + 5 = 15.Étape 5Compléter la boucle pour additionner 1 à 5✓
Complète les deux trous pour que la fonction calcule $1 + 2 + 3 + 4 + 5$.
Trou 1 : la valeur de départ de
Trou 1 : la valeur de départ de
S — Trou 2 : la borne dans range pour inclure 5
somme.py
def somme_jusqu_a_5():
S =
for i in range(1, ):
S += i # = S = S + i
return S
S =
for i in range(1, ):
S += i # = S = S + i
return S
Solution
Trou 1 :0 (le compteur démarre vide)Trou 2 :
6 (car range(1, 6) génère 1, 2, 3, 4, 5 — 6 est exclu)Trace d'exécution : $S=0 \to 1 \to 3 \to 6 \to 10 \to 15$.
Étape 6Lance ton programme !✓
Clique sur ▶ Lancer pour exécuter ta fonction. Compare le résultat avec celui que tu avais trouvé à la main à l'Étape 1 !
Python 3 — terminal
>>> somme_jusqu_a_5()
Solution
La boucle additionne 1+2+3+4+5 =15. Même résultat qu'à l'Étape 1 !Étape 1Probabilité théorique d'un dé✓
On lance un dé équilibré à 6 faces (numérotées 1 à 6). Quelle est la probabilité d'obtenir un nombre pair ?
Solution
Issues paires : $\{2, 4, 6\}$ — 3 issues sur 6. $P(\text{pair}) = \dfrac{3}{6} = \dfrac{1}{2}$.Étape 2Simuler avec la loi des grands nombres✓
Pour estimer une probabilité, on répète l'expérience un grand nombre de fois et on calcule la fréquence.
En 1000 lancers, on obtient 487 fois un résultat pair. Quelle est la fréquence observée ?
En 1000 lancers, on obtient 487 fois un résultat pair. Quelle est la fréquence observée ?
Solution
Fréquence $= \dfrac{487}{1000} = 0{,}487$. Proche de $0{,}5$ mais pas exactement (c'est une simulation !).Étape 3
random.randint : tirer au sort✓random.randint(a, b) tire un entier au hasard entre $a$ et $b$ inclus les deux bornes.
import randomrandom.randint(1, 6) → peut donner 1, 2, 3, 4, 5 ou 6random.randint(0, 1) → peut donner 0 ou 1 (pile ou face)
Solution
random.randint(1, 10) — les deux bornes sont incluses, donc ça tire bien dans $\{1, 2, \ldots, 10\}$.Étape 4Compléter la simulation✓
Complète les deux trous pour simuler
Trou 1 : le tirage aléatoire — Trou 2 : tester si
n lancers d'un dé à 6 faces et compter les résultats pairs.Trou 1 : le tirage aléatoire — Trou 2 : tester si
de est pair avec %
simulation_de.py
import random
def freq_pair(n):
compteur = 0
for i in range(n):
de =
if :
compteur += 1
return compteur / n
def freq_pair(n):
compteur = 0
for i in range(n):
de =
if :
compteur += 1
return compteur / n
Solution
Trou 1 :random.randint(1, 6)Trou 2 :
de % 2 == 0 — on réutilise le % du Thème 1 !Étape 5Lance ta simulation !✓
Clique plusieurs fois sur ▶ Lancer. Observe que le résultat change à chaque fois — et reste toujours proche de
0.5.
Python 3 — terminal
>>> freq_pair(1000)
Solution
Le résultat varie à chaque lancer car les tirages sont aléatoires — c'est normal et attendu.Plus
n est grand, plus la fréquence se rapproche de $\frac{1}{2} = 0{,}5$ (loi des grands nombres).