Aller au contenu
Accueil › Exercices de maths › Algorithmique et programmation Python : exercices de maths Terminale

Algorithmique et programmation Python : exercices de maths Terminale

  • par
Rate this post
Exercices de maths Terminale : exercices de maths Terminale

23 exercices classés par difficulté (★ facile, ★★ moyen, ★★★ difficile). Cherche d’abord sans regarder le corrigé !

2 Définir une fonction ★★★

Écris en Python une fonction f qui prend un réel x et renvoie 3x² − 2x + 1. Calcule à la main f(4), f(−1) et f(0,5), puis vérifie avec ton programme. Quelle différence y a-t-il entre return et print ?

3 Manipuler une liste ★★★

Voici un programme.

L = [3, 8, 1, 9, 4, 7]
print(len(L), sum(L), max(L), L[2], L[-1])
print(sum(L) / len(L))
print([2 * x for x in L if x > 3])

Prévois ce qu’il affiche (trois lignes), puis exécute-le pour vérifier. Explique pourquoi L[2] n’est pas le deuxième élément de la liste.

4 Calculer le terme d’une suite ★★★

La suite (un) est définie par u0 = 2 et un+1 = 3un − 1.

  1. Calcule à la main u1, u2, u3.
  2. Écris une fonction terme(n) qui renvoie un à l’aide d’une boucle for.
  3. Quelle valeur renvoie terme(5) ?

5 Un premier seuil ★★★

La valeur d’un appareil perd 20 % par an. Il vaut 1 000 € au départ. On cherche en combien d’années sa valeur devient strictement inférieure à 50 €.

  1. Quel coefficient multiplicateur correspond à une baisse de 20 % ?
  2. Complète puis exécute un programme qui répond (utilise une boucle while).

6 Range et indices ★★★

Sans exécuter, écris les listes obtenues avec : list(range(5)) ; list(range(2, 8)) ; list(range(1, 10, 3)) ; list(range(5, 0, -1)). Vérifie ensuite avec Python.

7 Simuler des lancers de pièce ★★★

Voici un programme.

import random
random.seed(7)
faces = 0
for i in range(20):
    if random.randint(0, 1) == 1:
        faces = faces + 1
print(faces, faces / 20)
  1. Que simule-t-il ?
  2. Pourquoi le nombre de « faces » n’est-il pas toujours égal à 10 ?
  3. À quoi sert random.seed(7) ?

8 Suite convergente et précision ★★★

On définit u0 = 20 et un+1 = 0,5un + 3.

  1. Résous ℓ = 0,5ℓ + 3 et montre que la suite (un − ℓ) est géométrique.
  2. Écris un programme qui donne le plus petit entier n tel que un − ℓ < 0,01.
  3. Retrouve ce rang par le calcul.

9 Doubler un capital ★★★

Un capital de 5 000 € est placé à 3 % d’intérêts composés par an. Écris un programme qui donne le nombre d’années nécessaires pour que le capital atteigne ou dépasse 10 000 €. Justifie le résultat par le calcul.

10 Somme des inverses des carrés ★★★

Pour n ≥ 1, on pose Sn = 1 + 1/4 + 1/9 + … + 1/n². Écris un programme qui renvoie le plus petit entier n tel que Sn > 1,6. Explique pourquoi le programme s’arrête (on admet que Sn tend vers π² / 6 ≈ 1,645).

11 Dichotomie à la main ★★★

Soit f(x) = x² − 5 sur [2 ; 3].

  1. Justifie que f s’annule une seule fois sur [2 ; 3].
  2. Applique trois étapes de dichotomie en complétant un tableau (a, b, m, f(m)).
  3. Donne un encadrement de √5 d’amplitude 0,125.
  4. Combien d’étapes faut-il pour une amplitude strictement inférieure à 10−4 ?

12 Quatre rectangles à la main ★★★

On veut encadrer I = ∫ x² dx entre 0 et 1 avec n = 4 rectangles de même largeur.

  1. Quelle est la largeur h ?
  2. Calcule la somme des aires des rectangles « sous la courbe » et celle des rectangles « au-dessus ».
  3. Donne l’encadrement obtenu, puis vérifie que 1/3 s’y trouve.
  4. Quel écart sépare les deux sommes ? Quel n garantit un écart inférieur à 0,001 ?

13 Compter des couples ★★★

On lance deux dés équilibrés à six faces, un rouge et un bleu. Écris un programme qui compte les couples (a ; b) de somme 7 et calcule la probabilité de cet événement. Retrouve le résultat par un raisonnement direct.

14 Fréquence et probabilité ★★★

Voici une simulation de 5 000 lancers de deux dés.

