NSI récursivité

Ce paquet de cartes de révision couvre les notions fondamentales de la récursivité en NSI, y compris les définitions, les exemples, les types de récursivité et les cas d'utilisation.

GabrielDavid9l·20 fiches·20 questions
baccomputer_scienceprogramming
0
Je sais
1 / 20
0
J'apprends
Recto

Qu'est-ce que la récursivité ?

Appuyez pour retourner
Verso

La récursivité est une méthode de résolution de problèmes où la solution dépend de solutions plus petites du même problème.

Appuyez pour retourner
Je sais
J'apprends

Quiz(20 questions)

Question 1 sur 20

1. Qu'est-ce qui caractérise une fonction récursive ?

Termes dans ce set(20)

Notions de base sur la récursivité(12)

Qu'est-ce que la récursivité ?

La récursivité est une méthode de résolution de problèmes où la solution dépend de solutions plus petites du même problème.

Exemple de fonction récursive simple

Fonction Factorielle : ```python def fact(n): if n == 0: return 1 return n * fact(n - 1) ```

Vrai ou Faux : La récursivité est toujours plus efficace que l'itération.

Faux : La récursivité peut être moins efficace et consommer plus de mémoire en raison de l'empilement des appels fonctionnels.

Complétez : Un appel récursif doit toujours avoir une condition ________.

de terminaison pour éviter une boucle infinie.

Quelles sont les parties d'une fonction récursive ?

- Cas de base - Appel récursif - Solution au problème

Qu'est-ce qu'un cas de base ?

Le cas de base est la condition qui termine les appels récursifs, empêchant une récursion infinie.

Comparer : Récursivité vs Itération

- Récursivité : Utilise les appels de fonction - Itération : Utilise des boucles

Cause → Effet : Pourquoi utiliser la récursivité ?

Cause : Problèmes de structure imbriquée. Effet : Simplification du code et meilleure lisibilité.

Quel est l'effet d'une récursion excessive ?

Une récursion excessive peut entraîner un débordement de pile (stack overflow).

Exemple de calcul de Fibonacci récursif

```python def fib(n): if n <= 1: return n return fib(n - 1) + fib(n - 2) ```

Définissez la récursivité terminale.

La récursivité terminale est un type de récursivité où l'appel récursif est la dernière opération dans la fonction.

Vrai ou Faux : La récursivité peut souvent rendre le code plus compact.

Vrai : Elle peut réduire le nombre de lignes de code par rapport à la version itérative.

Types de récursivité(8)

Récursivité directe → ?

Une fonction s'appelle elle-même. Exemple : la fonction factorielle où n!=n×(n−1)!\displaystyle n! = n \times (n-1)!.

Vrai ou faux : Récursivité indirecte implique deux fonctions.

Vrai. Une fonction A appelle une fonction B, qui appelle à son tour A.

Différence entre récursivité terminale et non terminale ?

Récursivité terminale : appel récursif est la dernière instruction. Non terminale : il y a d'autres instructions après.

Complétez : Récursivité _______ est plus efficace pour optimiser la mémoire.

terminal.

Exemple de récursivité indirecte.

Fonction A appelle B, B appelle A. Utilisé dans certains algorithmes comme le tri.

Qu'est-ce que la récursivité terminale ?

C'est lorsque l'appel récursif est la dernière instruction de la fonction, permettant une optimisation (tail call optimization).

Comparaison : Récursivité directe vs indirecte.

Directe : une seule fonction. Indirecte : plusieurs fonctions interconnectées.

Récursivité terminale : avantages ?

- Économie de mémoire - Évite les débordements de pile - Optimisation possible par le compilateur

Questions dans ce set(20)

1. Qu'est-ce qui caractérise une fonction récursive ?

A.Elle s'appelle elle-même.
B.Elle ne peut pas utiliser de variables.
C.Elle doit toujours retourner un nombre entier.
D.Elle ne peut pas avoir de conditions.

2. Quelle affirmation décrit correctement la récursivité directe ?

A.Une fonction s'appelle elle-même.
B.Deux fonctions s'appellent mutuellement.
C.Elle ne peut pas être utilisée pour le calcul.
D.Elle nécessite un tableau en entrée.

3. Quel est l'élément essentiel d'une fonction récursive pour éviter une boucle infinie ?

