行列式¶
约 3 个字 36 行代码
const int N=1e2+1;
const double eps=1e-6;
double a[N][N];
double GaussianElimination(int n)
{
int i,maxx,j,k;
double temp,res=1;
for(i=0;i<n;++i)
{
maxx=i;
for(j=i+1;j<n;++j)
{
if(fabs(a[j][i])>fabs(a[maxx][i]))
maxx=j;
}
if(fabs(a[maxx][i])<eps)
return 0.0;
if(maxx!=i)
{
swap(a[maxx],a[i]);
res=-res;
}
res*=a[i][i];
for(j=0;j<n;++j)
{
if(j==i)
continue;
temp=a[j][i]/a[i][i];
if(fabs(temp)<eps)
continue;
for(k=i;k<=n;++k)
a[j][k]-=a[i][k]*temp;
}
}
return res;
}