import random
random.seed(21)
N = 5000
sept = 0
for i in range(N):
    if random.randint(1, 6) + random.randint(1, 6) == 7:
        sept = sept + 1
print(sept / N)
  1. Que calcule-t-il ?
  2. Compare la fréquence obtenue à la probabilité de l’exercice précédent.
  3. Quel ordre de grandeur d’écart peut-on attendre ?

15 Newton pour une racine carrée ★★★

On veut une valeur approchée de √7, solution positive de f(x) = x² − 7 = 0.

  1. Montre que la méthode de Newton donne xn+1 = (xn + 7 / xn) / 2.
  2. Calcule x1 et x2 pour x0 = 3 (fractions puis valeurs approchées).
  3. Écris le programme qui affiche x1, x2, x3 et compare avec 7 ** 0.5.

16 Newton sur une équation du troisième degré ★★★

Soit f(x) = x³ + 2x − 5.

  1. Montre que f s’annule une seule fois sur ℝ et que cette solution α est dans [1 ; 2].
  2. Écris un programme qui applique la méthode de Newton à partir de x0 = 1,5 jusqu’à ce que |f(xn)| ≤ 10−12.
  3. Donne la valeur approchée trouvée et le nombre d’itérations.

17 Dichotomie et exponentielle ★★★

Soit f(x) = ex + x − 3 sur [0 ; 2].

  1. Prouve que l’équation f(x) = 0 a une unique solution α dans [0 ; 2].
  2. Écris et exécute une dichotomie qui encadre α avec une amplitude inférieure ou égale à 10−6.
  3. Prévois le nombre d’étapes à l’aide de la formule k ≥ log2((b − a) / e) puis compare avec le programme.

18 Estimer ln 2 par les rectangles ★★★

La fonction f(x) = 1/x est décroissante sur [1 ; 2] et son intégrale entre 1 et 2 vaut ln 2 ≈ 0,6931.

  1. Pour une découpe en n bandes, écris les deux sommes qui encadrent l’intégrale (explique lequel est le minorant).
  2. Montre que leur écart vaut 1 / (2n).
  3. Trouve le plus petit n pour lequel cet écart est strictement inférieur à 10−3 et exécute le programme pour n = 500.

19 Seuil de probabilité ★★★

Un joueur réussit un tir avec la probabilité 0,3, indépendamment des autres tirs. On veut que la probabilité de réussir au moins un tir sur n tirs dépasse 0,99.

  1. Exprime cette probabilité en fonction de n.
  2. Écris un programme qui renvoie le plus petit n convenable.
  3. Retrouve ce n par le calcul avec un logarithme.

20 Estimer π par Monte-Carlo ★★★

On tire au hasard un point (x ; y) dans le carré [0 ; 1] × [0 ; 1].

  1. Quelle est la probabilité que le point soit dans le quart de disque de centre O et de rayon 1 ?
  2. Explique le programme suivant et donne sa sortie.
import random
random.seed(2024)
N = 100000
dedans = 0
for i in range(N):
    x = random.random()
    y = random.random()
    if x * x + y * y <= 1:
        dedans = dedans + 1
print(4 * dedans / N)

c) Quelle précision peut-on espérer ? Combien de points faut-il pour gagner une décimale de plus ?

21 Arrangements et combinaisons ★★★

Voici un programme qui utilise itertools et math.comb.

import itertools
from math import comb

lettres = "ABCDE"
print(len(list(itertools.permutations(lettres, 4))))
print(comb(32, 5))
print(comb(5, 3), len(list(itertools.combinations(lettres, 3))))
  1. Calcule à la main chaque nombre affiché (justifie par un dénombrement).
  2. Pourquoi vaut-il mieux utiliser comb(32, 5) que générer la liste de toutes les combinaisons ?

22 Loi binomiale par programme ★★★

Soit X qui suit la loi binomiale B(10 ; 0,3).

  1. Écris une fonction binom(n, p, k) qui renvoie P(X = k).
  2. Calcule P(X = 3), P(X ≤ 2) et P(X ≥ 2).
  3. Que vaut l’espérance ? Vérifie-la en calculant la somme des k × P(X = k).

23 Problème : un parc de vélos ★★★

Un parc compte 1 000 vélos en libre-service au 1er janvier 2025. Chaque année, 10 % des vélos sont retirés (usure), puis la mairie en installe 80 nouveaux. On note un le nombre de vélos au 1er janvier de l’année 2025 + n.

  1. Montre que un+1 = 0,9un + 80.
  2. Montre que vn = un − 800 est géométrique et exprime un en fonction de n. Quelle est la limite ?
  3. Programme : à partir de quelle année y aura-t-il moins de 810 vélos ?

Voir le corrigé des exercices