Connexion
S'inscrire
Actualités
Quoi de neuf
Activités générales
Auteurs
Forums
Nouveaux messages
Rechercher un forum
Quoi de neuf
Nouveaux messages
Nouveaux messages de profil
Activités générales
Membres
Membres inscrits
Visiteurs actuels
Nouveaux messages de profil
Rechercher dans les messages des profils
Teams
Créé ton équipe
Quoi de neuf ?
Nouveaux messages
Rechercher un forum
Menu
Connexion
S'inscrire
Install the app
Install
Forums
Forums généraux
Informatique
Développement
Questions, aides et recherches
Récursion terminal
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
Vous utilisez un navigateur non à jour ou ancien. Il ne peut pas afficher ce site ou d'autres sites correctement.
Vous devez le mettre à jour ou utiliser un
navigateur alternatif
.
Répondre à la discussion
Message
<blockquote data-quote="Paul GTP" data-source="post: 7380409" data-attributes="member: 315249"><p>Je pense que tu as mal compris ton cours <img src="/data/assets/smilies/mmh.gif" class="smilie" loading="lazy" alt=":mmh:" title="Mmh :mmh:" data-shortname=":mmh:" /></p><p>Une fonction récusrive terminale c'est une fonction qui appelle une autre fonction sans effectuer de calcul derrière <img src="/data/assets/smilies/joueur.gif" class="smilie" loading="lazy" alt=":p" title="Joueur :p" data-shortname=":p" /></p><p></p><p>Ta fonction bo retourne ceci:</p><p>[CODE]</p><p>return 3*bo(n-3) + bo(n-2);</p><p>[/CODE]</p><p>Elle n'est donc pas terminale car en plus de bo("quelque chose"), tu fais des opérations. Elle aurait pu être terminale si ça le résultat avait été ça par exemple</p><p>[CODE]</p><p>return bo(n-1);</p><p>[/CODE]</p><p>Car il n'y a qu'un seul appel de fonction dans ton return et qu'il n'y a aucun calcul derrière... ce qui est le cas dans ton boTerm (qui, comme son nom l'indique, est une fonction récursive terminale)</p><p>[CODE]</p><p>return boTerm(n-1,3*b3+b2,b1,b2);</p><p>[/CODE]</p><p>Il n'y a pas de calculs, tu return juste la fonction.</p><p></p><p>Il n'y a pas, à ma connaissance, moyen de passer d'une fonction récursive non terminale à une fonction récursive terminale sans trop comprendre pourquoi.</p><p>Il suffit de regarde étape par étape ce que fait l'algorithme et faire en sorte qu'il le soit.</p><p></p><p>En l'occurrence, il faut justement comprendre ce que fais ta fonction pour comprendre comme la rendre terminale...</p><p>Certains peuvent sans doute y arriver sans mais je trouve ça plus facile de d'abord comprendre et après "convertir" <img src="/data/assets/smilies/joueur.gif" class="smilie" loading="lazy" alt=":p" title="Joueur :p" data-shortname=":p" /></p><p></p><p>Bonne chance <img src="/data/assets/smilies/espion.gif" class="smilie" loading="lazy" alt=":espion:" title="Espion :espion:" data-shortname=":espion:" /></p></blockquote><p></p>
[QUOTE="Paul GTP, post: 7380409, member: 315249"] Je pense que tu as mal compris ton cours :mmh: Une fonction récusrive terminale c'est une fonction qui appelle une autre fonction sans effectuer de calcul derrière :p Ta fonction bo retourne ceci: [CODE] return 3*bo(n-3) + bo(n-2); [/CODE] Elle n'est donc pas terminale car en plus de bo("quelque chose"), tu fais des opérations. Elle aurait pu être terminale si ça le résultat avait été ça par exemple [CODE] return bo(n-1); [/CODE] Car il n'y a qu'un seul appel de fonction dans ton return et qu'il n'y a aucun calcul derrière... ce qui est le cas dans ton boTerm (qui, comme son nom l'indique, est une fonction récursive terminale) [CODE] return boTerm(n-1,3*b3+b2,b1,b2); [/CODE] Il n'y a pas de calculs, tu return juste la fonction. Il n'y a pas, à ma connaissance, moyen de passer d'une fonction récursive non terminale à une fonction récursive terminale sans trop comprendre pourquoi. Il suffit de regarde étape par étape ce que fait l'algorithme et faire en sorte qu'il le soit. En l'occurrence, il faut justement comprendre ce que fais ta fonction pour comprendre comme la rendre terminale... Certains peuvent sans doute y arriver sans mais je trouve ça plus facile de d'abord comprendre et après "convertir" :p Bonne chance :espion: [/QUOTE]
Insérer les citations…
Vérification
Publier la réponse
Forums
Forums généraux
Informatique
Développement
Questions, aides et recherches
Récursion terminal
Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
Acceptez
En savoir plus.…
Haut