السلام عليكم
وجدت هذا الكود لحساب déterminant d'une matrice carree
لكني لم افهم كيفية عمله
public static int determinant(int[][] matrix){ //method sig. takes a matrix (two dimensional array), returns determinant. int sum=0; int s; if(matrix.length==1){ //bottom case of recursion. size 1 matrix determinant is itself. return(matrix[0][0]); } for(int i=0;i<matrix.length;i++){ //finds determinant using row-by-row expansion int[][]smaller= new int[matrix.length-1][matrix.length-1]; //creates smaller matrix- values not in same row, column for(int a=1;a<matrix.length;a++){ for(int b=0;b<matrix.length;b++){ if(b<i){ smaller[a-1]=matrix[a]; } else if(b>i){ smaller[a-1][b-1]=matrix[a]; } } } if(i%2==0){ //sign changes based on i s=1; } else{ s=-1; } sum+=s*matrix[0]*(determinant(smaller)); recursive step: determinant of larger determined by smaller. } return(sum); //returns determinant value. once stack is finished, returns final determinant. }ماعمل هذا الجزء
for(int a=1;a<M.length;a++){ for(int b=0;b<M.length;b++){ if(b<i){ MF[a-1]=M[a]; } else if(b>i){ MF[a-1][b-1]=M[a]; } } }