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 pour stocker une liste de combinaisons


Sujet :

Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Problème pour stocker une liste de combinaisons
    Bonjour,

    j'ai un projet à réaliser et dans celui-ci, je dois à un moment enregistrer les différentes combinaisons (k parmi n) dans une variable.

    J'ai donc cherché un code pour faire ceci. J'ai utilisé ce code-ci : http://www.developpez.net/forums/d42...-combinaisons/ , qui affiche la bonne liste des combinaisons mais je souhaiterai stocker cette liste et non pas l'afficher directement.

    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
    	static int[] liste = new int[7];
    	static ArrayList<int[]> listefinale = new ArrayList<int[]>();
     
    	public static void partition(int index, int p, int n) { // construction recursive des listes possibles
    		if (index >=p ) {
    			// la liste est construite -> FIN 
    			System.out.println(Arrays.toString(liste));
    			listefinale.add(liste);
    			return;
    		}
     
    		// ajoute un nouvel element candidat dans la liste
    		// - sans ordre -> candidat: tous les elements
    		// - avec ordre -> candidat: seulement les elements supérieurs au précédant
     
    		int start=0;
    		if (index>0) start=liste[index-1]+1;
     
    		for(int i=start;i<n;i++) {
    			liste[index]=i;
    			partition(index+1, p, n);
    		}
    	}
    Par exemple, pour 2 parmi 4, la liste affichée est bien
    [0, 1, 0, 0, 0, 0, 0]
    [0, 2, 0, 0, 0, 0, 0]
    [0, 3, 0, 0, 0, 0, 0]
    [1, 2, 0, 0, 0, 0, 0]
    [1, 3, 0, 0, 0, 0, 0]
    [2, 3, 0, 0, 0, 0, 0]
    mais je n'arrive pas à la stocker !

    Le programme fait ensuite un dernier parcours et met dans la liste (cela ne me gêne pas, je n'ai qu'à arrêter la boucle avant pour laisser [2, 3, 0, 0, 0, 0, 0]) :
    [3, 3, 0, 0, 0, 0, 0]

    En effet, le contenu de listefinale se remplace à chaque fois par la dernière liste, voici le contenu de listefinale à la fin :
    [3, 3, 0, 0, 0, 0, 0]
    [3, 3, 0, 0, 0, 0, 0]
    [3, 3, 0, 0, 0, 0, 0]
    [3, 3, 0, 0, 0, 0, 0]
    [3, 3, 0, 0, 0, 0, 0]
    [3, 3, 0, 0, 0, 0, 0]

    Donc si je supprime la liste inutile ([3, 3, 0, 0, 0, 0, 0]), il m'affiche uniquement la dernière liste, les 5 premières sont aussi remplacés, ce que je ne veux pas :
    [2, 3, 0, 0, 0, 0, 0]
    [2, 3, 0, 0, 0, 0, 0]
    [2, 3, 0, 0, 0, 0, 0]
    [2, 3, 0, 0, 0, 0, 0]
    [2, 3, 0, 0, 0, 0, 0]
    [2, 3, 0, 0, 0, 0, 0]

    Quelqu'un pourrait-il m'aider avec ce petit problème, ça fait quelques heures que je cherche en vain

    Merci

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Points : 417
    Points
    417
    Par défaut
    remplace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static void partition(int index, int p, int n) {
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static int[] partition(int index, int p, int n) {
    puis au moment ou la variable liste a le contenu que tu souhaite (après la boucle for à priori), tu fais

    Tu peux donc récupérer ta "liste" en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int[] maListe = partition(index, p, n);

Discussions similaires

  1. Probléme pour charger une List dans un s:select
    Par Elthriel dans le forum Struts 2
    Réponses: 10
    Dernier message: 17/07/2008, 11h21
  2. problème pour alimenter une liste
    Par mawelle dans le forum IHM
    Réponses: 2
    Dernier message: 31/03/2008, 11h30
  3. problème pour appeler une liste de catégorie
    Par minie dans le forum Struts 1
    Réponses: 11
    Dernier message: 29/05/2007, 16h39
  4. Problème pour afficher une liste déroulante
    Par Oli_Ifre dans le forum Langage
    Réponses: 2
    Dernier message: 18/04/2007, 09h11
  5. Problème pour positionner une liste déroulante
    Par ouckileou dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 30/09/2004, 01h05

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