矩阵和行列式

重新学习了高斯消元,当然也要重写一篇啦。

占坑,先咕。

行列式

声明结构体

1
2
3
4
struct Determinant {
double /* ll */ z[110][110];
int n;
};

高斯消元求值

辗转相消法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
struct Determinant {
ll gauss() {
ll ret = 1;
for (int a = 1; a <= n; ++a) {
for (int b = a + 1; b <= n; ++b) {
while (z[b][a] != 0) {
ll k = z[a][a] / z[b][a];
for (int c = 1; c <= n; ++c)
z[a][c] = z[a][c] - z[b][c] * k;
for (int c = 1; c <= n; ++c)
swap(z[a][c], z[b][c]);
x = -x;
}
}
}
for (int a = 1; a <= n; ++a)
ret = ret * z[a][a];
return ret;
}
};

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×