数值试验报告格式.DOC
文本预览下载声明
1.【实验目的实验内容M给出,要求判断由M表示的这个关系是否为对称关系。假定R的关系矩阵为:
3.【实验M(R的关系矩阵)为对称矩阵,则R是对称关系;若M为反对称矩阵,则R是反对称关系。因为R为对称的是等价关系的必要条件,所以,本算法可以作为判等价关系算法的子程序给出。
算法实现:
输入关系矩阵M(M为n阶方阵);
判断对称性,对于i=2,3,….,n;j=1,2,……,i-1,若存在mij=mji,则R是对称的;
判断反对称性;
判断既是对称的又是反对称的;
判断既不是对称的又不是反对称的;
输出判断结果。
自反:
从给定的关系矩阵来断判关系R是否为自反是很容易的。若M(R的关系矩阵)的主对角线元素均为1,则R是自反关系;若M(R的关系矩阵)的主对角线元素均为0,则R是反自反关系;若M(R的关系矩阵)的主对角线元素既有1又有0,则R既不是自反关系也不是反自反关系。本算法可以作为判等价关系算法的子程序给出。
算法实现
输入关系矩阵M(M为n阶方阵)。
判断自反性,对于i=1,2,….,n;若存在mii=0,则R不是自反的;若存在mii=1,则R是自反的;否则R既不是自反关系也不是反自反关系。
输出判断结果。
源代码
#includestdio.h
void z();
void r();
void main()
{
int d;
while(d)
{
printf(欢迎使用关系性质的判断系统\n\n 1. 对称关系的判断 2. 自反关系的判断\n\n请输入选项:);
scanf(%d,d);
switch(d){
case 1: r();break;
case 2: z();break;
case 0: break;
}
printf(\n);
printf(是否还继续? 是请输入1,否请输入0:);
scanf(%d,d);
printf(\n\n);
}return 0;
}
void r()
{
int a[30][30];
int m,n,i,j,c,b,d;
c=0;
d=0;
b=0;
d=1;
printf(请输入矩阵的行数);
scanf(%d,m);
printf(请输入矩阵的列数);
scanf(%d,n);
for(i=0;im;i++)
{
for(j=0;jn;j++)
{
printf(请输入矩阵关系中第%d行第%d列的数字:,i,j);
scanf(%d,a[i][j]);
}
}
printf(关系矩阵M为:\n);
for(i=0;im;i++)
{
for(j=0;jn;j++)
printf(%d ,a[i][j]);
printf(\n);
}
for(i=0;im;i++)
{
for(j=0;jn;j++)
{
if(a[i][j]!=a[j][i])
{
c=1;
break;
}
}
}
if(c==0)
{
for(i=0;im;i++)
{
for(j=0;jn;j++){
if(a[i][j]==1){
if(a[j][i]!=0){
c=2;
break;
}
}
}
}
if(c==2) printf(该矩阵是对称性的\n);
else
if(c==0) printf(该矩阵是既对称又反对称的\n);
}
else
if(c==1){
for(i=0;im;i++){
for(j=0;jn;j++){
if(a[i][j]==1){
if(a[j][i]!=0){
c=2;
break;
}
}
}
}
if(c==2) printf(该矩阵不是对称的又不是反对称的\n);
else{
printf(该矩阵是反对称性的\n);
}
}}
void z()
{
int m,n,i,j,a[80][80],c;
c=0;
printf(请输入矩阵的行数);
scanf(%d,m);
printf(请输入矩阵的列数);
scanf(%d,n);
for(i=0;im;i++){
for(j
显示全部