Aller au contenu

Index des sujets 2023

Corrigé sujet 20 - Année : 2023

Sujet 20 - 2023

Exercice 1

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
def ajoute_dictionnaires(d1,d2):
    d = {}
    for cle in d1:
        if cle in d2:
            d[cle] = d1[cle] + d2[cle]
        else:
            d[cle] = d1[cle]
    for cle in d2:
        if cle not in d1:
            d[cle] = d2[cle]
    return d

Remarques

  • La première boucle ajoute les valeurs associées aux clés de d1, si la clé est aussi présente dans d2 alors la valeur associée est la somme des deux valeurs.
  • La seconde boucle ajoute les valeurs associées aux clés de d2 qui ne sont pas des clés de d1.

Exercice 2

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
from random import randint

def nbre_coups():
    n = 0 #(1)
    cases_vues = [0]
    case_en_cours = 0
    nbre_cases = 12
    while len(cases_vues) < 12: #(2)
        x = randint(1, 6)
        case_en_cours = (case_en_cours + x) % nbre_cases #(3)
        if case_en_cours not in cases_vues: #(4)
            cases_vues.append(case_en_cours)
        n = n + 1
    return n
  1. n est la variable qui compte le nombre de coups joués, elle est donc initialisée à 0 et incrémenté à chaque coup joué (ligne 13)
  2. Le jeu se termine lorsque tous les numéros des cases sont dans cases_vues, la longueur de cette liste est donc 12.
  3. On ajoute le résultat des dés et on prend le reste dans la division euclidienne par le nombre de cases.
  4. Si la case actuelle n'est pas encore dans les cases vues on l'ajoute