역귀와 행렬식을 이용하여 정리를 전개하여 행렬식의 값을 구하다

7239 단어
최근 온라인 대수는... 행렬식에 따라 줄별로 정리를 전개하여 행렬식의 값을 구하는 프로그램을 썼다.
반복:
코드 구현:
 1 //determinant.cpp
 2 #include <iostream>
 3 #include <cmath>
 4 using namespace std;
 5 const int Max=100;           //  Max         
 6 double det[Max][Max]={0};
 7 void setDet(int);
 8 double valDet( double det[][Max], int);
 9 int main()
10 {
11     cout<<"";
12     int rank;
13     cin>>rank;
14     setDet(rank);
15     cout<<""<<valDet(det,rank)<<endl;
16     return 0;
17 }
18 
19 void setDet(int n)
20 {
21     cout<<""<<endl; 
22     for(int i=0;i<n;i++)
23         for(int j=0;j<n;j++)
24             cin>>det[i][j];
25 }
26 double valDet( double det[][Max],int n)
27 {
28     double val=0;
29     if(n==1) return det[0][0];             //     30     for(int i=0;i<n;i++)                   //        next[][]  
31     {
32         double nextDet[Max][Max]={0};
33         for(int j=0;j<n-1;j++)
34             for(int k=0;k<i;k++)
35                 nextDet[j][k]=det[j+1][k];
36         for(int j=0;j<n-1;j++)
37             for(int k=i;k<n-1;k++)
38                 nextDet[j][k]=det[j+1][k+1];
39         val+=det[0][i]*valDet(nextDet,n-1)*pow(-1.0,i);  //   40     }
41     return val;
42 }

실행 맵:

좋은 웹페이지 즐겨찾기