矩阵连乘问题:
void matrixMultiply(int **a,int **b,int **c,int ra,int ca,int rb,int cb)
{
if(ca!=rb) ERROR("矩阵不可乘");
for(int i=0;i<ra;i++)
for(int j=0;j<cb;j++)
{
int sum=a[i][0]*b[0][j];
for(int k=1;k<ca;k++)
sum=sum+a[i][k]*b[k][j];
c[i][j]=sum;
}
void matrixMultiply(int **a,int **b,int **c,int ra,int ca,int rb,int cb)
{
if(ca!=rb) ERROR("矩阵不可乘");
for(int i=0;i<ra;i++)
for(int j=0;j<cb;j++)
{
int sum=a[i][0]*b[0][j];
for(int k=1;k<ca;k++)
sum=sum+a[i][k]*b[k][j];
c[i][j]=sum;
}
}
void Matrixchain(int *p,int n,int **m,int **s)
{
for(int i=1;i<=n;i++)
for(int r=2;r<=n;r++)
for(int i=1;i<=n-r+1;i++)
{
int j=i+r-1;
m[i][j]=m[i+1][j]+p[i-1]*p[i]*p[j];
s[i][j]=i;
for(int k=i+1;k<j;k++)
{
int t=m[i][k]+m[k+1][j]+p[i-1]*p[k]*p[j];
if(t<m[i][k]){m[i][j]=t;s[i][j]=k;}
}
}
}