Vai al contenuto

Aiuto Permutazioni in Java


Antovm

Messaggi raccomandati

Salve a tutti.

Qualcuno si ritrova o è in grado di creare una classe java che permetta di fare permutazioni di stringhe implementata mediante array?

Ps: servono le permutazioni di tutte le dimensioni... ad esempio da {"0","1","2"} deve uscire l' array {"0","1","2","01","01","02","02","10","10","12","12","20","20","21","21","012","012","012","021","021","021","102","102","102","120","120","120","201","201","201","210","210","210"}

Io ho un implementazione realizzata mediante liste...e quanto ad efficienza fa pena

Link al commento
Condividi su altri siti

  • 1 mese dopo...
  • 8 mesi dopo...

/**

* Genera permutazioni di un insieme di numeri assegnato.

*/

 

import prog.io.*;

import java.util.Random;

 

class Permutazioni {

 

public static void main (String[] args ) {

ConsoleInputManager in = new ConsoleInputManager();

ConsoleOutputManager out = new ConsoleOutputManager();

Random rand = new Random(); // genera numeri casuali

 

// insieme base

int[] insieme = {1,2,3,4,5,6,7,8,9,10};

int copiaDiInsieme[] = new int[insieme.length];

 

int numPermutaz;

while((numPermutaz = in.readInt("Quante Permutazioni? (> 0) :")) <= 0);

 

for(int n = 1; n <= numPermutaz; n++) {

 

// copia di insieme

for (int i = 0; i < insieme.length; i++)

copiaDiInsieme = insieme;

 

// creazione insieme permutato

int[] permutazione = new int[insieme.length];

 

out.print("Permutazione [" + n + "]: ");

int j = 0;

while (j < insieme.length) {

// restituisce num. casuali in [0, insieme.length-1]

int r = rand.nextInt(insieme.length);

if (copiaDiInsieme[r] != -1) {

permutazione[j++] = copiaDiInsieme[r];

copiaDiInsieme[r] = -1;

}

}

for (int i=0; i < permutazione.length; i++)

out.print(permutazione + " ");

out.println();

}

}

}

Link al commento
Condividi su altri siti

  • 6 mesi dopo...

Crea un account o accedi per lasciare un commento

Devi essere un membro per lasciare un commento

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora

Giochi in Uscita



  • Community Hive Community Hive

    Community Hive allows you to follow your favorite communities all in one place.

    Follow on Community Hive
  • Utenti

    Non ci sono membri da mostrare

×
×
  • Crea Nuovo...