Kala te souhaite la bienvenueKalaMaths

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.

S'abonner
  1. 1

    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
    On répète l'expérience 3600 fois. Autour de quelle valeur devrait se situer le nombre de sommes égales à 7 ?

    Voir le corrigéoffert

    a) Chaque dé donne un entier de 1 à 6. La somme minimale est 1+1=21 + 1 = 2 ; la somme maximale est 6+6=126 + 6 = 12.
    b) d1 peut prendre 6 valeurs, d2 aussi, et ils sont indépendants : il y a donc 6×6=366 \times 6 = 36 couples (d1, d2) équiprobables.
    c) Cherchons les couples de somme 7 : (1, 6), (2, 5), (3, 4), (4, 3), (5, 2), (6, 1). Cela fait 6 couples.
    La probabilité d'obtenir 7 est donc P=636=16P = \frac{6}{36} = \frac{1}{6}.
    d) Sur 3600 répétitions, le nombre attendu de sommes égales à 7 est :
    3600×16=6003600 \times \frac{1}{6} = 600.
    Le compte devrait donc se situer autour de 600.
    Remarque : 7 est la somme la plus fréquente aux deux dés, précisément parce qu'elle correspond au plus grand nombre de couples (6).

  2. 2

    La suite de Fibonacci est définie par F0=0F_{0} = 0, F1=1F_{1} = 1 et, pour n≥2n \ge 2, Fn=Fn−1+Fn−2F_{n} = F_{n-1} + F_{n-2} (chaque terme est la somme des deux précédents).
    Que renvoie fibo(7) ?

    Voir le corrigéoffert

    a) On additionne les deux termes précédents :
    F2F_2 = F1F_1 + F0F_0 = 1 + 0 = 1
    F3F_3 = F2F_2 + F1F_1 = 1 + 1 = 2
    F4F_4 = F3F_3 + F2F_2 = 2 + 1 = 3
    F5F_5 = F4F_4 + F3F_3 = 3 + 2 = 5
    F6F_6 = F5F_5 + F4F_4 = 5 + 3 = 8
    b) On garde en mémoire deux termes consécutifs, a = FiF_i et b = Fi+1F_{i+1}, et on les fait avancer :
    def fibo(n):
    a = 0
    b = 1
    for i in range(n):
    a, b = b, a + b
    return a
    L'instruction « a, b = b, a + b » remplace en même temps a par b et b par a + b (les deux valeurs de droite sont calculées avant d'être rangées).
    c) Continuons : F7F_7 = F6F_6 + F5F_5 = 8 + 5 = 13. Donc fibo(7) renvoie 13.
    Vérification du programme : fibo(0) renvoie a = 0 = F0F_0 (la boucle ne s'exécute pas), fibo(1) renvoie 1 = F1F_1. Le mécanisme est correct.

  3. 3

    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.
    Vérifie que ta fonction donne le bon résultat pour 84 et 30.

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

    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
    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 →
  5. 5

    Léa emprunte 1200 € à un ami, sans intérêt, et rembourse 90 € chaque mois.
    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=20N = 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=20N = 20.

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

    On considère la suite définie par u0u_0 = 2 et, pour tout n, un+1u_{n+1} = 0,5 unu_n + 3.
    Donne le plus petit entier n tel que un>5,9u_n > 5{,}9, puis décris le comportement de la suite quand n grandit.

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

    On relève la température (en °C) sur 7 jours : temperatures =[12,8,15,5,9,5,11]= [12, 8, 15, 5, 9, 5, 11], où l'indice 0 correspond au premier jour.
    É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 →
  9. 9

    On veut résoudre en Python l'équation ax² + bx + c = 0 (avec a ≠ 0).
    Applique le même raisonnement, à la main, à x2−6x+9=0x^{2} - 6x + 9 = 0.

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

    On dispose d'une liste de notes : notes =[8,14,17,6,12,15,9,18,11]= [8, 14, 17, 6, 12, 15, 9, 18, 11].
    Écris une fonction meilleure(L) qui renvoie la meilleure note sans utiliser max(), et donne la meilleure note de la liste.

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

Comment ça s'est passé ?

Retrouve tout dans Mon suivi.