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);
}
}
}
dXNpbmcgU3lzdGVtOwoKbmFtZXNwYWNlIFRlc3QKewoJcHVibGljIGNsYXNzIFQKewoJCglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpICAgICAgICAvLyDQktGL0YfQuNGB0LvQtdC90LjQtSDQvtC/0YDQtdC00LXQu9C40YLQtdC70Y8g0LzQsNGC0YDQuNGG0YsKewoJCgkgICAgICBSYW5kb20gcmFuID0gbmV3IFJhbmRvbSgpOwogICAgICAgICAgICAgICAgaW50WyxdIGEgPSBuZXcgaW50WzMsIDNdOwogICAgICAgICAgICAgICAgLy8g0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXQvCDQtNCw0L3QvdGL0Lkg0LzQsNGB0YHQuNCyCiAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGEuR2V0TGVuZ3RoKDApOyBpKyspCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBhLkdldExlbmd0aCgxKTsgaisrKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgYVtpLCBqXSA9IHJhbi5OZXh0KDEsIDE1KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgoJCgkKICAgIGludCBudW1Sb3dzID0gYS5HZXRMZW5ndGgoMCk7CiAgICBpbnQgbnVtQ29scyA9IGEuR2V0TGVuZ3RoKDEpOwogICAgaW50IG4gPSBudW1Db2xzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vINCf0L7RgNGP0LTQvtC6INC80LDRgtGA0LjRhtGLLiDQntC9INGA0LDQstC10L0g0Lgg0YfQuNGB0LvRgyDRgdGC0L7Qu9Cx0YbQvtCyLCDQuCDRh9C40YHQu9GDINGB0YLRgNC+0Lo7INC80Ysg0L/RgNC40YDQsNCy0L3Rj9C10Lwg0LXQs9C+INC6INGH0LjRgdC70YMg0YHRgtC+0LvQsdGG0L7QsgogCiAgICBpZiAobnVtQ29scyAhPSBudW1Sb3dzKQogICAgewogICAgICAgIC8qINCX0LTQtdGB0YwsINC/0L4g0LjQtNC10LUsINC90YPQttC90L4g0YHQs9C10L3QtdGA0LjRgNC+0LLQsNGC0Ywg0LjRgdC60LvRjtGH0LXQvdC40LUsINC90L4g0Y8g0LHRi9C00LvQvtC60L7QtNC10YAg0Lgg0LzQvdC1INC70LXQvdGMICovCiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoItCe0L/RgNC10LTQtdC70LjRgtC10LvRjCDQvNCw0YLRgNC40YbRiyDQstGL0YfQuNGB0LvQuNGC0Ywg0L3QtSDRg9C00LDQu9C+0YHRjC4g0JzQsNGC0YDQuNGG0LAg0L3QtSDQutCy0LDQtNGA0LDRgtC90LDRjywg0LAg0LPQuNC/0LXRgNC00LXRgtC10YDQvNC40L3QsNC90YIg0LzRiyDQvdC1INGD0LzQtdC10LwuIik7CiAgICB9OwogCiAgICAvKiDQnNC10YLQvtC00JPQsNGD0YHRgdCwICovCiAgICBmb3IgKGludCBrID0gMTsgayA8IG47IGsrKykgICAgICAgICAgICAgICAgICAgICAgICAgLy8g0J/RgNC40LLQvtC00LjQvCDQvNCw0YLRgNC40YbRgyDQuiDRgtGA0LXRg9Cz0L7Qu9GM0L3QvtC80YMg0LLQuNC00YMKICAgIHsKICAgICAgICBmb3IgKGludCBpID0gazsgaSA8IG47IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIGludCBDID0gYVtpLCBrIC0gMV0gLyBhW2sgLSAxLCBrIC0gMV07CiAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbnVtQ29sczsgaisrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBhW2ksIGpdIC09IEMgKiBhW2sgLSAxLCBqXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH07CiAgICBpbnQgcmVzdWx0ID0gMTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSAgICAgICAgICAgICAgICAgICAgICAgICAvLyDQktGL0YfQuNGB0LvRj9C10Lwg0L/RgNC+0LjQt9Cy0LXQtNC10L3QuNC1INGN0LvQtdC80LXQvdGC0L7QsiDQvdCwINCz0LvQsNCy0L3QvtC5INC00LjQsNCz0L7QvdCw0LvQuAogICAgewogICAgICAgIHJlc3VsdCAqPSBhW2ksIGldOwogICAgfTsKIAogICAgICBDb25zb2xlLldyaXRlKCJc0KDQsNC90LTQvtC80L3QsNGPINC80LDRgtGA0LjRhtCwOiBcbiIpOwogICAgIAogICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhLkdldExlbmd0aCgwKTsgaSsrKQogICAgIAogICAgICAgICAgICAgICAgewogICAgIAogICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgYS5HZXRMZW5ndGgoMSk7IGorKykKICAgICAKICAgICAgICAgICAgICAgICAgICB7CiAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGUoInswfSAgIiwgYVtpLCBqXSk7ICAgCiAgICAgCiAgICAgICAgICAgICAgICAgICAgfQogICAgIAogICAgICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCk7CiAgICAgCiAgICAgICAgICAgICAgICB9CiAKICAgIENvbnNvbGUuV3JpdGVMaW5lKCJPUFJFREVMSVRlTCBCTFlBRCEhIik7CiAKIAogICAgQ29uc29sZS5Xcml0ZUxpbmUocmVzdWx0KTsKfQp9Cn0=