做题时做到一个需要判断两个同阶方阵关系的问题,在此总结一下。
矩阵关系大致分类如下:
矩阵B由矩阵A顺时针旋转90度;
矩阵B由矩阵A顺时针旋转180度;
矩阵B由矩阵A顺时针旋转270度;
矩阵B由矩阵A延中垂线反射;
矩阵B和矩阵A相等;
代码如下:
n为方阵阶数。
int spin90(char A[],char B[],int n)
{
int flag=1;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
if(B[i][j]!=A[n-1-j][i])
{
flag=0;
break;
}
return flag;
}
int spin180(char A[],char B[],int n)
{
int flag=1;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
if(B[i][j]!=A[n-1-i][n-1-j])
{
flag=0;
break;
}
return flag;
}
int spin270(char A[],char B[],int n)
{
int flag=1;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
if(B[i][j]!=A[j][n-1-i])
{
flag=0;
break;
}
return flag;
}
int refiectionchar (A[],char B[],int n)
{int flag=1;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
if(B[i][j]!=A[i][n-1-j])
{
flag=0;
break;
}
return flag;
}
两矩阵相等就不用我写了吧……
对于这种找对应关系的问题,可以先写几项找出规律,然后找到对应关系。