Exercice 2 · Bac Numérique et Sciences Informatiques Polynésie 2024 (jour 1)

Thème : Récursivité · Tiré du sujet Jour 1 (2024)

Énoncé

EXERCICE 2 (6 points)

Cet exercice porte sur la récursivité.

Au rugby, une équipe peut marquer, pour simplifier:

soit 3 points (pénalité);

soit 5 points (essai non transformé);

soit 7 points (essai transformé).

Partie A

On souhaite savoir s'il est possible d'obtenir un score donné avec uniquement des pénalités, c'est-à-dire avec une succession de « coups » à 3 points.

1.

Écrire une fonction possible_avec_penalites_seules qui prend en paramètre un score et qui renvoie True si le score passé en paramètre peut être marqué uniquement avec des pénalités.

>>> possible_avec_penalites_seules(15)

True

>>> possible_avec_penalites_seules(10)

False

2.

Recopier et compléter le tableau suivant qui précise, pour les scores de 0 à 10, les évolutions du score menant à un total donné et le nombre de façons différentes d'obtenir ce total. Par exemple, pour obtenir un score de 8, en partant de 0, il y a 2 possibilités:

Soit l'équipe marque un essai non transformé, atteignant 5 points, puis une pénalité, atteignant 8 points;

Soit l'équipe marque une pénalité, atteignant 3 points, puis un essai non transformé, atteignant 8 points.

score

liste des solutions

nombre de solutions

0

[0]

1

1

[]

0

2

3

4

5

6

7

8

[0, 5, 8], [0, 3, 8]

2

9

1

10

3

En notant f(n)f(n) le nombre de possibilités d'obtenir le score nn, on admet que pour n>6n > 6 on a la relation suivante:

f(n)=f(n−3)+f(n−5)+f(n−7)f(n) = f(n - 3) + f(n - 5) + f(n - 7)

3.

Vérifier cette relation pour n=10n = 10 à l'aide du tableau établi à la question 2.

On veut écrire une fonction récursive nb_solutions, qui prend en paramètre un entier positif quelconque correspondant à un score, et qui renvoie le nombre de façons d'obtenir ce score donné.

4.

Déterminer tous les cas de base, pour chaque entier nn de 0 à 6, de cette fonction récursive.

5.

Écrire la fonction récursive nb_solutions, qui prend en paramètre un entier positif quelconque correspondant à un score, et qui renvoie le nombre de possibilités d'obtenir ce score donné.

6.

Lors de l'appel de nb_solutions(score), on se rend compte que le nombre d'appels récursifs augmente très rapidement lorsque score augmente. Nommer une méthode algorithmique optimisant le nombre d'appels récursifs.

On veut écrire une fonction récursive solutions_possibles, qui prend en paramètre un entier positif quelconque correspondant à un score, et qui renvoie la liste composée de toutes les listes représentant les possibilités d'obtenir ce score.

Par exemple:

>>> solutions_possibles(8)

[[0, 5, 8], [0, 3, 8]]

7.

Déterminer quelles lignes du tableau permettent de construire rapidement la liste renvoyée par l'appel solutions_possibles(11).

8.

Recopier et compléter la fonction solutions_possibles suivante, qui prend en paramètre un score et qui renvoie la liste des possibilités d'obtenir ce score:

def solutions_possibles(score):

if score < 0:

resultat = []

elif score == 0:

resultat =...

else:

resultat = []

for coup in [..., 5,...]:

liste = solutions_possibles(score - coup)

for solution in liste:

solution.append(...)

resultat.append(...)

return resultat

Énoncé: Exercice 2 · Bac Numérique et Sciences Informatiques Polynésie 2024 (jour 1)

Corrigé

Corrigé proposé par AprenAI (non officiel)

1. Écrire une fonction possible_avec_penalites_seules qui prend en paramètre un score et qui renvoie True si le score passé en paramètre peut être marqué uniquement avec des pénalités.

Réponse : ```python def possible_avec_penalites_seules(score): return score >= 0 and score % 3 == 0 ```

2. Tableau : liste des solutions pour le score 2

Réponse : []

2. Tableau : nombre de solutions pour le score 2

Réponse : 0

2. Tableau : liste des solutions pour le score 3

Réponse : [0, 3]

2. Tableau : nombre de solutions pour le score 3

Réponse : 1

2. Tableau : liste des solutions pour le score 4

Réponse : []

2. Tableau : nombre de solutions pour le score 4

Réponse : 0

2. Tableau : liste des solutions pour le score 5

Réponse : [0, 5]

2. Tableau : nombre de solutions pour le score 5

Réponse : 1

2. Tableau : liste des solutions pour le score 6

Réponse : [0, 3, 6]

2. Tableau : nombre de solutions pour le score 6

Réponse : 1

Les réponses des 10 questions restantes et l’explication pas à pas sont réservées aux membres Premium. Premium

Résous-le ici : correction automatique, indices et corrigé détaillé.

‹ Exercice 2 - Récursivité · Polynésie 2025 (jour 1) · Exercice 1 · Polynésie 2022 (jour 1) ›

Plus d’exercices de Récursivité