Kala te souhaite la bienvenueKala-Maths

Algorithmique et programmation (Python)

🔴 Expert

📝 Les énoncés sont gratuits, et les 2 premiers corrigés sont offerts. Les autres corrigés détaillés sont réservés aux abonnés.

  1. 1

    On considère la suite définie par u₀ = 2 et, pour tout n, uₙ₊₁ = 0,5 uₙ + 3.
    a) Écris une fonction terme(n) qui renvoie uₙ.
    b) Calcule u₁, u₂, u₃ à la main.
    c) Écris une fonction seuil() (avec une boucle while) qui renvoie le plus petit entier n tel que uₙ > 5,9.
    d) Détermine la valeur de ce seuil et interprète le comportement de la suite.

    ✅ Voir le corrigéoffert

    a) On part de u = 2 et on applique n fois la relation :
    def terme(n):
    u = 2
    for i in range(n):
    u = 0.5 * u + 3
    return u
    b) u₀ = 2 ; u₁ = 0,5 × 2 + 3 = 1 + 3 = 4 ; u₂ = 0,5 × 4 + 3 = 2 + 3 = 5 ; u₃ = 0,5 × 5 + 3 = 2,5 + 3 = 5,5.
    c) On avance dans la suite tant qu'on n'a pas dépassé 5,9, en comptant les étapes :
    def seuil():
    u = 2
    n = 0
    while u <= 5.9:
    u = 0.5 * u + 3
    n = n + 1
    return n
    d) Continuons le calcul :
    u₃ = 5,5 ; u₄ = 0,5 × 5,5 + 3 = 5,75 ; u₅ = 0,5 × 5,75 + 3 = 5,875 ; u₆ = 0,5 × 5,875 + 3 = 5,9375.
    C'est au rang 6 que l'on dépasse 5,9 (5,875 ≤ 5,9 mais 5,9375 > 5,9). Donc seuil() renvoie 6.
    Interprétation : la suite est croissante et se rapproche de plus en plus d'une valeur limite L. Cette limite vérifie L = 0,5 L + 3, soit 0,5 L = 3, donc L = 6. La suite grimpe vers 6 sans jamais l'atteindre, ce qui explique qu'elle finisse par dépasser 5,9. ✓

  2. 2

    On veut résoudre en Python l'équation ax² + bx + c = 0 (avec a ≠ 0).
    a) Écris une fonction discriminant(a, b, c).
    b) Écris une fonction solutions(a, b, c) qui affiche les solutions réelles : deux valeurs, une valeur, ou le message 'pas de solution réelle' selon le signe du discriminant. On pourra obtenir une racine carrée avec l'écriture d ** 0.5.
    c) Applique le raisonnement, à la main, à 3x² + 5x − 2 = 0.
    d) Applique-le à x² − 6x + 9 = 0.

    ✅ Voir le corrigéoffert

    a) def discriminant(a, b, c):
    return b * b - 4 * a * c
    b) On calcule Δ, puis on distingue les trois cas. Les solutions sont données par x = bΔ2a\frac{-b - \surd \Delta }{2a} et x = b+Δ2a\frac{-b + \surd \Delta }{2a} :
    def solutions(a, b, c):
    d = discriminant(a, b, c)
    if d > 0:
    r = d ** 0.5
    print((-b - r) / (2 * a))
    print((-b + r) / (2 * a))
    elif d == 0:
    print(-b / (2 * a))
    else:
    print('pas de solution réelle')
    c) Pour 3x² + 5x − 2 = 0 : a = 3, b = 5, c = −2.
    Δ = 5² − 4 × 3 × (−2) = 25 + 24 = 49. Comme 49 > 0, il y a deux solutions. √49 = 7.
    x₁ = 572×3\frac{-5 - 7}{2 \times 3} = 126\frac{-12}{6} = −2 ; x₂ = 5+72×3\frac{-5 + 7}{2 \times 3} = 26\frac{2}{6} = 13\frac{1}{3}.
    Les solutions sont −2 et 13\frac{1}{3}.
    d) Pour x² − 6x + 9 = 0 : a = 1, b = −6, c = 9.
    Δ = (−6)² − 4 × 1 × 9 = 36 − 36 = 0. Comme Δ = 0, il y a une seule solution (racine double) :
    x = (6)2×1\frac{-(-6)}{2 \times 1} = 62\frac{6}{2} = 3.
    Vérification : x² − 6x + 9 = (x − 3)², qui s'annule bien seulement pour x = 3. ✓

  3. 3

    On simule le lancer de deux dés équilibrés à 6 faces et on s'intéresse à la somme obtenue :
    import random
    def somme_deux_des():
    d1 = random.randint(1, 6)
    d2 = random.randint(1, 6)
    return d1 + d2
    a) Quelles sont la plus petite et la plus grande valeur possibles pour la somme ?
    b) Combien y a-t-il de couples (d1, d2) possibles au total ?
    c) Combien de ces couples donnent une somme égale à 7 ? En déduire la probabilité d'obtenir 7.
    d) On répète l'expérience 3600 fois. Autour de quelle valeur devrait se situer le nombre de sommes égales à 7 ?

    🔒 Corrigé réservé aux abonnésS'abonner →
  4. 4

    On dispose d'une liste de notes : notes = [8, 14, 17, 6, 12, 15, 9, 18, 11].
    a) Écris une fonction nb_admis(L) qui compte les notes supérieures ou égales à 10.
    b) Écris, à l'aide d'une compréhension de liste, la liste des notes strictement inférieures à 10.
    c) Écris une fonction moyenne(L) et donne la valeur exacte de la moyenne de notes.
    d) Écris une fonction meilleure(L) qui renvoie la meilleure note sans utiliser max(), et donne-la ici.

    🔒 Corrigé réservé aux abonnésS'abonner →
  5. 5

    Léa emprunte 1200 € à un ami, sans intérêt, et rembourse 90 € chaque mois.
    a) Écris une fonction dette(n) qui renvoie la somme restant à devoir après n mois.
    b) Écris une fonction nb_mois() (avec une boucle while) qui renvoie le nombre de mois nécessaires pour tout rembourser (dette inférieure ou égale à 0).
    c) Combien de mois faut-il ? Quelle somme Léa doit-elle réellement payer le dernier mois ?

    🔒 Corrigé réservé aux abonnésS'abonner →
  6. 6

    a) Écris une fonction somme_multiples(N) qui renvoie la somme des entiers de 1 à N (inclus) qui sont multiples de 3 OU de 5.
    b) Applique-la à N = 20 en détaillant les termes.
    c) Écris une fonction compte_multiples(N) qui, au lieu de les additionner, COMPTE ces entiers ; donne le résultat pour N = 20.

    🔒 Corrigé réservé aux abonnésS'abonner →
  7. 7

    La suite de Fibonacci est définie par F₀ = 0, F₁ = 1 et, pour n ≥ 2, Fₙ = Fₙ₋₁ + Fₙ₋₂ (chaque terme est la somme des deux précédents).
    a) Calcule F₂, F₃, F₄, F₅ et F₆ à la main.
    b) Écris une fonction fibo(n) qui renvoie Fₙ à l'aide d'une boucle et de deux variables.
    c) Que renvoie fibo(7) ?

    🔒 Corrigé réservé aux abonnésS'abonner →
  8. 8

    L'algorithme d'Euclide calcule le PGCD (plus grand commun diviseur) de deux entiers : on remplace le plus grand par le reste de sa division par l'autre, et on recommence jusqu'à obtenir un reste nul.
    a) Applique l'algorithme à la main pour 84 et 30.
    b) Écris une fonction pgcd(a, b) utilisant une boucle while et l'opérateur reste %.
    c) Vérifie que ta fonction donne le bon résultat pour 84 et 30.

    🔒 Corrigé réservé aux abonnésS'abonner →
  9. 9

    On relève la température (en °C) sur 7 jours : temperatures = [12, 8, 15, 5, 9, 5, 11], où l'indice 0 correspond au premier jour.
    a) Écris une fonction indice_min(L) qui renvoie l'indice du PREMIER jour où la température est minimale.
    b) Applique-la à temperatures : quel indice, et quelle température ?
    c) Écris une fonction amplitude(L) qui renvoie la différence entre la plus grande et la plus petite température, et donne sa valeur ici.

    🔒 Corrigé réservé aux abonnésS'abonner →
  10. 10

    Un jeu de dé : on lance un dé équilibré à 6 faces, on gagne la partie si l'on obtient un 5 ou un 6.
    import random
    def partie():
    d = random.randint(1, 6)
    if d >= 5:
    return 1
    else:
    return 0
    a) Quelle est la probabilité de gagner une partie ?
    b) Écris une fonction nb_gagnees(N) qui joue N parties et renvoie le nombre de parties gagnées.
    c) On joue 1200 parties : autour de quelle valeur devrait se situer nb_gagnees(1200) ?
    d) Le joueur mise 2 € par partie et reçoit 5 € à chaque partie gagnée. Sur 1200 parties, quel bilan (gain ou perte) peut-il espérer ? Détaille.

    🔒 Corrigé réservé aux abonnésS'abonner →

Comment ça s'est passé ?

Retrouve tout dans Mon suivi.