IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

problème algorithme récursif


Sujet :

Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 12
    Points : 5
    Points
    5
    Par défaut problème algorithme récursif
    Bonjour à tous, j'ai un problème ac un algorithme récursif.
    malgré le fait que je le réduise à sa plus simple expression, j'ai toujours une erreur du type "stackOverflow error"

    voici le code


    static void conversion(int i){

    if ( i != 0)

    { conversion(i--) }

    }



    qqun pourrait il me dire quel est le problème?? j'ai pourtant réalisé des algorithmes récursfifs de recherche dichotomique, je n'ai jamais eu ce problème! merci d'avance

  2. #2
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    ça dépend de ton i de départ, à mon avis tu dois lancer ta procédure sur un nombre négatif

    pour tester si c'est ça, fait un
    au lieu de
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    j'ai déjà essayé mais celà ne change rien. Merci qd mm pr ton aide =)

  4. #4
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    sinon c'est que ton i de départ est trop grand, essaie d'allouer plus de mémoire à l'exécution pour voir
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    càd que ça fonctionne lorsque i vaut 0.
    à partir de 1 ça ne fonctionne plus. C'est quand meme frustrant c qqch de basique je ne comprends pas

  6. #6
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut Re: problème algorithme récursif
    Citation Envoyé par seb888
    static void conversion(int i){

    if ( i != 0)

    { conversion(i--) }

    }
    bonsoir,

    dans ton cas, il s'agit d'une récursion terminale, qui se transforme en boucle aisément.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    tout à fait d'accord. Je ne peux malheureusement pas modifier la question lors de mon examen si on me demande de resoudre le probleme en utilisant la récursivité

  8. #8
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    je suis aussi bien d'accord sinon j'ai remplacé i-- par i-1 et ça a l'air de marcher
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    en effet! celà fonctionne correctement avec i-1 ...

    eh bien un tout grand merci pour votre aide en tout cas!!

  10. #10
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    merci à toi aussi parce que là du coup ça me résout le problème que j'avais dans un de mes programmes et j'avais pas du tout pensé à ça... ( )

    n'oublie pas résolu
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  11. #11
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 641
    Points
    7 641
    Par défaut
    Salut,

    Pour info:

    n'est pas un appel récursif...
    En effet, la valeur du paramètre passé n'est pas i-1, mais i, la décrémentation se faisant après le passage de paramètre. C'est pourquoi pas mal de cours précisent bien la différence entre --i (on décrémente, puis on utilise la valeur) et i-- (on utilise la valeur, puis on décrémente).

    Pour illustrer ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    public class recur {
     
    	public static void main(String[] args) {
    		System.out.println("Conversion avec i--");
    		conversion1(10,0);
    		System.out.println("Conversion avec --i");
    		conversion2(10,0);
    	}
     
    	static void conversion1(int i,int compt){
    		if ( i != 0)
    			{ 
    			System.out.println("i="+i+", compt="+compt); 
    			if (compt<10) conversion1(i--,compt+1);
    			 }
    	}
     
    	static void conversion2(int i,int compt){
    		if ( i != 0)
    			{ 
    			System.out.println("i="+i+", compt="+compt); 
    			if (compt<10) conversion2(--i,compt+1);
    			 }
    	}
    }
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    merci pour ces précisions elles me sont fort utiles! je n'avais pas connaissance de l'existence des instructions --i

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. définition algorithme récursif et problème d'optimisation
    Par logo98 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 10/06/2009, 16h07
  2. Problème algorithme de comptage
    Par alex4444 dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 02/02/2008, 10h08
  3. Algorithme récursif de calcul de moyenne
    Par kromartien dans le forum Mathématiques
    Réponses: 25
    Dernier message: 23/10/2007, 11h05
  4. [SQL] Tree : algorithme récursif
    Par Fabouney dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/08/2007, 15h39
  5. [Tableaux] Problème algo récursif
    Par Invité dans le forum Langage
    Réponses: 38
    Dernier message: 03/10/2006, 15h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo