精华内容
下载资源
问答
  • 一、自反性 、 二、自反性定理 、 三、反自反性 、 四、反自反性定理 、 五、自反与反自反示例





    一、自反性



    自反性符号描述 :

    RA×AR \subseteq A \times A

    RR 关系是 自反的

    \Leftrightarrow

    x(xAxRx)\forall x ( x \in A \to xRx )

    \Leftrightarrow

    (xA)xRx(\forall x \in A) xRx


    非自反性符号描述 :

    RR 是非自反的 \Leftrightarrow x(xA¬xRx)\exist x( x \in A \land \lnot xRx )



    自反性文字描述 :

    RRAA 集合上的二元关系 ,

    RR 是自反的 ,

    当且仅当 RR 集合中的 , 任意 xx 属于集合 AA 的元素 , xxxx 都有关系 RR ( 必须是所有的 xx )


    非自反 文字描述 : 存在 xx 元素 , xx 属于 AA 集合中的元素 , 并且 xxxx 没有关系 ;


    自反性 是验证 每个元素 与其本身 都有 RR 关系

    非自反性 只要有一个元素 与其本身 没有 RR 关系就成立


    \varnothing 上的空关系 , 既是自反的 , 又是反自反的





    二、自反性定理



    自反性定理 :

    RR 是自反的

    \Leftrightarrow

    IARI_A \subseteq R

    \Leftrightarrow

    R1R^{-1} 是自反的

    \Leftrightarrow

    M(R)M(R) 关系矩阵主对角线上的值都为 11

    \Leftrightarrow

    G(R)G(R) 关系图中每个顶点都有环



    文字描述 :

    RR 是自反的

    当且仅当 RR 包含恒等关系 , IARI_A \subseteq R

    当且仅当 R1R^{-1} 是自反的

    当且仅当 M(R)M(R) 关系矩阵主对角线上的元素全部是 11

    当且仅当 G(R)G(R) 关系图中每个顶点均有环





    三、反自反性



    反自反性 :

    RA×AR \subseteq A \times A

    RR 是反自反的

    \Leftrightarrow

    x(xA¬xRx)\forall x ( x \in A \to \lnot xRx )

    \Leftrightarrow

    (xA)¬xRx(\forall x \in A) \lnot xRx



    关系图 :

    自反 是每个点 都有环 ( 重点 )

    非自反 是 有的有环 , 有的没有环

    反自反 是每个点 都没有环 ( 重点 )

    非反自反 是 有的有环 , 有的没有环


    \varnothing 上的空关系 , 既是自反的 , 又是反自反的





    四、反自反性定理



    反自反定理 :

    RR 是反自反的

    \Leftrightarrow

    IAR=I_A \cap R = \varnothing

    \Leftrightarrow

    R1R^{-1} 是反自反的

    \Leftrightarrow

    M(R)M(R) 主对角线上的元素都为 00

    \Leftrightarrow

    G(R)G(R) 每个顶点处都没有环



    文字描述 :

    RR 是反自反的

    当且仅当 关系 RR 与 恒等关系 IAI_A 不相交

    当且仅当 关系的逆 R1R^{-1} 是反自反的

    当且仅当 关系矩阵 M(R)M(R) 主对角线上的元素全部为 00

    当且仅当 关系图 G(R)G(R) 的每个顶点都没有环





    五、自反与反自反示例



    在这里插入图片描述
    上述关系图中 , 每个顶点都有环 , 是自反的 ;


    在这里插入图片描述

    上述关系图中 , 每个顶点都没有环 , 是反自反的


    在这里插入图片描述
    上述关系图中 , 有的顶点有环 , 有的顶点没有环 , 什么都不是 ;

    展开全文
  • //分别将自反性、对称性、传递性的编号为Func1、Func2,Func3。 #include <iostream> #include <cstring> #include <fstream> using namespace std; const int LEN = 140...
    暂时当草稿存放在这里,后面再补充
    
    
    //分别将自反性、对称性、传递性的编号为Func1、Func2,Func3。
    #include <iostream>
    #include <cstring>
    #include <fstream>
    using namespace std;
    
    const int LEN = 140 + 10;
    int arr[LEN][2+10];      //存储集合元素
    int relation[LEN][LEN];  //关系矩阵
    int nnn; //集合元素个数
    int num; //集合关系个数
    void Func1();
    void Func2();
    void Func3();
    
    int main()
    {
     //   freopen("datain.txt", "r", stdin);
        cout << "请输入集合中的元素个数 : " << endl;
        cin >> nnn;
        cout << "请输入集合中的关系个数 : " << endl;
        cin >> num;
        cout << "集合中一共有" << num << "对关系" << "," << num*2 <<"个元素(请以整数形式输入) : " << endl;
        memset(arr, 0, sizeof(arr));   //用数组做参数传递给标准函数memset(),以让其将数组设置成全0:
        memset(relation, 0, sizeof(relation)); //这里不懂得话可以参考https://blog.csdn.net/qq_37796444/article/details/80181632
        int num1, num2;
        for(int i = 1; i <= num; i++)
        {
            cin >> num1 >> num2;
            arr[i][1] = num1;
            arr[i][2] = num2;
            relation[num1][num2] = 1;
        }
    
        cout << "输出关系矩阵 : " << endl;
        for(int i = 1; i <= nnn; i++)
        {
            for(int j = 1; j <= nnn; j++)
            {
                cout << relation[i][j] << "     ";
            }
            cout << endl;
        }
        cout << endl;
    
        cout << "判断结论 : " << endl;
        //判断是否满足自反性
        Func1();
        //判断是否满足对称性
        Func2();
        //判断是否满足传递性
        Func3();
        return 0;
    }
    
    void Func1()   //判断是否满足自反性
    {
        bool flag = true;
        for(int i = 1; i <= nnn; i++)
        {
            if(relation[i][i] != 1)
            {
                flag = false;
                break;
            }
        }
        if(flag == true)
        {
            cout << "满足自反性" << endl;
        }
        else
        {
            cout << "不满足自反性" << endl;
        }
    }
    
    void Func2()  //判断是否满足对称性
    {
        bool flag = true;
        for(int i = 1; i <= nnn; i++)
        {
            for(int j = 1; j <=nnn; j++)
            {
                if(relation[i][j] != relation[j][i])
                {
                    flag = false;
                }
            }
        }
        if(flag == true)
        {
            cout << "满足对称性" << endl;
        }
        else
        {
            cout << "不满足对称性" << endl;
        }
    }
    
    void Func3()  //判断是否满足传递性
    {
        bool flag = true;
        for(int i = 1; i <= num - 1; i++)  //num表示关系个数
        {
            for(int j = 2; j <= num; j++)
            {
                if(arr[i][2] == arr[j][1])   //arr数组表示存储集合元素
                {
                    int num1 = arr[i][1], num2 = arr[j][2];
                    if(relation[num1][num2] != 1)
                    {
                        flag = false;
                        break;
                    }
                }
            }
            if(flag == false)
                break;
        }
        if(flag == true)
        {
            cout << "满足传递性" << endl;
        }
        else
        {
            cout << "不满足传递性" << endl;
        }
    }
    

    展开全文
  • 用C语言实现离散数学中对矩阵的简单操作及对矩阵的判断 判断是否输入的矩阵是否为方阵,在是方阵的基础上判断是否具有对称性,反对称性和自反性。 对称矩阵:一个方形矩阵...反自反性关系矩阵的主对角线上元素全部为0

    用C语言实现离散数学中对矩阵的简单操作及对矩阵的判断

    判断是否输入的矩阵是否为方阵,在是方阵的基础上判断是否具有对称性,反对称性和自反性。

    对称矩阵:一个方形矩阵,其转置矩阵和自身相等。
    对称矩阵是指以主对角线为对称轴,各元素对应相等的矩阵。用线性代数书上的解释是:对称矩阵是一个方形矩阵,其转置矩阵和自身相等。
    在这里插入图片描述

    反对称矩阵:反对称矩阵,它的主对角线上的元素全为零,而位于主对角线两侧对称的元素反号。线性代数书上解释为:
    在这里插入图片描述

    自反性:关系矩阵的主对角线上元素值全部为1
    反自反性:关系矩阵的主对角线上元素全部为0

    C语言代码实现如下:

    #include<stdio.h>
    #define MAXSIZE 100
    
    void Interrupt(void)//创建一个中断函数 
    {
    	while(1)//用于检测换行符,使函数脱离scanf的连续输出 
    		if(getchar()=='\n')
    			break;
    } 
    
    
    int CreateMatrix(int &m,int &n,int a[MAXSIZE][MAXSIZE])
    {
    	int i,j;
    	printf("请输入矩阵的行数");
    	scanf("%d",&m);
    	Interrupt();
    	printf("请输入矩阵的列数");
    	scanf("%d",&n);
    	Interrupt();
    	for(i=0;i<n;i++)
    	{
    		for(j=0;j<m;j++)
    		{
    			printf("请输入矩阵关系中第%d行第%d列的数字:",i,j);
    			scanf("%d",&a[i][j]);
    			Interrupt();
    		}
    	}
    	printf("关系矩阵M为:\n");
    	for(i=0;i<n;i++)
    	{
    		for(j=0;j<m;j++)
    			printf("%d ",a[i][j]);
    		printf("\n");
    	}
    	if(m != n)
    	{
    		printf("不是方阵,不能进行操作!\n");
    		return 0;
    	} 
    	return 1;
    }
    
    void Symmetry(int m,int n,int a[MAXSIZE][MAXSIZE])
    {
    	int i,j,c,b,d;
    	c=0;
    	d=0;
    	b=0;
    	d=1;
    	for(i=0;i<n;i++)
    	{
    		for(j=0;j<m;j++)
    		{
    			if(a[i][j]!=a[j][i])
    			{
    				c=1;
    				break;
    			}
    		}
    	}
    	if( c == 0 ) 
    		printf("该矩阵是对称性的\n");
    	else
    		printf("该矩阵不是对称性的\n");
    }
    void AntiSymmetric(int m,int n,int a[MAXSIZE][MAXSIZE])
    {
    	int i,j,c,b,d;
    	c=0;
    	d=0;
    	b=0;
    	d=1;
    	for(i=0;i<n;i++)
    	{
    		if(a[i][i]!=0)
    		{
    			c=1;
    			break;
    		}
    	}
    	if(c == 0) 
    		for(i=0;i<n;i++)
    		{
    			for(j=0;j<m;j++)
    			{
    				if(i == j)
    					continue;
    				if(a[i][j] != -a[j][i])
    				{
    					c=2;
    					break;
    				}
    			}
    		}
    	if( c == 0 ) 
    		printf("该矩阵是反对称性的\n");
    	else
    		printf("该矩阵不是反对称性的\n");
    }
    void Reflexivity(int m,int n,int a[MAXSIZE][MAXSIZE])
    {
    	int i,j,c;
    	c=0;
    	for(i=0;i<n;i++)
    	{
    		if(a[i][i]!=0)
    		{
    			c=1;
    			break;
    		}
    	}
    	if(c==0) 
    		printf("该矩阵是自反性的\n");
    	else 
    	{
    		for(i=0;i<n;i++)
    		{
    			if(a[i][i]!=1)
    			{
    				c=2;
    				break;
    			}
    		}
    		if(c==1) 
    			printf("该矩阵是反自反性的\n");
    		else
    			printf("该矩阵既不是自反性的也不是反自反性的\n");
    	}	
    }
    
    int main()
    {
    	int a[MAXSIZE][MAXSIZE];
    	int m, //行数 
    		n,//列数 
    		d;//循环条件 
    	printf("欢迎使用关系性质的判断系统\n\n 1. 对称关系的判断  2. 反对称关系的判断  3. 自反关系的判断\n\n请输入选项:");
    	d = CreateMatrix(m,n,a);
    	while(d)
    	{
    		printf("请选择: ") ;
    		scanf("%d",&d);
    		Interrupt();
    		switch(d)
    		{
    			case 1: Symmetry(m,n,a);break;
    			case 2: AntiSymmetric(m,n,a);break;
    			case 3: Reflexivity(m,n,a);break;
    			case 0: break;
    		}
    	printf("\n");
    	printf("是否还继续?   是请输入1,否请输入0:");
    	scanf("%d",&d);
    	Interrupt();
    	printf("\n\n");
    	}
    }
    

    (完)

    展开全文
  • 自反性对称传递性

    千次阅读 2020-12-11 23:19:52
    说明R1具有自反性.R2是反自反的。 R1即是对称的,又是反对称的。 R3={<1,1>,<1,2>,<2,1>} R4={<2,1>,<3,2>} 对称的逆就是反对称。(<x,y>与<y,x>为对称,如果一个...

    A={1,2,3}

    R1={<1,1>,<2,2>,<3,3>}

    R2={<1,3>}

    说明R1具有自反性.R2是反自反的。

    R1即是对称的,又是反对称的。

    R3={<1,1>,<1,2>,<2,1>}

    R4={<2,1>,<3,2>}

    对称的逆就是反对称。(<x,y>与<y,x>为对称,如果一个集合中只包括不同的<x,y>且没有<y,x>为反对称)

    R3是对称的。R4反对称。

    传递性与非传递性是互斥的。

    xRy ,yRz 存在关系<x,z>就是传递的。不存在就是非传递的。

    R4是传递的。

     

     

     

    展开全文
  • 离散数学,自反性

    千次阅读 2019-04-10 17:48:19
    print ('是自反性') elif numpy.all(B==0): print ('是反自反性') if (A==A.T).all(): print('是对称性') flag1=0 for i in range(0,a): for j in range(0,a): if A[i,j]==1 and i!=j and A[j,i]==0: flag1=1 ...
  • 集合论—关系自反、对称和传递闭包

    万次阅读 多人点赞 2019-06-21 21:52:33
    关系自反、对称和传递闭包定义 设R\text{R}R是非空集合AAA上的关系,R\text{R}R的自反(对称、传递)闭包是AAA上的关系R′\text{R}&#x27;R′,且R′\text{R}&#x27;R′满足以下条件: R′\text{R}&#...
  • C语言判断关系R是否为自反关系

    千次阅读 2020-03-19 21:58:19
    判断关系R是否为自反关系。键盘输入R的关系序偶,程序输出判断结果 #include <stdio.h> #include <stdlib.h> //输入关系 void input(char **a,int n) { int x,y; printf("输入关系,使用1~n之间的整数,...