Quiz interactif généré par IA à partir du document : 02.recursivite.pdf
Question 1 sur 10 20:00
[{"id":61367,"question":"Quelle est la condition essentielle pour qu'une fonction récursive termine correctement ?","option_a":"Un cas de base bien défini","option_b":"Une boucle infinie","option_c":"L'utilisation de variables globales","option_d":"Un appel à une autre fonction","option_e":"","option_f":"","bonne_reponse":"a","explication":"Un cas de base est indispensable pour arrêter la récursion. Sans lui, la fonction s'appelle indéfiniment jusqu'à un débordement de pile (stack overflow).","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0,"_debug_answer_data_type":"string","_debug_answer_data_preview":"{\"correct\": \"a\", \"options\": {\"a\": \"Un cas de base bien défini\", \"b\": \"Une boucle infinie\", \"c\": \"L'","_debug_options_count":4},{"id":61368,"question":"La fonction récursive suivante calcule la factorielle de n : \u003Cbr\u003E fonction factorielle(n) \u003Cbr\u003E si n == 0 alors \u003Cbr\u003E retourner 1 \u003Cbr\u003E sinon \u003Cbr\u003E retourner n * factorielle(n-1) \u003Cbr\u003E Quel est le cas de base ?","option_a":"Vrai","option_b":"Faux","option_c":"","option_d":"","option_e":"","option_f":"","bonne_reponse":"a","explication":"Le cas de base est bien défini par la condition 'si n == 0 alors retourner 1'. C'est cette condition qui stoppe la récursion.","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0,"_debug_answer_data_type":"string","_debug_answer_data_preview":"{\"correct\": \"a\", \"options\": {\"a\": \"Vrai\", \"b\": \"Faux\", \"c\": \"\", \"d\": \"\"}}","_debug_options_count":4},{"id":61369,"question":"Quel problème peut survenir si une fonction récursive n'a pas de cas de base ?","option_a":"Un débordement de pile (stack overflow)","option_b":"Une erreur de syntaxe","option_c":"Un résultat incorrect","option_d":"Une exécution plus rapide","option_e":"","option_f":"","bonne_reponse":"a","explication":"L'absence de cas de base entraîne une récursion infinie, consommant toute la mémoire de la pile d'appels jusqu'à un crash.","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0,"_debug_answer_data_type":"string","_debug_answer_data_preview":"{\"correct\": \"a\", \"options\": {\"a\": \"Un débordement de pile (stack overflow)\", \"b\": \"Une erreur de sy","_debug_options_count":4},{"id":61370,"question":"La récursivité est particulièrement adaptée pour résoudre quel type de problèmes ?","option_a":"Les problèmes nécessitant des divisions successives","option_b":"Les calculs de sommes itératives","option_c":"Les parcours d'arbres ou de graphes","option_d":"Les opérations sur des tableaux triés","option_e":"","option_f":"","bonne_reponse":"c","explication":"La récursivité est idéale pour les structures hiérarchiques comme les arbres ou les graphes, où chaque nœud peut être traité comme un sous-problème.","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0,"_debug_answer_data_type":"string","_debug_answer_data_preview":"{\"correct\": \"c\", \"options\": {\"a\": \"Les problèmes nécessitant des divisions successives\", \"b\": \"Les","_debug_options_count":4},{"id":61371,"question":"La complexité temporelle de la fonction récursive de Fibonacci (sans optimisation) est :","option_a":"Vrai","option_b":"Faux","option_c":"","option_d":"","option_e":"","option_f":"","bonne_reponse":"a","explication":"La complexité est exponentielle O(2^n) car chaque appel génère deux appels récursifs supplémentaires, sans mémoïsation.","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0,"_debug_answer_data_type":"string","_debug_answer_data_preview":"{\"correct\": \"a\", \"options\": {\"a\": \"Vrai\", \"b\": \"Faux\", \"c\": \"\", \"d\": \"\"}}","_debug_options_count":4},{"id":61372,"question":"Quelle technique permet d'optimiser une fonction récursive en évitant les calculs redondants ?","option_a":"L'utilisation de pointeurs","option_b":"La mémoïsation","option_c":"La conversion en itération","option_d":"L'ajout de paramètres supplémentaires","option_e":"","option_f":"","bonne_reponse":"b","explication":"La mémoïsation consiste à stocker les résultats des sous-problèmes déjà résolus pour éviter de les recalculer, réduisant ainsi la complexité.","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0,"_debug_answer_data_type":"string","_debug_answer_data_preview":"{\"correct\": \"b\", \"options\": {\"a\": \"L'utilisation de pointeurs\", \"b\": \"La mémoïsation\", \"c\": \"La co","_debug_options_count":4},{"id":61373,"question":"Parmi ces exemples, lequel n'est PAS un cas classique de récursivité ?","option_a":"Calcul de la factorielle","option_b":"Tri par fusion (merge sort)","option_c":"Recherche linéaire dans un tableau","option_d":"Parcours d'un arbre binaire","option_e":"","option_f":"","bonne_reponse":"c","explication":"La recherche linéaire est typiquement implémentée de manière itérative. Les autres exemples sont des applications classiques de la récursivité.","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0,"_debug_answer_data_type":"string","_debug_answer_data_preview":"{\"correct\": \"c\", \"options\": {\"a\": \"Calcul de la factorielle\", \"b\": \"Tri par fusion (merge sort)\", \"c","_debug_options_count":4},{"id":61374,"question":"La récursivité est-elle toujours plus lisible que l'itération pour un même problème ?","option_a":"Vrai","option_b":"Faux","option_c":"","option_d":"","option_e":"","option_f":"","bonne_reponse":"b","explication":"Pas toujours. Pour des problèmes simples ou des boucles imbriquées, l'itération peut être plus lisible et plus efficace.","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0,"_debug_answer_data_type":"string","_debug_answer_data_preview":"{\"correct\": \"b\", \"options\": {\"a\": \"Vrai\", \"b\": \"Faux\", \"c\": \"\", \"d\": \"\"}}","_debug_options_count":4},{"id":61375,"question":"Quel est l'avantage principal de la récursivité pour un problème comme les tours de Hanoï ?","option_a":"Une exécution plus rapide","option_b":"Une solution plus concise et intuitive","option_c":"Une complexité spatiale réduite","option_d":"Une compatibilité avec tous les langages","option_e":"","option_f":"","bonne_reponse":"b","explication":"La récursivité permet de décrire la solution de manière élégante et proche du raisonnement humain, en divisant le problème en sous-problèmes similaires.","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0,"_debug_answer_data_type":"string","_debug_answer_data_preview":"{\"correct\": \"b\", \"options\": {\"a\": \"Une exécution plus rapide\", \"b\": \"Une solution plus concise et i","_debug_options_count":4},{"id":61376,"question":"Si une fonction récursive a une complexité spatiale de O(n), que représente n ?","option_a":"Le nombre total d'appels récursifs","option_b":"La profondeur maximale de la pile d'appels","option_c":"Le nombre de paramètres de la fonction","option_d":"La taille des données en entrée","option_e":"","option_f":"","bonne_reponse":"b","explication":"La complexité spatiale O(n) correspond à la profondeur de la pile d'appels, qui dépend de la taille du problème (ex: n dans une factorielle).","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0,"_debug_answer_data_type":"string","_debug_answer_data_preview":"{\"correct\": \"b\", \"options\": {\"a\": \"Le nombre total d'appels récursifs\", \"b\": \"La profondeur maximal","_debug_options_count":4}]
Chargement...
Cliquez sur une réponse pour valider
Les options de réponse ne sont pas disponibles pour cette question.