Для вычисления определителя матрицы четвертого порядка воспользуемся рекурсией. Алгоритм решения такой:
|a11 a12 a13 a14|
|a21 a22 a23 a24|
|a31 a32 a33 a34|
|a41 a42 a43 a44|
= (-1)^(1+1) * a11 * |a22 a23 a24| +
|a32 a33 a34|
|a42 a43 a44|
+ (-1)^(1+2) * a12 * |a21 a23 a24| +
|a31 a33 a34|
|a41 a43 a44|
+ (-1)^(1+3) * a13 * |a21 a22 a24| +
|a31 a32 a34|
|a41 a42 a44|
+ (-1)^(1+4) * a14 * |a21 a22 a23|
|a31 a32 a33|
|a41 a42 a43|
Далее определитель 3-го порядка аналогично:
|a11 a12 a13|
|a21 a22 a23|
|a31 a32 a33|
= (-1)^(1+1) * a11 * |a22 a23| +
|a32 a33|
+ (-1)^(1+2) * a12 * |a21 a23| +
|a31 a33|
+ (-1)^(1+3) * a13 * |a21 a22|
|a31 a32|
Далее определитель 2-го порядка:
|a11 a12|
|a21 a22|
= (-1)^(1+1) * a11 * |a22| +
+ (-1)^(1+2) * a12 * |a21|
А определитель 1-го порядка равен элементу:
|a11| = (-1)^(1+1) * a11 = a11
Вот готовое решение на языке C++, пользуйтесь:
#pragma hdrstop
#pragma argsused
#include
#include
#include
#include
int A[4][4]={{2,5,3,8},
{7,3,9,2},
{1,6,0,2},
{5,2,8,7}};
int Det(int N, int M[4][4])
{
if (N == 1)
return M[0][0];
else
{
int M1[4][4];
int i, x, X, Y, Res = 0;
for (i = 0; i < N; i++)
{
for (Y = 1; Y < N; Y++)
{
x = 0;
for (X = 0; X < N; X++)
if (X != i)
M1[Y-1][x++] = M[Y][X];
}
if (i % 2 == 0)
Res += M[0][i] * Det(N - 1, M1);
else
Res -= M[0][i] * Det(N - 1, M1);
}
return Res;
}
}
int main(int argc, char* argv[])
{
int Op = Det(4, A);
cout << Op << endl;
getch();
return 0;
}
Матрица задается в коде в переменной A. Но вы легко можете реализовать ее ввод с клавиатуры или из файла. Далее реализована рекурсивная функция Det, которая принимает в качестве параметров размер матрицы и указатель на саму матрицу. Функция возвращает целое число - значение определителя. Удачи!
-------------------------------------------------------------
Секреты поискового продвижения сайтов обсуждаются здесь seo форум. Узнай как повысить посещаемость у профессионалов.
Выгоднее всего купить Nokia можно в интернет-магазине koopim.com.
Бездепозитный бонус ваш шанс начать карьеру в онлайн покере, играем в покер бесплатно. Про
бездепозитный бонус на full tilt узнайте на сайте.