Salve a tutti, ho un problema con Java.
Supponiamo di avere un certo alfabeto ordinato, ad esempio l'alfabeto latino con 26 simboli in ordine alfabetico. Io in pratica voglio creare un array di 26^n oggetti di tipo StringBuffer ordinato con l'ordinamento lessicografico che contenga tutte le possibili combinazioni di questi 26 simboli; ho provato a scrivere un programma ma mi solleva l'eccezione java.lang.ArrayIndexOutOfBoundsException.
La classe che si occupa di creare la lista è questa:
public static StringBuffer[] creaTabellaTotale(int n, char[] a) {
StringBuffer[] tabella = new StringBuffer[ pow(26, n)];
for(int w =0; w < pow(26, n); w++)
tabella[w] = new StringBuffer("");
for(int h = 1; h <= n ; h++){
for(int u =0; u < pow ( 26, h-1); u++){
for (int j = 0; j<26; j++){
for( int x =pow(26, n-h+1)*u + pow(26, n-h)*j; x< pow(26, n-h+1)*u + pow(26, n-h)*(j+1); x++)
tabella[x] = tabella[x].append(a[j]);
}
}
}
return tabella;
}
Nel codice a[] è l'array che contiene i 26 caratteri dell'alfabeto in ordine alfabetico. La funzione pow() l'ho ridefinita in modo che accetti 2 interi e restituisca un intero. Volevo capire se il problema è in questa classe oppure è scritta bene.
Probabilmente ho fatto confusione con gli indici ma non riesco a trovare l'errore.