作者tyc5116 (累人啊....)
看板C_and_CPP
标题Re: [问题] 降阶法
时间Fri Oct 16 21:19:02 2009
※ 引述《tyc5116 (累人啊....)》之铭言:
不好意思,这个问题还是没解决...@@
附上我目前的进度
http://tinyurl.com/yjrabx4
用vector写的,降阶的部份大致都弄好了
只是在做运算的部份回圈不知道怎麽设计
主要用递回的方式写(实际上我也只想到这个方法...@@)
可是因为平常很少用递回写程式,所以卡了这麽久
主要的程式在这部份
vector<vector<int> > Matrix::Reduce(vector<vector<int> > submatrix,
int column,int& value){
vector<vector<int> > smallmatrix(submatrix.size()-1,vector<int>(
submatrix.size()-1));
vector<vector<int> > tmpmatrix;
vector<int> tmprow;
static int sum=0;
int r=1,c=0;
int s=1;
int col=0;
int cons=0;
int ans=0;
int rr=0;
//降阶
for (int i=0;i<smallmatrix.size();++i){
for (int j=0;j<smallmatrix[0].size();++j){
if (j==column){++c;}
smallmatrix[i][j]=submatrix[r][c++];
}
c=0;
++r;
}
cout<<"降阶後的阵列"<<endl;
for (int j=0;j<smallmatrix.size();++j){
for (int k=0;k<smallmatrix[0].size();++k){
cout<<smallmatrix[j][k]<<" ";
}
cout<<endl;
}
if (smallmatrix.size()>1){
tmpmatrix=smallmatrix;
tmprow.resize(smallmatrix.size());
tmprow[0]=smallmatrix[0][0];
tmprow[1]=smallmatrix[0][1];
for (int i=0;i<smallmatrix.size();++i){
tmpmatrix=Reduce(smallmatrix,i,value);//若阶数>1便再降阶
cons=tmprow[rr++];
sum+=cons*s*tmpmatrix[0][0];
s*=-1;
}
}
return smallmatrix;
个人认为应该把这里解决掉就好.....可是我想好久了....@@
再麻烦大大们解答一下,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.18.48.28