Java : Forme récursive terminale
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

Java : Forme récursive terminale



  1. #1
    invitef131abfb

    Java : Forme récursive terminale


    ------

    bonjour à tous,

    Je révises mes examens en ce moment et je bloque sur un exo :

    Code:
       public static int ibo (int n){
          if (n<=0)return 1;
          if (n==1)return 3;
          if (n==2)return 4;
          return ibo(n-3)+ibo(n-2);
       }
    Je ne sais pas ce qu'il calcule précisément,
    Je dois convertir ce code en forme récursive terminale puis en faire une version itérative sans pile. Or, la seule forme terminale que j'arrive à approcher de près ou de loin est celle-ci :

    Code:
    public static int iboterm (int n) {
     return iboterm (int n,  0);
    }
    
    public static int iboterm (int n, int k){
          if (n<0)  return k;
          if (n==0) return iboterm(n-3,k+1);
          if (n==1) return iboterm (n-3,k+3);
          if (n==2) return iboterm (n-3,k+4);
          return iboterm (n-3,iboterm(n-2,k));
       }
    Ce qui me pose problème c'est l'appel récursif (iboterm (n-2,k)), je ne vois pas comment transformer la formule en quelque chose sous la forme (n,acc1, ...,)

    Si quelqu'un peut me donner un coup de main ce ne serait pas de refus,

    Cordialement,

    -----

  2. #2
    pm42

    Re : Java : Forme récursive terminale

    Citation Envoyé par rt2017 Voir le message
    Je ne sais pas ce qu'il calcule précisément,
    Une forme de suite de Finonacci à la louche.

    Citation Envoyé par rt2017 Voir le message
    Je dois convertir ce code en forme récursive terminale puis en faire une version itérative sans pile.
    Normalement, la méthode est dans ton cours et j'avoue que j'ai oublié puisque j'ai appris ce genre de trucs il y a 30 ans et que cela m'ennuyait déjà à l'époque, l'intérêt me semblant faible sauf pour les gens qui écrivent des optimiseurs de compilateurs...

    Si tu tapes "transform recursion to tail recursion" dans Google, StackOverflow grouille d'exemples et explications.
    Dernière modification par pm42 ; 25/05/2017 à 12h36.

Discussions similaires

  1. Domaine de definition d'une suite récursive
    Par invite9000a3f2 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 27/01/2016, 07h01
  2. fonction récursive
    Par invite6ebdfb3e dans le forum Mathématiques du collège et du lycée
    Réponses: 20
    Dernier message: 22/09/2013, 13h45
  3. fonction primitive-récursive
    Par invite56460777 dans le forum Mathématiques du supérieur
    Réponses: 16
    Dernier message: 06/06/2009, 05h30
  4. Equations différentielles avec conditions sous la forme d'un problème TERMINALE S
    Par invite6fbc4c25 dans le forum Mathématiques du collège et du lycée
    Réponses: 4
    Dernier message: 08/10/2006, 20h39
  5. fonction recursive
    Par hterrolle dans le forum Mathématiques du supérieur
    Réponses: 7
    Dernier message: 23/05/2006, 18h24