Kala te souhaite la bienvenueKalaMaths

Algorithmique et programmation (Python)

🟡 Moyen

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 la somme de deux dés équilibrés à 6 faces :
    import random
    def somme_deux_des():
    return random.randint(1, 6) + random.randint(1, 6)
    a) Entre quelles valeurs se trouve le résultat renvoyé ?
    b) Quelle somme a la plus grande probabilité d'apparaître ? Justifie.

    Voir le corrigéoffert

    a) random.randint(1, 6) renvoie un entier entre 1 et 6 INCLUS. La plus petite somme possible est 1 + 1 = 2, la plus grande est 6 + 6 = 12. Le résultat est donc un entier entre 2 et 12.
    b) Chaque dé a 6 faces, ce qui donne 6 × 6 = 36 tirages également possibles. Comptons ceux qui donnent chaque somme : la somme 7 est obtenue par (1,6), (2,5), (3,4), (4,3), (5,2), (6,1), soit 6 façons — c'est le maximum. Aucune autre somme n'a autant de possibilités (par exemple 2 n'en a qu'une : (1,1)).
    La somme la plus probable est donc 7, avec une probabilité de 636\frac{6}{36} = 16\frac{1}{6}.

  2. 2

    Que compte ce programme ? Donne la valeur finale de c.
    c = 0
    for n in range(1, 101):
    if n % 7 == 0:
    c = c + 1
    print(c)

    Voir le corrigéoffert

    La boucle parcourt les entiers de 1 à 100 (range(1, 101), donc 101 exclu). À chaque tour, si n est divisible par 7 (reste nul), on ajoute 1 au compteur.
    Le programme compte donc les multiples de 7 entre 1 et 100 : ce sont 7, 14, 21, …, 98.
    Pour les compter, on divise le plus grand par 7 : 98 ÷ 7 = 14.
    Donc c = 14, et print(c) affiche 14.
    Vérifions : le plus grand multiple de 7 inférieur ou égal à 100 est 98, et il y a bien 14 multiples de 7 dans cet intervalle.

  3. 3

    Que contient la liste L construite par cette compréhension ?
    L = [n*n - 1 for n in range(1, 8) if n % 2 == 1]

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

    On répète 20 fois une épreuve qui réussit avec probabilité p = 0,3, et on compte les succès :
    import random
    def experience():
    s = 0
    for i in range(20):
    if random.random() < 0.3:
    s = s + 1
    return s
    a) Quelle loi suit la variable renvoyée par experience() ?
    b) Quelle est l'espérance du nombre de succès ? Autour de quelle valeur s se situe-t-il ?

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

    On donne la fonction :
    def compte(L, v):
    c = 0
    for x in L:
    if x == v:
    c = c + 1
    return c
    Que renvoie compte([2, 5, 2, 7, 2, 5], 2) ?

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

    On donne la fonction :
    def somme_chiffres(n):
    s = 0
    while n > 0:
    s = s + n % 10
    n = n // 10
    return s
    Que renvoie somme_chiffres(2734) ?

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

    On dispose des notes d'un échantillon d'élèves : L=[6,9,7,10,8,14]L = [6, 9, 7, 10, 8, 14]. Écris une fonction moyenne(L) qui calcule la moyenne des nombres d'une liste, puis applique-la à cet échantillon.

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

    Écris une fonction indice_max(L) qui renvoie l'INDICE (la position) du plus grand élément d'une liste L. Applique-la à L=[5,12,7,20,8]L = [5, 12, 7, 20, 8].

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

    On considère la suite définie par u0=3u_{0} = 3 et un+1=3un+2u_{n+1} = 3u_{n} + 2.
    a) Écris une fonction terme(n) qui renvoie unu_n.
    b) Calcule u1u_{1}, u2u_{2} et u3u_{3} à la main.

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

    La suite est définie par u0u_0 = 1000 et un+1u_{n+1} = 0,8 unu_n. On cherche le plus petit n tel que unu_n < 100 :
    def seuil():
    u = 1000
    n = 0
    while u >= 100:
    u = 0.8 * u
    n = n + 1
    return n
    Déroule la boucle et donne la valeur renvoyée.

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

Comment ça s'est passé ?

Retrouve tout dans Mon suivi.