Kala te souhaite la bienvenueKalaMaths

Algorithmique et programmation (Python)

🟠 Difficile

📝 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

    La suite est définie par u0=800u_0 = 800 et un+1=0,75unu_{n+1} = 0{,}75\,u_n. On cherche le plus petit nn tel que un<100u_n < 100.
    def seuil():
    u = 800
    n = 0
    while u >= 100:
    u = 0.75 * u
    n = n + 1
    return n
    a) Déroule la boucle et donne la valeur renvoyée.
    b) Retrouve ce résultat par le calcul, avec le logarithme.

    ✅ Voir le corrigéoffert

    a) On multiplie par 0,75 tant que u reste supérieur ou égal à 100.
    Tour 1 : u=600u = 600, n=1n = 1.
    Tour 2 : u=450u = 450, n=2n = 2.
    Tour 3 : u=337,5u = 337{,}5, n=3n = 3.
    Tour 4 : u=253,1u = 253{,}1, n=4n = 4.
    Tour 5 : u=189,8u = 189{,}8, n=5n = 5.
    Tour 6 : u=142,4u = 142{,}4, n=6n = 6.
    Tour 7 : u=106,8u = 106{,}8, n=7n = 7.
    Tour 8 : u=80,1u = 80{,}1, n=8n = 8.
    La condition devient fausse : la fonction renvoie 8.

    b) On cherche le plus petit nn tel que 800×0,75n<100800 \times 0{,}75^{n} < 100.
    Soit 0,75n<0,1250{,}75^{n} < 0{,}125, puis nln(0,75)<ln(0,125)n\ln(0{,}75) < \ln(0{,}125).
    Le logarithme de 0,75 étant négatif, l'inégalité s'inverse en divisant.
    n>ln0,125ln0,752,0790,2887,23n > \frac{\ln 0{,}125}{\ln 0{,}75} \approx \frac{-2{,}079}{-0{,}288} \approx 7{,}23.
    Le plus petit entier convenable est donc 8 ✓.

  2. 2

    On considère le programme suivant.
    s = 0
    for k in range(1, 21):
    s = s + k * k
    print(s)
    a) Que calcule ce programme ? Donne la valeur affichée.
    b) Modifie-le pour qu'il calcule la somme des cubes des mêmes entiers.

    ✅ Voir le corrigéoffert

    a) La boucle parcourt les entiers de 1 à 20 et cumule leurs carrés.
    Le programme calcule donc 12+22++2021^{2} + 2^{2} + \ldots + 20^{2}.
    La formule connue donne n(n+1)(2n+1)6\frac{n(n+1)(2n+1)}{6} avec n=20n = 20.
    20×21×416=172206=2870\frac{20 \times 21 \times 41}{6} = \frac{17\,220}{6} = 2\,870.
    Le programme affiche 2 870.

    b) Il suffit de remplacer « k * k » par « k * k * k » (ou « k ** 3 »).
    s = 0
    for k in range(1, 21):
    s = s + k ** 3
    print(s)
    La somme des cubes vaut (20×212)2=2102=44100\left(\frac{20 \times 21}{2}\right)^{2} = 210^{2} = 44\,100.

  3. 3

    On approche une intégrale par la méthode des rectangles.
    def aire(n):
    s = 0
    h = 1 / n
    for k in range(n):
    s = s + h * (k * h) ** 2
    return s
    a) Que calcule cette fonction quand n est grand ?
    b) Calcule aire(4) à la main.

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

    On simule 10 000 lancers d'une pièce.
    import random
    def simule(n):
    c = 0
    for i in range(n):
    if random.random() < 0.5:
    c = c + 1
    return c / n
    a) Que renvoie simule(10000) approximativement ? Justifie.
    b) Comment modifier le code pour simuler une pièce truquée donnant pile 3 fois sur 5 ?

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

    Écris une fonction dichotomie(a, b, p) qui encadre à la précision p la solution de f(x)=0f(x) = 0 sur [a;b][a \,;\, b], pour f(x)=x3+x1f(x) = x^{3} + x - 1.
    a) Écris la fonction.
    b) Explique pourquoi la boucle se termine toujours.

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

    On considère le programme suivant.
    u = 2
    for i in range(6):
    u = u * u
    print(u)
    a) Déroule le programme et donne la valeur affichée.
    b) Exprime le résultat sous forme d'une puissance de 2.

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

    Écris une fonction moyenne_ponderee(V, E) qui calcule la moyenne des valeurs de la liste V pondérées par les effectifs de la liste E.
    a) Écris la fonction.
    b) Applique-la à V = [8, 12, 16] et E = [3, 5, 2].

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

    On considère le programme suivant.
    n = 1
    c = 0
    while n < 1000:
    n = 3 * n
    c = c + 1
    print(c, n)
    a) Déroule le programme et donne les deux valeurs affichées.
    b) Retrouve la valeur de c à l'aide du logarithme.

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

    Écris une fonction compte(L, s) qui renvoie le nombre d'éléments de la liste L strictement supérieurs à s.
    a) Écris la fonction.
    b) Applique-la à L = [12, 7, 19, 4, 15, 9] avec s = 10.

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

    On considère la suite définie par u0=1u_0 = 1 et un+1=un+2un+1u_{n+1} = \frac{u_n + 2}{u_n + 1}.
    def terme(n):
    u = 1
    for i in range(n):
    u = (u + 2) / (u + 1)
    return u
    a) Calcule u1u_1, u2u_2 et u3u_3 à la main.
    b) Vers quelle valeur la suite semble-t-elle tendre ? Vérifie par le calcul.

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

Comment ça s'est passé ?

Retrouve tout dans Mon suivi.