精华内容
下载资源
问答
  • 二元关系关系性质判断
    千次阅读 多人点赞
    2018-06-08 22:00:19

    今天离散老师布置了一个编程作业:用代码实现关系性质的判断。然后我就结合所学知识写了写,如果哪里有不足欢迎批评指正。

    自反性:∀x∈A,有<x,x>∈R。

    关系矩阵特点:主对角线元素全为1.

    关系图的特点:图中每个顶点都有环。

    代码:

    int refl(){
        bool flag=false;
        for(int i=1;i<=n;i++){
            if(!e[i][i]){
                flag=true;
                break;
            }
        }
        if(flag) return 0;
        else return 1;
    }

    反自反性:∀x∈A,有<x,x>R。

    关系矩阵特点:主对角线元素全为0.

    关系图特点:图中每个顶点都没环。

    代码:

    int irrefl(){
        bool flag=false;
        for(int i=1;i<=n;i++){
            if(e[i][i]){
                flag=true;
                break;
            }
        }
        if(flag) return 0;
        else return 1;
    }

    对称性:若<x,y>∈R,则<y,x>∈R。

    关系矩阵特点:矩阵为对称矩阵。

    关系图特点:如果两个顶点之间有边,一定是一对方向相反的边。

    代码:

    int sym(){
        bool flag=false;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                if(e[i][j]&&!e[j][i]){
                    flag=true;
                }
            }
            if(flag) break;
        }
        if(flag) return 0;
        else return 1;
    }

    反对称性:

    若<x,y>∈R,且x不等于y,则<y,x>R。

    关系矩阵特点:如果r[i][j]=1,且i不等于j,则r[j][i]=0.

    关系图特点:如果两个顶点之间有边,一定是一条有向边。

    代码:

    int irsym(){
        bool flag=false;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                if(i!=j){
                    if(e[i][j]&&e[j][i]){
                        flag=true;
                        break;
                    }
                }
                else continue;
            }
            if(flag) break;
        }
        if(flag) return 0;
        else return 1;
    }

    传递性:

    若<x,y>∈R,且<y,z>∈R,则<x,z>∈R。

    关系图特点:如果顶点xi到顶点xj有边,xj到xk有边,则从xi到xk有边。

    代码:

    int tra(){
        memset(book,0,sizeof(book));
        for(int k=1;k<=n;k++){
            for(int i=1;i<=n;i++){
                for(int j=1;j<=n;j++){
                    if(e[i][k]&&e[k][j]){
                       book[i][j]=1;//表示两点之间可以到达
                    }
                }
            }
        }
        bool flag=false;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                if(book[i][j]){
                    flag=true;
                    break;
                }
            }
            if(flag) break;
        }
        if(flag) return 1;
        else return 0;
    }

    总代码:

    #include<bits/stdc++.h>
    using namespace std;
    int n,m;//n代表集合中元素的个数,m表示集合r中序偶的个数
    int e[101][101];//关系矩阵
    int a[101];//集合a
    int vis[101][101],book[101][101];
    struct node {
    	int x, y;//x为第一元素,y为第二元素
    }r[100010];//集合r的序偶
    int refl(){
        bool flag=false;
        for(int i=1;i<=n;i++){
            if(!e[i][i]){
                flag=true;
                break;
            }
        }
        if(flag) return 0;
        else return 1;
    }
    int irrefl(){
        bool flag=false;
        for(int i=1;i<=n;i++){
            if(e[i][i]){
                flag=true;
                break;
            }
        }
        if(flag) return 0;
        else return 1;
    }
    int sym(){
        bool flag=false;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                if(e[i][j]&&!e[j][i]){
                    flag=true;
                }
            }
            if(flag) break;
        }
        if(flag) return 0;
        else return 1;
    }
    int irsym(){
        bool flag=false;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                if(i!=j){
                    if(e[i][j]&&e[j][i]){
                        flag=true;
                        break;
                    }
                }
                else continue;
            }
            if(flag) break;
        }
        if(flag) return 0;
        else return 1;
    }
    int tra(){
        memset(book,0,sizeof(book));
        for(int k=1;k<=n;k++){
            for(int i=1;i<=n;i++){
                for(int j=1;j<=n;j++){
                    if(e[i][k]&&e[k][j]){
                       book[i][j]=1;//表示两点之间可以到达
                    }
                }
            }
        }
        bool flag=false;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                if(book[i][j]){
                    flag=true;
                    break;
                }
            }
            if(flag) break;
        }
        if(flag) return 1;
        else return 0;
    }
    int main() {
    	while (~scanf("%d%d",&n,&m)) {
            getchar();
            memset(vis,0,sizeof(vis));
    		memset(e,0,sizeof(e));
    		for (int i = 1; i <= n; i++) {
                scanf("%d",&a[i]);//输入集合a
    		}
            getchar();
    		for(int i=1;i<=m;i++){
                scanf("%d %d",&r[i].x,&r[i].y);//输入集合r的第一第二元素
                vis[r[i].x][r[i].y]=1;
    		}
    		//生成关系矩阵
    		for(int i=1;i<=n;i++){
                for(int j=1;j<=n;j++){
                    if(vis[a[i]][a[j]]) e[a[i]][a[j]]=1;
                }
    		}
    		if(refl()){
                printf("具有自反性\n");
                printf("关系矩阵为\n");
                for(int i=1;i<=n;i++){
                    for(int j=1;j<=n;j++){
                        printf("%d ",e[i][j]);
                    }
                    printf("\n");
                }
    		}
    		if(irrefl()){
                printf("具有反自反性\n");
                printf("关系矩阵为\n");
                for(int i=1;i<=n;i++){
                    for(int j=1;j<=n;j++){
                        printf("%d",e[i][j]);
                    }
                    printf("\n");
                }
    		}
    		if(sym()){
                printf("具有对称性\n");
                printf("关系矩阵为\n");
                for(int i=1;i<=n;i++){
                    for(int j=1;j<=n;j++){
                        printf("%d",e[i][j]);
                    }
                    printf("\n");
                }
    		}
    		if(irsym()){
                printf("具有反对称性\n");
                printf("关系矩阵为\n");
                for(int i=1;i<=n;i++){
                    for(int j=1;j<=n;j++){
                        printf("%d",e[i][j]);
                    }
                    printf("\n");
                }
    		}
    		if(tra()){
                printf("具有传递性\n");
                printf("关系矩阵为\n");
                for(int i=1;i<=n;i++){
                    for(int j=1;j<=n;j++){
                        printf("%d",e[i][j]);
                    }
                    printf("\n");
                }
    		}
    	}
    	return 0;
    }
    

    更多相关内容
  • 判断关系性质

    2013-12-22 14:09:09
    这是判断关系性质的代码,自己写的,大家看看
  • 离散数学实验:关系性质判断

    千次阅读 2020-05-08 19:23:35
    熟悉关系的性质,掌握求判断关系性质的方法。 二、实验内容 本实验要求从键盘输入一个关系的关系矩阵,判断该关系是否是自反的、对称的、传递的、反自反的、反对称的。用C语言或MATLAB实现。 三、实验源程序 #...

    一、实验目的

    熟悉关系的性质,掌握求判断关系性质的方法。

    二、实验内容

    本实验要求从键盘输入一个关系的关系矩阵,判断该关系是否是自反的、对称的、传递的、反自反的、反对称的。用C语言或MATLAB实现。

    三、实验源程序

    #define _CRT_SECURE_NO_WARNINGS//避免scanf编译不通过
    #include <stdio.h>
    #include <stdlib.h>
    void Input();//输入关系矩阵
    bool Ref();//判断是否自反
    bool NoRef();//判断是否反自反
    bool Sym();//判断是否对称
    bool NoSym();//判断是否反对称
    bool Tra();//判断是否传递
    int matrix[100][100]{ 0 };
    int line;
    int main()
    {
    	Input();
    	if (Ref())
    		printf("该关系是自反的\n");
    	if (NoRef())
    		printf("该关系是反自反的\n");
    	if (Sym())
    		printf("该关系是对称的\n");
    	if (NoSym())
    		printf("该关系是反对称的\n");
    	if (Tra())
    		printf("该关系是传递的!\n");
    	return 0;
    }
     
    void Input()
    {
    	printf("请输入关系矩阵的行列数(行列数小于等于100):\n");
    	scanf("%d", &line);
    	if (line > 100 || line < 1)//判断行列数是否合法
    	{
    		printf("非法输入!\n");
    		exit(0);
    	}
    	printf("请输入关系矩阵:\n");
    	for (int i = 0;i < line;i++)
    	{
    		for (int j = 0;j < line;j++)
    		{
    			scanf("%d", &matrix[i][j]);
    			if (matrix[i][j] >= 2 || matrix[i][j] < 0)
    			{
    				printf("输入关系矩阵错误\n");
    				exit(0);
    			}
    		}
    	}
    }
    bool Tra()
    {
    	for (int i = 0;i < line;i++)
    	{
    		for (int j = 0;j < line;j++)//二重数组遍历关系矩阵
    		{
    			if (matrix[i][j] == 1)//如果第i行j列的元素是1
    			{
    				for (int k = 0;k < line;k++)//开始搜索第j行为1的元素
    				{
    					if (matrix[j][k] == 1)
    					{
    						if (matrix[i][k] != 1)
    							return false;//如果存在这种情况:第i行第j
    //列和第j行第k列的元素均为1,但是第i行第k列的元素不为1,则不具有传递性
    					}
    				}
    			}
    		}
    	}
    	return true;
    }
    bool Ref()
    {
    	for (int i = 0;i < line;i++)
    	{
    		if (matrix[i][i] != 1)
    			return false;//只要主对角线元素存在非1元素,即不具有自反性
    	}
    	return true;
    }
    bool NoRef()
    {
    	for (int i = 0;i < line;i++)
    	{
    		if (matrix[i][i] != 0)//只要对角线存在非0元素,即不具有反自反性
    			return false;
    	}
    	return true;
    }
    bool Sym()
    {
    	for (int i = 0;i < line;i++)
    	{
    		for (int j = 0;j < line;j++)
    		{
    			if (matrix[i][j] != matrix[j][i])
    	//只要第i行第j列元素和第j行第i列元素不相等,即不是对称矩阵,则不具有对称性
    				return false;
    		}
    	}
    	return true;
    }
    bool NoSym()
    {
    	for (int i = 0;i < line;i++)
    	{
    		for (int j = 0;j < line;j++)
    		{
    			if (matrix[i][j] == matrix[j][i] 
    			        && (matrix[i][j] == 1 || matrix[j][i] == 1))
    	//只要存在两个对称位置元素中,存在一个为1,另一个同样为1,则不具有反对称性
    				return false;
    		}
    	}
    	return true;
    }
    

    四、实验分析

    实验要求利用关系矩阵判断五个性质,我们要了解这些性质在关系矩阵的体现是什么。正如源代码中的注释。之后,码代码是很简单的。

    展开全文
  • 离散数学中二元关系的判定及自反、对称、传递闭包的计算
  • 离散数学实验三 关系性质判断

    千次阅读 2020-06-13 22:15:03
    熟悉关系的性质,掌握求判断关系性质的方法 二、实验内容 定义1 设R是集合X上的二元关系,任意的x∈X,都满足<x,x>∈R,则R是自反的。 定义2 设R是集合X上的二元关系,任意的x∈X,都满足<x,x>R,则...

    一、实验目的

    熟悉关系的性质,掌握求判断关系性质的方法

    二、实验内容

    定义1 设R是集合X上的二元关系,对任意的x∈X,都满足<x,x>∈R,则R是自反的。
    定义2 设R是集合X上的二元关系,对任意的x∈X,都满足<x,x>R,则R是反自反的。
    定义3 设R是集合X上的二元关系,对任意的x,y∈X,满足<x,y>∈R<y,x>∈R,则R是对称的。
    定义4 设R是集合X上的二元关系,对任意的x,y∈X,满足<x,y>∈R∧<y,x>∈Rx=y,则R是反对称的。X`
    定义5 设R是集合X上的二元关系,对任意的x,y,z∈X,满足<x,y>∈R∧<y,z>∈R<x,z>∈R,则R是传递的。
    本实验要求从键盘输入一个关系的关系矩阵,判断该关系是否是自反的、对称的、传递的、反自反的、反对称的。用C语言或MATLAB实现。
    

    三、实验源程序及结果截图
    1.实验源程序:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main() {
    	int i,j,n;
    	//输入关系矩阵,只能输入0或1,若不是0或1,提示输入错误并结束程序 
    	printf("请输入关系矩阵阶数n:\n");
    	scanf("%d",&n);
    	int a[n][n];
    	printf("请输入关系矩阵真值(0或1):\n");
    	for(i=0;i<n;i++){
    		for(j=0;j<n;j++){
    			scanf("%d",&a[i][j]);
    		}
    	}
    	for(i=0;i<n;i++){
    		for(j=0;j<n;j++){
    			if(a[i][j]!=0&&a[i][j]!=1){
    				printf("输入错误!");
    				return 0;
    			}
    		}
    	}
    	//判断是否为自反矩阵(自反矩阵主对角线元素全为1) 
    	for(i=0;i<n;i++){
    		if(a[i][i]!=1)break; 	
    	}
    	if(i==n)printf("该关系矩阵是自反的\n");
    	else if(i<n)printf("该关系矩阵不是自反的\n");
    	//判断是否为反自反矩阵(反自反矩阵主对角线元素全为0)
    	 for(i=0;i<n;i++){
    		if(a[i][i]!=0)break; 	
    	}
    	if(i==n)printf("该关系矩阵是反自反的\n");
    	else if(i<n)printf("该关系矩阵不是反自反的\n");
    	//判断是否为对称矩阵(对称矩阵a[i][j]==a[j][i])
    	for(i=0;i<n;i++){
    		for(j=0;j<n;j++){
    			if(a[i][j]!=a[j][i])break;			
    		}
    	}
    	if(i>=n&&j>=n)printf("该关系矩阵是对称的\n");
    	else  printf("该关系矩阵不是对称的\n");
    	//判断是否为反对称矩阵(反对称矩阵中i!=j时,a[i][j]和a[j][i]不能同时为1)
    	for(i=0;i<n;i++){
    		for(j=0;j<n;j++){
    			if(i!=j){
    				if(a[i][j]==1&&a[j][i]==1)break;
    			}			
    		}
    	}
    	if(i>=n&&j>=n)printf("该关系矩阵是反对称的\n");
    	else  printf("该关系矩阵不是反对称的\n");
    	//判断是否为传递矩阵(传递矩阵若a[i][j]==1并且a[j][k]==1则a[i][k]一定为1)
    	int k;
    	for(i=0;i<n;i++){
    		for(j=0;j<n;j++){
    			for(k=0;k<n;k++){
    				if(a[i][j]==1&&a[j][k]==1){
    					if(a[i][k]!=1)break;
    				}
    			}
    						
    		}
    	}
    	if(i>=n&&j>=n&&k>=n)printf("该关系矩阵是传递的\n");
    	else  printf("该关系矩阵不是传递的\n");
    	return 0;
    }
    
    展开全文
  • 判断关系性质:判断关系性质--离散课程设计.有关离散的程序,用C++编写的.
  • 一、常见的关系性质 、 二、关系性质示例 、 三、关系运算性质





    一、常见的关系的性质



    在 自然数集 N = { 0 , 1 , 2 , ⋯   } N=\{ 0, 1,2, \cdots \} N={0,1,2,} 上 , 如下关系的性质 :



    1. 小于等于关系 :


    小于等于关系 :

    符号化描述 : ≤ = { < x , y > ∣ x ∈ N ∧ y ∈ N ∧ x ≤ y } \leq = \{ <x, y> | x \in N \land y \in N \land x \leq y \} ={<x,y>xNyNxy}

    关系性质 : 自反 , 反对称 , 传递



    2. 大于等于关系 :


    大于等于关系 :

    符号化描述 : ≥ = { < x , y > ∣ x ∈ N ∧ y ∈ N ∧ x ≥ y } \geq = \{ <x, y> | x \in N \land y \in N \land x \geq y \} ={<x,y>xNyNxy}

    关系性质 : 自反 , 反对称 , 传递



    3. 小于关系 :


    小于关系 :

    符号化描述 : < = { < x , y > ∣ x ∈ N ∧ y ∈ N ∧ x < y } < = \{ <x, y> | x \in N \land y \in N \land x < y \} <={<x,y>xNyNx<y}

    关系性质 : 反自反 , 反对称 , 传递



    4. 大于关系 :


    大于关系 :

    符号化描述 : > = { < x , y > ∣ x ∈ N ∧ y ∈ N ∧ x > y } > = \{ <x, y> | x \in N \land y \in N \land x > y \} >={<x,y>xNyNx>y}

    关系性质 : 反自反 , 反对称 , 传递



    5. 整除关系 :


    整除关系 :

    符号化描述 : ∣ = { < x , y > ∣ x ∈ N ∧ y ∈ N ∧ x ∣ y } | = \{ <x, y> | x \in N \land y \in N \land x | y \} ={<x,y>xNyNxy}

    关系性质 : 反对称 , 传递


    x ∣ y x|y xy 中的 ∣ | 符号是整除的意思 , x x x 整除 y y y ;

    • x x x 整除 y y y , x x x 是除数 (分子) , y y y 是被除数 (分母) ; y x \dfrac{y}{x} xy

    • y y y 能被 x x x 整除 , x x x 是除数 (分子) , y y y 是被除数 (分母) ; y x \dfrac{y}{x} xy

    • 整除关系中 , 一定要注意 , 只能非 0 0 0 整除 0 0 0 , 0 0 0 不能整除非 0 0 0 , 即 0 0 0 只能作被除数 , 不能作除数 ;

    参考 : 【集合论】二元关系 ( 特殊关系类型 | 空关系 | 恒等关系 | 全域关系 | 整除关系 | 大小关系 ) 三、 整除关系



    6. 恒等关系 :


    恒等关系 :

    符号化描述 : I N = { < x , y > ∣ x ∈ N ∧ y ∈ N ∧ x = y } I_N = \{ <x, y> | x \in N \land y \in N \land x = y \} IN={<x,y>xNyNx=y}

    关系性质 : 自反 , 对称 , 反对称 , 传递



    7. 全域关系 :


    全域关系 :

    符号化描述 : E N = { < x , y > ∣ x ∈ N ∧ y ∈ N } = N × N E_N = \{ <x, y> | x \in N \land y \in N \} = N \times N EN={<x,y>xNyN}=N×N

    关系性质 : 自反 , 对称 , 传递



    自反 , 反对称的关系 , 称为偏序关系 ;





    二、关系的性质示例



    关系图关系判定 :

    • ① 自反 : 关系图中所有顶点 都有环 ;
    • ② 反自反 : 关系图中所有顶点 都没有环 ;
    • ③ 对称 : 两个顶点之间 有 0 0 0 个或 2 2 2 个有向边 ;
    • ④ 反对称 : 两个顶点之间 有 0 0 0 个或 1 1 1 个有向边 ;
    • ⑤ 传递 : 前提 a → b , b → c a \to b , b\to c ab,bc 不成立 默认传递 , 前提 a → b , b → c a \to b , b\to c ab,bc 成立 必须满足 a → c a \to c ac 存在 ;


    1. R 1 = { < a , a > , < a , b > , < b , c > , < a , c > } R_1 = \{ <a, a> , <a, b> , <b , c> , <a,c> \} R1={<a,a>,<a,b>,<b,c>,<a,c>} :


    绘制上述关系的关系图 : 反对称 , 传递
    在这里插入图片描述

    自反/反自反 : 有的顶点有环 , 有的顶点没有环 , 自反和反自反都不成立 ;

    对称/反对称 : 顶点之间都是 1 1 1 条有向边 , 顶点之间只有 0 / 1 0/1 0/1 条边 , 是 反对称 的 ;

    传递 : a → b , b → c a\to b, b \to c ab,bc 成立 , a → c a \to c ac 存在 , 传递性 成立 ;



    2. R 2 = { < a , a > , < a , b > , < b , c > , < c , a > } R_2 = \{ <a, a> , <a, b> , <b , c> , <c,a> \} R2={<a,a>,<a,b>,<b,c>,<c,a>} :


    绘制上述关系的关系图 : 反对称

    在这里插入图片描述

    自反/反自反 : 有的顶点有环 , 有的顶点没有环 , 自反和反自反都不成立 ;

    对称/反对称 : 顶点之间都是 1 1 1 条有向边 , 顶点之间只有 0 / 1 0/1 0/1 条边 , 是 反对称 的 ;

    传递 : a → b , b → c a\to b, b \to c ab,bc 成立 , a → c a \to c ac 不存在 , 传递性 不成立 ;



    3. R 3 = { < a , a > , < b , b > , < a , b > , < b , a > , < c , c > } R_3 = \{ <a, a> , <b, b> , <a,b> , <b,a> , <c,c> \} R3={<a,a>,<b,b>,<a,b>,<b,a>,<c,c>} :


    绘制上述关系的关系图 : 自反 , 对称 , 传递

    在这里插入图片描述

    自反/反自反 : 所有顶点都有环 , 自反性 成立 ;

    对称/反对称 : 顶点之间都是 0 0 0 2 2 2 条有向边 , 顶点之间只有 0 / 2 0/2 0/2 条边 , 是 对称 的 ;

    传递 : 传递性 成立 ;

    • 前提 a → b , b → a a \to b , b\to a ab,ba , 对应存在 a → a a \to a aa
    • 前提 b → a , a → b b \to a , a\to b ba,ab , 对应存在 b → b b \to b bb


    4. R 4 = { < a , a > , < a , b > , < b , a > , < c , c > } R_4 = \{ <a, a> , <a,b> , <b,a> , <c,c> \} R4={<a,a>,<a,b>,<b,a>,<c,c>} :


    绘制上述关系的关系图 : 对称

    在这里插入图片描述

    自反/反自反 : 有的顶点有环 , 有的顶点没有环 , 自反和反自反都不成立 ;

    对称/反对称 : 顶点之间都是 0 0 0 2 2 2 条有向边 , 顶点之间只有 0 / 2 0/2 0/2 条边 , 是 对称 的 ;

    传递 : 传递性 不成立 ;

    • 前提 a → b , b → a a \to b , b\to a ab,ba , 对应存在 a → a a \to a aa
    • 前提 b → a , a → b b \to a , a\to b ba,ab , 不存在对应的 b → b b \to b bb , 这里传递性不成立 ;


    5. R 5 = { < a , a > , < a , b > , < b , b > , < c , c > } R_5 = \{ <a, a> , <a,b> , <b,b> , <c,c> \} R5={<a,a>,<a,b>,<b,b>,<c,c>} :


    绘制上述关系的关系图 : 自反 , 反对称 , 传递

    在这里插入图片描述

    自反/反自反 : 所有顶点都有环 , 自反性 成立 ;

    对称/反对称 : 顶点之间都是 0 0 0 1 1 1 条有向边 , 顶点之间只有 0 / 1 0/1 0/1 条边 , 是 反对称 的 ;

    传递 : 前提不成立 , 传递性 成立 ;



    6. R 6 = { < a , a > , < b , a > , < b , c > , < a , a > } R_6 = \{ <a, a> , <b,a> , <b,c> , <a,a> \} R6={<a,a>,<b,a>,<b,c>,<a,a>} :


    绘制上述关系的关系图 : 没有任何关系

    在这里插入图片描述

    自反/反自反 : 有的顶点有环 , 有的顶点没有环 , 自反和反自反都不成立 ;

    对称/反对称 : 顶点之间都是 1 1 1 2 2 2 条有向边 , 顶点之间只有 0 / 1 0/1 0/1 条边是反对称 , 顶点之间只有 0 / 2 0/2 0/2 条边是对称 , 上述对称/反对称都不成立 ;

    传递 : 前提 a → b , b → c a \to b , b \to c ab,bc , 不存在对应的 a → c a \to c ac , 这里传递性不成立 ;





    三、关系运算性质



    讨论问题 : 指定性质的关系 之间进行运算 , 其结果的性质 ; 如 自反的两个关系 进行逆序合成运算 , 结果扔是自反的 ;

    下图中表格的含义是 : 如 第二列 “自反”第三列 “ R 1 ∪ R 2 R_1 \cup R_2 R1R2 , 交叉的表格位置 , 代表 关系 R 1 R_1 R1 与关系 R 2 R_2 R2 是自反的 , 其有序对交集是否是自反的 , 如果是 1 1 1 , 说明是自反的 , 如果没有值 , 说明不是自反的 ;


    自反反自反对称反对称传递
    R 1 − 1 , R 2 − 1 R_1^{-1}, R_2^{-1} R11,R21 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    R 1 ∪ R 2 − 1 R_1 \cup R_2^{-1} R1R21 1 1 1 1 1 1 1 1 1
    R 1 ∩ R 2 R_1 \cap R_2 R1R2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    R 1 ∘ R 2 , R 2 ∘ R 1 R_1 \circ R_2 , R_2 \circ R_1 R1R2,R2R1 1 1 1
    R 1 − R 2 , R 2 − R 1 R_1 - R_2 , R_2 - R_1 R1R2,R2R1 1 1 1 1 1 1 1 1 1
    ∼ R 1 , ∼ R 2 \sim R_1, \sim R_2 R1,R2 1 1 1
    展开全文
  • 编程实现关系性质判断 提示: 用矩阵表示二元关系 通过矩阵的特征判断二元关系所具有的性质 运用二维数组实现矩阵的输入 ,然后判断自反性,反自反性,对称性,反对称性,传递性。 思路 自反性,反自反性实现较为...
  • #include&lt;stdio.h&gt;#include&lt;.../**********集合A的输入,去掉A的符号***********/ printf("请输入集合A ( 必须以'}'结束 )\n"); scanf("%s",m); f...
  • 形式逻辑(07)性质判断 和 推理

    千次阅读 2020-06-17 10:49:16
    性质判断的构成:性质判断是由主项、谓项、联项和量项组成。 主项:表示被断定对象的概念,用“S”表示。 谓项:表示被断定对象性质的概念,用“P”表示。 联项:它是联结主项和谓项的概念,分为肯定和否定两种。...
  • c语言程序判断关系R集合A是否等价、相容、偏序

    千次阅读 多人点赞 2019-11-11 21:51:53
    这是我们离散老师布置的第二次程序作业,...判断关系R集合A是否等价、相容、偏序,也就是判断关系R是否满足自反,对称,反对称,传递这些性质。 等价:自反,对称,传递 相容:自反,对称 偏序:自反,反对称,传...
  • 题目较为简单,不做过多解释,有问题可以评论区留言,我每天签到的时候会关注评论区的内容
  • 【离散数学】二元关系性质

    千次阅读 2021-02-11 11:45:17
    二元关系的主要性质有:自反性、反自反性、对称性、反对称性、传递性,这几个性质的判定有一些坑,决定简单分析分析
  • 性质判断1) 性质判断:就是断定对象具有或不具有某种属性的判断 (也称为直言判断或直言命题)。 例如: 这个人是律师。2) 性质判断的构成  I. 主项:表示被断定对象的概念,用 “S” 表示  Ⅱ. 谓项:表示被断定...
  • 我尝试着编程实现了课本上集合与关系的相关内容,如集合的逆运算,复合运算,集合上关系性质判断与闭包运算等,基本判断方法均为定义法。 代码如下: #include<iostream> #include<vector> #...
  • 离散数学 习题篇 —— 关系性质

    千次阅读 2019-10-28 19:46:33
    集合A上的关系R,判断R的性质。 输入格式: 第一行是一个整数N(1≤N≤1000),表示集合A={1,2,3,⋯,N}; 第二行是一个整数m(0≤m≤109); 后跟m行,每行两个由空格隔开的整数x,y,表示<x,y>∈R。 输出格式: ...
  • ( 2 ) 偏序关系 与 等价关系 ( 等价关系 用于分类 | 偏序关系 用于组织 ) 2. 偏序集定义 ( 1 ) 偏序集定义 二. 偏序关系 示例 1. 小于等于关系 ( 1 ) 小于等于关系 说明 ( 2 ) 小于等于关系 分析 2. 大于等于...
  • 离散数学 关系性质判断及其闭包运算

    千次阅读 多人点赞 2013-11-27 20:33:33
    1、关系矩阵的特性判断 判断任意给定一个6×6的关系矩阵是否是自反的、对称的、反对称的,并显示运算结果。 #include using namespace std; int main() { int a[6][6],i; for(i=0;i;i++) { for(int j=0;j...
  • 离散数学(6)——关系的表示和关系性质 一、关系矩阵 A={a1,a2,…,an},R⊆A×A R的关系矩阵 M( R )=(rij)n×n eg: A={a,b,c} R1={<a,a>,<a,b>,<b,a>,<b,c>} R2={<a,b>,<...
  • 二、传递性示例 上述关系 , 符合 xRyxRyxRy , yRzyRzyRz 时 , 存在 xRzxRzxRz , 则上述关系是传递的 ; 上述关系 , 符合 xRyxRyxRy , yRzyRzyRz 时 , 不存在 xRzxRzxRz , 则上述关系不是传递的 ; 上述...
  • 一、全序关系 ( 线序关系 ) 、 二、全序关系示例 、 三、拟序关系 、 四、拟序关系定理 1 、 四、拟序关系定理 2 、 五、三歧性、拟线序 、
  • 通过编程实现任意集合上二元关系性质判定,借此过程让学生充分理解二元关系的 自反性、对称性、传递性、反自反性和反对称性。 要求:  能正确判定任意二元关系的自反性、对称性、传递性、反自反性和反对称性。 ...
  • 二元关系类 成员变量: 指向存储一维数组的关系矩阵的指针p; 矩阵的阶数;... 判断关系的特性 //自反,对称,传递  关系的逆; √ 与或位运算;  关系的交并差补; //调用与或位运算 √ 关系的合成;
  • 的交集 , 包含 恒等关系中 ; 如果两个顶点之间有两条边 , 求逆之后 , 两个顶点的两个的两条边分别反向 , 还是相同的两条边 , 如果二者求交集 , 还是存在两条边 , 肯定不是恒等关系 , 恒等关系都是环 ; ( 不符合...
  • 2、函数的性质进行判断判断单射、满射和双射); 3、提供判断结果的输出。 代码: #include<string.h> #include<iostream> using namespace std; char *A,*B,*F; int a,b,f; int Judge(c
  • 一、偏序关系、 二、偏序集、 三、可比、 四、严格小于、 五、覆盖、 六、哈斯图、 七、全序关系 ( 线序关系 )、 八、拟序关系、 九、拟序关系相关定理、 十、偏序关系八种特殊元素、 十一、链、 十二、反链、 十三...
  • 题目:根据某一集合元素以及关系矩阵,判断其满足什么特性,输出满足的特性,再求此集合的闭包。 举例:以集合{1,2,3,4}为例。关系矩阵为:[[1,0,1,0],[0,1,0,0],[1,0,1,1],[0,0,1,1]]。 程序代码 //集合 A = {1,2...
  • 离散数学:用C语言来判断集合存在的二元关系

    千次阅读 多人点赞 2018-06-26 22:26:32
    用C语言来判断是否满足自反,反自反,非自反,对称,反对称,非对称和传递性也不知道写的不对。没有大量验证,但是随便找的一些关系测试的没毛病,如果错了,欢迎各位大佬留言#include&lt;bits/stdc++.h&...
  • 如何判断关系是否自反,反自反,对称,反对称,传递

    万次阅读 多人点赞 2019-06-19 11:10:23
    首先,求出关系关系矩阵,即布尔逻辑0、1矩阵。 例如,集合A={1,2,5,8,12,16} R是整除关系。 那么我们写成关系矩阵。 关系矩阵 M= 1 1 1 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 R={&...
  • 角化的线性变换的提出背景 可角化的线性变换的定义 定理1:线性变换可角化...存在一组基,使得线性变换A‾\underline{A}A​这组基下的矩阵为角阵   ⟺  \iff⟺ AAA的等价类存在角阵,即AAA可

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 97,413
精华内容 38,965
关键字:

在性质判断的对当关系中