private static int[] Solve(SubMatrix matrix) { int det = matrix.Det(); if (det == 0) { throw new ArgumentException("Ответ: Определитель равен 0"); } int[] answer = new int[matrix.Size]; for (int i = 0; i < matrix.Size; i++) { matrix.ColumnIndex = i; answer[i] = matrix.Det() / det; } return(answer); }
public int Det() { if (Size == 1) { return(this[0, 0]); } if (Size == 2) { return(this[0, 0] * this[1, 1] - this[0, 1] * this[1, 0]); } SubMatrix m = new SubMatrix(this); int det = 0; int sign = 1; for (int c = 0; c < Size; c++) { m.ColumnIndex = c; int d = m.Det(); det += this[0, c] * d * sign; sign = -sign; } return(det); }