A.Un appel récursif.
B.Une condition de terminaison.
C.Une variable globale.
D.Une boucle for.

4. Vrai ou faux : La récursivité indirecte utilise toujours au moins deux fonctions.

A.Vrai
B.Faux
C.Parfois vrai
D.Cela dépend du langage

5. Lequel des éléments suivants est un exemple de cas de base ?

A.n == 0 dans la fonction factorielle.
B.La fonction s'appelle plusieurs fois.
C.Une erreur de dépassement de pile.
D.Une boucle infinie.

6. Quelle est la différence entre récursivité terminale et récursivité non terminale ?

A.L'appel récursif est la dernière instruction dans terminale.
B.Terminale nécessite plus de mémoire.
C.Non terminale n'utilise jamais d'appels récursifs.
D.Les deux types sont identiques.

7. Quel est un inconvénient potentiel de la récursivité ?

A.Consommation excessive de mémoire.
B.Elle est toujours plus rapide que l'itération.
C.Elle rend toujours le code plus lisible.
D.Elle ne peut pas être utilisée pour des problèmes simples.

8. Complétez la phrase : La récursivité _______ est plus adaptée pour réduire la consommation de mémoire.

A.terminale
B.non terminale
C.indirecte
D.directe

9. Quelle est la différence fondamentale entre récursivité et itération ?

A.La récursivité utilise des appels de fonction, l'itération utilise des boucles.
B.La récursivité ne peut pas prendre des paramètres.
C.L'itération est plus facile à comprendre.
D.La récursivité est plus lente que l'itération.

10. Quel est un exemple de récursivité indirecte ?

A.Fonction A appelle B, puis B appelle A.
B.Une fonction récursive simple qui calcule n!
C.Un algorithme de recherche binaire.
D.Un tri par insertion.

11. Quel est l'effet de la récursivité terminale ?

A.Elle optimise l'utilisation de la mémoire.
B.Elle n'utilise jamais d'appels récursifs.
C.Elle rend le code moins lisible.
D.Elle nécessite plus de conditions de terminaison.

12. Qu'est-ce qui définit la récursivité terminale ?

A.L'appel récursif est la dernière instruction exécutée.
B.Elle ne peut pas être optimisée.
C.Elle nécessite des paramètres supplémentaires.
D.Elle est toujours plus lente que la récursivité non terminale.

13. Quelle est une application appropriée de la récursivité ?

A.Calculer des suites numériques comme Fibonacci.
B.Gérer des tableaux de manière itérative.
C.Exécuter une fonction une seule fois.
D.Travailler uniquement avec des données statiques.

14. Sur quoi les fonctions utilisant la récursivité directe se basent-elles ?

A.Sur un seul appel récursif.
B.Sur des appels mutuels entre plusieurs fonctions.
C.Sur des itérations en boucle.
D.Sur des tableaux de grande taille.

15. Qu'est-ce qui se produit lors d'une récursion excessive ?

A.Débordement de pile.
B.Optimisation de la mémoire.
C.Amélioration des performances.
D.Augmentation des appels de fonction.

16. Quels sont les avantages de la récursivité terminale ?

A.Économie de mémoire et évitement des débordements de pile.
B.Simplicité et facilité de compréhension.
C.Nécessite toujours moins de lignes de code.
D.Ne peut pas être implémentée dans tous les langages.

17. Quelle affirmation est vraie concernant la récursivité ?

A.Elle peut rendre le code plus compact.
B.Elle doit toujours être utilisée.
C.Elle n'est jamais plus efficace que l'itération.
D.Elle nécessite des variables globales.

18. Lequel des éléments suivants n'est PAS un élément d'une fonction récursive ?

A.Cas de base.
B.Appel récursif.
C.Boucle for.
D.Solution au problème.

19. Que représente la fonction suivante : `def fact(n): if n == 0: return 1 return n * fact(n - 1)` ?

A.La fonction factorielle.
B.Une fonction de somme.
C.Une fonction d'itération.
D.Une fonction de moyenne.

20. Quel est le résultat de `fact(5)` dans la fonction factorielle donnée ?

A.120
B.60
C.24
D.5

Sets associés

Créez votre propre set d'étude

Téléchargez un PDF, collez vos notes ou décrivez un sujet – l'IA génère des fiches, des quiz et plus en quelques secondes.

Mis en avant sur