Sto cercando di realizzare un metodo il quale mi deve realizzare il triangolo di tartaglia. Concettualmente funzione ma il JDK mi fornisce il seguente errore :
output:
1. Prodotto Matrice/Vettore per Matrice/Vettore
2. Matrice Trasposta
3. Triangolo di Tartaglia
0. Nessuna Operazione
Operazione : 3
Grado del coefficiente binomiale: 3
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at Matrice.Tartaglia(Matrice.java:141)
at TestVettore.main(TestVettore.java:99)
...
Di seguito riporto il listato del metodo, x pemplicità ho evidenziato la riga incriminata con il commento // ERRORE
/**
@param grado, di tipo int, rappresenta il grado del coefficiente binomiale
@return Matr, che il riferimento ad un double[][] che corrisponde
alla matrice degli esponenti delle incognite del coefficiente binomiale*/
public double[][] Tartaglia(int grado){
int i,j;//indici di riga e colonna
Matr = new double[grado][]; //numero di righe del triangolo
for(i=0;i<Matr.length;i++){ //righe
Matr[i] = new double[i+1];
for(j=0;j<Matr[i].length;j++){ //colonne
if((j==0)||(j==(Matr[i].length)-1))
Matr[i][j]=1;
else if ((i>0)&&((j>0)||(j<(Matr[i].length)-1)))
Matr[i][j]= Matr[i-1][j-1]+Matr[i-1][j+1]; //ERRORE !!!
}//for j
}//for i
return Matr;
}//Tartaglia
Per completezza, o per chi non se lo ricordasse il triangolo di Tartaglia rappresenta gli esponenti del coefficiente binomiale, questi dovrebbe essere una cosa del genere per n = 4:
1
121
1331
14641
![]()