using System; namespace Test { public class T { public static void Main() // Вычисление определителя матрицы { Random ran = new Random(); int[,] a = new int[3, 3]; // Инициализируем данный массив for (int i = 0; i < a.GetLength(0); i++) { for (int j = 0; j < a.GetLength(1); j++) { a[i, j] = ran.Next(1, 15); } } int numRows = a.GetLength(0); int numCols = a.GetLength(1); int n = numCols; // Порядок матрицы. Он равен и числу столбцов, и числу строк; мы приравняем его к числу столбцов if (numCols != numRows) { /* Здесь, по идее, нужно сгенерировать исключение, но я быдлокодер и мне лень */ Console.WriteLine("Определитель матрицы вычислить не удалось. Матрица не квадратная, а гипердетерминант мы не умеем."); }; /* МетодГаусса */ for (int k = 1; k < n; k++) // Приводим матрицу к треугольному виду { for (int i = k; i < n; i++) { int C = a[i, k - 1] / a[k - 1, k - 1]; for (int j = 0; j < numCols; j++) { a[i, j] -= C * a[k - 1, j]; } } }; int result = 1; for (int i = 0; i < n; i++) // Вычисляем произведение элементов на главной диагонали { result *= a[i, i]; }; Console.Write("\Рандомная матрица: \n"); for (int i = 0; i < a.GetLength(0); i++) { for (int j = 0; j < a.GetLength(1); j++) { Console.Write("{0} ", a[i, j]); } Console.WriteLine(); } Console.WriteLine("OPREDELITeL BLYAD!!"); Console.WriteLine(result); } } }