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

avec Java Discussion :

Permutation avec une fonction récursive


Sujet :

avec Java

  1. #1
    Membre régulier Avatar de nypahe
    Inscrit en
    Novembre 2006
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 174
    Points : 85
    Points
    85
    Par défaut Permutation avec une fonction récursive
    Bonsoir,
    Je souhaite construire, les ensembles suivant avec un algo récursif:
    avec pour entrer: String str = "12 13 14 23 24 34";
    Toutes conbinaisons à 3 elts sans répétition par exple (12 13 14); (13 14 23)...
    et de 4 elts toutes les combinaison sans repetition d'ensembe: par exple(12 13 14 23), (14 23 24 34)
    voici un code, la boucle while tourne de maniere infini, alors qu'il n 'a plus de next.
    Merci pour votre aide
    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
    public static LinkedList<String> permutationRec(String s, int indice, int n){
    		LinkedList<String> permutation = new LinkedList<String>();
    		 String str = s.substring(indice, s.length());
    		 if(str.length() == n){
    			 permutation.add(str);
    		 }
    		 else{
    			 LinkedList<String> sub = permutationRec(s, indice+n, n);
    			 Iterator<String> it = sub.iterator();
    			 int i = 0;
        ????         while(it.hasNext()) {
                	 String prefixe = sub.get(i);
                	 String suffixe = "";
                	 String temp = prefixe + str.substring(0,n) + suffixe;
                	 permutation.add(temp);
                	 i ++;
                   }
     
    		 }
     
    		return permutation;
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public static void main(String[] args) {
    String str = "121214232434";
    LinkedList<String> res = permutationRec(str, 0,2);
    	        Iterator<String> it = res.iterator();
    	        while(it.hasNext()) {
    	            System.out.println(it.next());
    	        }
    }

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Points : 909
    Points
    909
    Par défaut
    Citation Envoyé par nypahe Voir le message
    voici un code, la boucle while tourne de maniere infini, alors qu'il n 'a plus de next.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    LinkedList<String> sub = permutationRec(s, indice+n, n);
    Iterator<String> it = sub.iterator();
    while(it.hasNext()) {
       // aucune action sur l'itérateur it
    }
    Si tu n'effectues aucune action sur l'itérateur (par exemple, avancer d'un cran dans la liste avec it.next()), celui-ci va toujours pointer sur le premier élément de la liste, et donc va toujours renvoyer true.

    Ce qui est curieux, c'est que dans ta boucle tu utilises un indice i.
    Soit tu parcours ta liste avec un indice et la méthodes get(i), soit tu parcours ta liste avec un itérateur et la méthode next(), mais évite de mélanger les deux.

Discussions similaires

  1. Jeu du plus ou moins avec une fonction récursive
    Par Pimousse22 dans le forum C
    Réponses: 6
    Dernier message: 29/10/2014, 21h26
  2. Réponses: 7
    Dernier message: 15/07/2011, 15h22
  3. Réponses: 3
    Dernier message: 03/03/2010, 19h05
  4. Retourner une valeur avec une fonction
    Par stephtbest dans le forum ASP
    Réponses: 4
    Dernier message: 31/10/2003, 16h37
  5. [VBA-E] avec une fonction value
    Par laas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/11/2002, 13h22

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