Sto cercando di ottenere le possibili combinazioni di un dato insieme di numeri, ad esempio 123
Le possibili combinazioni potrebbero essere
123 132 213 231 312 321
Per questo ho scritto un codice come sotto -
import java.util.ArrayList;
/* Name of the class has to be "Main" only if the class is public. */
public class Main {
/**
* @param args the command line arguments
*/
static ArrayList list;
public static void main(String[] args) {
// TODO code application logic here
Main nm = new Main();
nm.list = new ArrayList();
/*
for(int i=1; i<= 4; i++) {
list.add(i);
}
list.remove(list.indexOf(1));
for(int i=0; i<= 2; i++) {
System.out.print(list.get(i));
}
*/
nm.test1();
}
public void test1() {
for(int i=1; i<= 4; i++) {
if(!list.contains(i)) {
list.add(i);
test1();
list.remove(list.indexOf(i));
}
}
if(list.size() == 4)
{
for(int i=0; i< 4; i++) {
System.out.print(list.get(i));
}
System.out.println("");
}
}
}
Fornisce l'output corretto come mostrato qui nel link
Stavo pensando se questo è l'approccio giusto o se possono esserci ottimizzazioni in modo che questo codice possa essere usato per ottenere combinazioni di numeri da 10 a 20 cifre o più.
Saluti