Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [java]permutazioni con ripetizione

    ciao
    codice:
     public static void main(String[] args) {
    
            String set = "abc";
            
            String v="";
            int numSet=0;
            do
            {
                numSet++;
    
                String app = null;
                if(numSet == 1)
                {
                    for(int i=0 ;i<set.length() ;i++)
                    {
                        v="";
                        v += set.substring(i, i+1);
                        System.out.println( v);
                        /* for(int j=0;j<3;j++)
                         {
                          v+= set.substring(j, j+1);
                            System.out.println(v);
                            v = set.substring(i, i+1);
                        }*/
                    }
                }
                else if(numSet == 2)
                {
                    for(int i=0 ;i<set.length();i++)
                    {
                        v="";
                        v += set.substring(i, i+1);
                        //System.out.println("primo valore v: " + v);
                         for( int j=0;j<set.length();j++)
                         {
                          v+= set.substring(j, j+1);
                            System.out.println(v);
                            v = set.substring(i, i+1);
                        }
                    }
                }
                else if(numSet == 3)
                {
                    for(int i=0 ;i<set.length();i++)
                    {
                        v="";
                        v += set.substring(i, i+1);
                        //System.out.println("primo valore v: " + v);
                         for( int j=0;j<set.length();j++)
                         {
                             v = set.substring(i, i+1);
                             v+= set.substring(j, j+1);
                             app= v;
                             // System.out.println(v);
                             // v = set.substring(i, i+1);
                              for(int x = 0; x < set.length() ; x++)
                              {
                                  v+= set.substring(x, x+1);
                                  System.out.println(v);
                                   v= app;
                              }
                          }
                       
                      }
                }
                else if(numSet == 4)
                {
                    String primaLett;
                    String secLett;
                    String terzLett;
    
                    for(int i=0;i<set.length();i++)
                    {
                        v = "";
                        v+= set.substring(i, i+1);
                        primaLett = v;
                        for(int j=0;j<set.length();j++)
                        {
                            v = primaLett;
                            v+=set.substring(j, j+1);
                            secLett = v;
                            for(int z=0;z<set.length();z++)
                            {
                                v = secLett;
                                v+= set.substring(z, z+1);
                                terzLett = v;
                                for(int x = 0; x < set.length(); x++)
                                {
                                    v = terzLett;
                                    v+= set.substring(x, x+1);
                                    System.out.println(v);
                                }
                            }
                        }
                    }
                }
    
            }while(numSet!=4);
            
    
        }
    questo codice mi permette di fare le permutazioni con ripetizione fino ad una stringa lunga
    4 caratteri.
    il codice è molto ripetitivo e perciò ho pensato che ci dev'essere un'altra soluzione per esempio con la ricorsione.. solo che non riesco a trovare una soluzione.
    qualcuno di voi mi può aiutare?
    grazie mille

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    in altre parole, data ad esempio la stringa

    codice:
    abc
    tu vorresti poter produrre tutte le varie stringhe di lunghezza 3... del tipo
    codice:
    aaa - aab - aac - aba - aca - ... baa - ... - ccc
    giusto? E ovviamente generalizzando a stringhe di qualsiasi lunghezza
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    si è quello che voglio..
    in pratica dato un set di caratteri visualizzare tutte le possibili combinazioni che si possono ottenere con tale set e la lunghezza delle stringhe variano in base all'input che dai al programma.
    il codice che ho scritto funziona ma penso che fa schifo...vorrei una soluzione piu "bella".
    grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    mi sembrava di ricordare che l'argomento fosse già stato trattato:

    http://forum.html.it/forum/showthrea...readid=1342343
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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 © 2024 vBulletin Solutions, Inc. All rights reserved.