Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    24

    [JAVA] Generare Permutazioni

    Salve a tutti tra i vari esercizi che ho trovato in rete per provare a vedere se sto cominciando a capire java ne ho trovato uno che chiede la creazione di tutte le permutazioni di un gruppo di parole in maniera ricorsiva. In pratica chiede di leggere un file testuale in ingresso contenente un numero di parole(e questo l'ho fatto è abbastanza banale) creare poi tutte le permutazioni possibili (qui c'è il problema) e scegliere un numero a caso di queste permutazioni e mostrarle a video(e anche questo è abbastanza semplice e sono riuscito a farlo)
    l'algoritmo che ho scritto prendendo spunto da vari suggerimenti trovati in rete è queso
    codice:
    import java.util.Scanner;
    import java.util.ArrayList;
    
    public class GeneratorePermutazioni{
        
        private ArrayList<String> insiemeParole;
        
        public GeneratorePermutazioni(ArrayList<String> unInsiemeParole){
            insiemeParole=unInsiemeParole;
        }
        public ArrayList< ArrayList<String> > creaPermutazioni(){
            ArrayList<ArrayList<String>> permutazioni=new ArrayList<ArrayList<String>>(); 
            if(insiemeParole.size()==0){
                permutazioni.add(insiemeParole);
                    return permutazioni;
            }
            for(int i = 0; i<insiemeParole.size(); i++){
                String parola = insiemeParole.get(i);
                ArrayList<String> sottoParole =new ArrayList();
                for (String p : insiemeParole){
                    if(!(parola.equals(p)))
                        sottoParole.add(p);
                }
                GeneratorePermutazioni generaSottoPermutazioni = new GeneratorePermutazioni(sottoParole); 
                ArrayList <ArrayList<String>>sottoPermutazioni =generaSottoPermutazioni.creaPermutazioni();
                 
                for (ArrayList<String> l : sottoPermutazioni){
                    l.add(1,parola);
                    permutazioni.add(l);            
                 }
            }
            return permutazioni;        
        }
    }
    secondo il mio modesto parere dovrebbe funzionare ma ovviamente nn lo fa...
    se cerco di creare un vettore con tutte le permutazioni con il codice sopra mi solleva un eccezione di tipo IndexOfBoundException
    qualche idea su come posso fare???

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    24
    nessuna idea

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.