Purtroppo tale configurazioni mi arriva e non posso modificare a priori. Posto la prova che ho fatto ma non riesco a generare tutte le combinazioni, sposto semplicemente i quattro valori 1 nelle diverse posizioni. Sapete aiutarmi per generare tutte le combinazioni (96 mila circa) senza, ovviamente, ripetizioni?
Grazie ancora
codice:
import java.util.*;
public class ProvaSwitch {
protected static int[] x;
protected static int cont = 0;
public static void main(String[] args) {
x = new int[40];
x[0] = 1;
x[1] = 1;
x[2] = 1;
x[3] = 1;
stampaArray(x);
System.out.println();
long t1 = System.currentTimeMillis();
for(int i=0; i<4; i++) {
scambia();
}
long t2 = System.currentTimeMillis();
long delta = t2 - t1;
System.out.println();
System.out.println("TEMPO ALGORITMO: " + delta);
System.out.println("PERMUTAZIONI: " + cont);
}
public static void scambia() {
for(int i=0; i<x.length; i++) {
cont++;
int tmp = x[i];
if(i!=x.length-1) {
int next = x[i+1];
x[i+1] = tmp;
x[i] = next;
stampaArray(x);
System.out.println();
}
}
}
public static void stampaArray(int[] x) {
for(int i=0; i<x.length; i++) {
System.out.print(x[i] + " ");
}
}
}