Partage
  • Partager sur Facebook
  • Partager sur Twitter

Incompréhension d'une fonction récursive en SCILAB

Sujet résolu
    17 février 2021 à 17:22:27

    Bonjour,

    Nous étudions actuellement le langage "SCILAB", dans le programme ci-dessous il y a une fonction récursive que je ne comprends pas.

    quand je lance le programme, un exemple pour n = 8 et k = 2 je vais obtenir 28.

    Je ne comprends pas d'où vient ce résultat, à vrai dire c'est le "c=fct1(n-1,k-1)+fct1(n-1,k);" qui me chiffonne.


    Merci de potentiellement m'éclairer !!

    -
    Edité par PqPas 17 février 2021 à 17:24:08

    • Partager sur Facebook
    • Partager sur Twitter
      17 février 2021 à 19:02:24

      la récursivité ça consiste à rappeler la fonction elle-même avec une/des valeurs différentes pour résoudre le problème.

      donc tu appelles fct1 avec les valeurs 7 et 1 et tu additionnera le résultat avec le résultat de fct1 appelé avec 7 et 2

      et ainsi de suite, jsuqu'à ce que tu atteignes les c=1 ou c=0 et ensuite, on remonte les appels en sens inverse

      • Partager sur Facebook
      • Partager sur Twitter
        17 février 2021 à 20:34:36

        umfred a écrit:

        la récursivité ça consiste à rappeler la fonction elle-même avec une/des valeurs différentes pour résoudre le problème.

        donc tu appelles fct1 avec les valeurs 7 et 1 et tu additionnera le résultat avec le résultat de fct1 appelé avec 7 et 2

        et ainsi de suite, jusqu'à ce que tu atteignes les c=1 ou c=0 et ensuite, on remonte les appels en sens inverse


        Merci de ta réponse, je connaissais le principe des fonctions récursives.. mais celle-là est compliquée vu qu'on fait appelle à la fonction deux fois... donc c'est immense non? j'arrive pas à visualiser la chose en fait.. (peut-être aussi parce que j'suis pas imaginatif ou juste con)

        Bon suite à pas mal d'acharnement sur ce maudit exercice j'ai enfin réussis à me faire une visualisation !! (désolé pour la qualité de mon paint mdr, si quelqu'un à ce problème un jour on ne sait jamais ! :)

        -
        Edité par PqPas 17 février 2021 à 21:17:45

        • Partager sur Facebook
        • Partager sur Twitter
          17 février 2021 à 23:51:31

          Salut,

          Même en regardant l'arbre, ça peut être compliquée de comprendre ce que fait la fonction. En fait, il s'agit de la formule de Pascal pour calculer un coefficient binomial.

          Pour les calculer on pourrait aussi utiliser la formule (k parmi n) = n/k * (k parmi (n - 1)).

          • Partager sur Facebook
          • Partager sur Twitter
          Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs
            18 février 2021 à 3:52:09

            yo@n97one a écrit:

            Salut,

            Même en regardant l'arbre, ça peut être compliquée de comprendre ce que fait la fonction. En fait, il s'agit de la formule de Pascal pour calculer un coefficient binomial.

            Pour les calculer on pourrait aussi utiliser la formule (k parmi n) = n/k * (k parmi (n - 1)).


            Salut, merci de ta réponse, effectivement c'est ça je viens de regarder, je vais l'ajouter à mon tp pour que mon schéma désastreux soit plus clair ahah.

            Après c'était assez dur de schématiser mes pensées, j'aurais pu le faire plus proprement mais c'était pas le plus important, merci quand même de ton aide.

            • Partager sur Facebook
            • Partager sur Twitter

            Incompréhension d'une fonction récursive en SCILAB

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown