精华内容
下载资源
问答
  • # 离散数学#对称和反对称

    千次阅读 2020-12-31 19:26:27
    亦你“具有对称性的关系”。对于类k中一个确定的关系R来说,类k中的任意两个个体x,y, 如果xRy真yRx就必真,则称关系R为类k中对称的关系(对称关系), 如果xRy真yRx就必假, 则称关系R为类K中反对称的关系(反对称...

    亦你“具有对称性的关系”。对于类k中一个确定的关系R来说,类k中的任意两个个体x,y, 如果xRy真yRx就必真,则称关系R为类k中对称的关系(对称关系), 如果xRy真yRx就必假, 则称关系R为类K中反对称的关系(反对称关系;如果对于某些个体x,y, xRy真同时yRx也真, 而对于另外的个体x,y,xRy真时yRx却假,则称关系R为类k中非对称的关系(非对称关系。例如,两条直线之间的平行关系、垂直关系、 两个数之间的相等关系等都是对称的关系;两个实数之间的大于关系、 小于关系等部是反对称的关系,两个实数之间的不大于关系, 不小于关系等则是非对称的关系, 这是因为由a不大于b, 并不能断定b是否不大于a。 [2]

    展开全文
  • C++离散数学算法判断对称矩阵,是一个6*6的矩阵,输入时候可要仔细一点,输入错误的话矩阵就没意义了,VC++写这类矩阵程序,其实也并复杂哦,判断是否是配对矩阵,其实是很有意思的事。
  • //分别将自反性、对称性、传递性的编号为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++实现 离散数学 “自反 对称 ” 详解 想要一个关系的实现,那么最重要的就是对于其关系原理的理解 话多说直接开始吧! 自反: 其实就是要求在关系图中每一个顶点都有一个环,即在关系矩阵中要求主对角线上的...

    c++实现 离散数学 “自反 对称 ” 详解

    想要一个关系的实现,那么最重要的就是对于其关系原理的理解
    话不多说直接开始吧!


    自反性:

    其实就是要求在关系图中每一个顶点都有一个环,即在关系矩阵中要求主对角线上的元素为1。
    就像这样:

    在这里插入图片描述
    注意:这里的时候要每一个元素都有环,或者说在关系矩阵中主对角线都是1,才叫做具有自反性
    像下面的这个,就不具有自反性了

    在这里插入图片描述

    反自反性:

    听名字就可以知道,他和自反性是完全相反的,所以只要在关系图中每一个顶点都没有环,即在关系矩阵中要求主对角线上的元素为0。
    像这样:

    在这里插入图片描述
    注意:这里的时候要每一个元素都没有环,或者说在关系矩阵中主对角线都是0,才叫做具有反自反性
    像下面的这个,就不具有自反性了,也不具有反自反性,他啥也不是

    在这里插入图片描述
    清楚了他的原理,那么代码的思路就直接出来了
    思路:他是4个元素对吧,我们其实就是在判断他主对角线0和1的个数,设立一个二维数组,来对于a[i][i]主对角线进行判断
    代码:

    void shuzu::zifanxing()//主要依据 
    {
    	int cout0 = 0,cout1 = 0;
    	for (int i = 1; i < 5; i++)
    	{
    		if (a[i][i] == 0)
    			cout0++;
    		else if (a[i][i] == 1)
    			cout1++;
    	}
    	if (cout0 == 4) cout << "这个呢,具有自反性" << endl;
    	else if (cout1 == 4) cout << "这个呢,具有反自反性" << endl;
    	else cout << "这个呢,在自反方面啥也不是" << endl;
    }
    

    对称性

    这个就比较的好判断,在关系图中就看他有没有礼尚往来,如果具有对称性那么他一定全部!是双边,而在关系矩阵中就是直接关于主对角线对称就可以哒。
    像这样:

    在这里插入图片描述
    他们是不是对称了,哈哈哈哈哈哈哈

    反对称性

    这个嘛,就是只有单边,没有双边,即在关系矩阵里面没有一个对称的。
    超级经典的就是下三角:

    在这里插入图片描述
    在这里的话,就要注意一下,如果有单有双,那么他在对称性方面他啥也不是。主对角线上的的数不影响他的对称性,你想嘛!关于主对角线对称的话不就是他本身了
    思路:
    简单的来说就是履历看,a[i][j]和a[j][i],他们是不是相等。来记录他的的单边和双边,再在最后来判断。
    代码:

    void shuzu::duichenxing()
    { 
    	int cout1 = 0, cout0 = 0;
    	for (int i = 1; i < 5; i++)
    	for (int j = 1; j < 5; j++)
    	{
    		if (a[i][j] == a[j][i])  cout1++;
    		else if (a[i][j] != a[j][i])  cout0++;
    	}
    	if (cout0 == 0 && cout1 != 0) cout << "这个呢,具有对称性";
    	else if (cout1 == 0 && cout0 != 0)  cout << "这个呢,不具有对称性";
    	else cout << "这个呢,在对称性方面啥也不是" << endl;
    
    }
    

    最后为了让输入输出的效率更高,我在数组那一块用了重载
    重载的介绍可以看 数组输入输出流的重载
    https://blog.csdn.net/weixin_52521533/article/details/116309686?spm=1001.2014.3001.5502

    *

    整体代码

    #include <iostream>
    using namespace std;
    class shuzu
    {
    public:
    	void display();
    	void zifanxing();//自反性
    	void duichenxing();//对称性
    	friend istream & operator >> (istream&input,shuzu&A);
    	friend ostream & operator << (ostream&output, shuzu&A);
    private:
    	int a[5][5];//定义一个4*4的数组,下标0不储存。
    };
    void shuzu::zifanxing()//主要依据 
    {
    	int cout0 = 0,cout1 = 0;
    	for (int i = 1; i < 5; i++)
    	{
    		if (a[i][i] == 0)
    			cout0++;
    		else if (a[i][i] == 1)
    			cout1++;
    	}
    	if (cout0 == 4) cout << "这个呢,具有自反性" << endl;
    	else if (cout1 == 4) cout << "这个呢,具有反自反性" << endl;
    	else cout << "这个呢,在自反方面啥也不是" << endl;
    }
    void shuzu::duichenxing()
    { 
    	int cout1 = 0, cout0 = 0;
    	for (int i = 1; i < 5; i++)
    	for (int j = 1; j < 5; j++)
    	{
    		if (a[i][j] == a[j][i])  cout1++;
    		else if (a[i][j] != a[j][i])  cout0++;
    	}
    	if (cout0 == 0 && cout1 != 0) cout << "这个呢,具有对称性";
    	else if (cout1 == 0 && cout0 != 0)  cout << "这个呢,不具有对称性";
    	else cout << "这个呢,在对称性方面啥也不是" << endl;
    
    }
    void shuzu::display()
    {
    	for (int i = 1; i < 5; i++)
    	for (int j = 1; j < 5; j++)
    		cin >> a[i][j];
    }
    ostream & operator << (ostream&ou, shuzu&A)
    {
    	for (int i = 1; i < 5; i++)
    	for (int j = 1; j < 5; j++)
    		ou << A.a[i][j];
    	return ou;
    }
    istream & operator >> (istream&in, shuzu&A)
    {
    	for (int i = 1; i < 5; i++)
    	for (int j = 1; j < 5; j++)
    		in >> A.a[i][j];
    	return in;
    }
    int main()
    {
    	shuzu A;
    	cin>>A; 
    	A.duichenxing();
    	A.zifanxing();
    	return 0;
    }
    
    展开全文
  • 离散数学

    千次阅读 2019-08-20 22:25:56
    数学符号的意思 ∈意思:属于 ⊆意思:子集 ∩表示交集 设A,B是两个...关系是否对称 下整数和上整数 函数 定义域和值域 入射 满射 双射 逆函数 第三章算法 伪代码 最大公约数

    数学符号的意思
    ∈意思:属于
    ⊆意思:子集
    ∩表示交集 设A,B是两个集合,由所有属于集合A且属于集合B的元素所组成的集合,叫做集合A与集合B的交集(intersection)
    ∪表示并集 若A和B是集合,则A和B并集是有所有A的元素和所有B的元素,而没有其他元素的集合
    ∑符号表示求和 ∑读音为sigma,英文意思为Sum,Summation,就是和 其中i表示下界,n表示上界, k从i开始取数,一直取到n,全部加起来。
    π表示求积

    一,逻辑与证明
    p v q ==> p or q
    p ∧ q ===> p and q

    p加个上划线表示 not p
    一个语句,如果它或是真的,或是假的(但不是既真又假),称为一个命题。

    如果p和q都是命题,如p则q,称为条件命题。

    p   F     q    F             ====>     p-->q             T
    p   F     q    T            ===⇒       p--->q           T
    p   T     q    F            ====>      p----->q          F
    p   T     q    T            ===⇒       p------>q        T
    

    q —> p为p—>q的逆命题

    如果p和q都是命题,复合命题p当且仅当q称为双条件命题
    p <----> q

    p T q T ===> p --> q T
    p F q T ====> p—>q F
    p T q F =====> p—>q F
    p F q F ===⇒ p—> q T

    两个不同的复合命题不管组成的命题取什么值,真值总是相同(同时为真或假),这样的命题称为逻辑等价。

    德摩根第一定律:
    在这里插入图片描述
    一个条件命题p—>q的逆反式是命题q(-在q上) —> p(-在p上)
    逆反式不但把p和q的作用互换,还对它们进行了否认。
    条件命题和逆反式是等价的。

    量词
    在这里插入图片描述
    全称量词语句
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    定理是被证明为真的命题。
    论述一个定理为真的过程称为证明。
    逻辑是分析证明的工具。

    证明方法包括直接证明法和逆向求证。
    从一系列前提得到结论的方法称为演绎推理,给出命题的系列称为前提,从这些前提得到的命题称为结论。

    二数学的语言
    一个集合由元素确认,和元素的排列顺序无关。
    在这里插入图片描述
    子集
    在这里插入图片描述
    在这里插入图片描述
    并集,交集,差集
    在这里插入图片描述
    补集
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    笛卡尔积
    在这里插入图片描述
    在这里插入图片描述
    改变下标名和上下界
    在这里插入图片描述
    增序列和减序列
    在这里插入图片描述
    在这里插入图片描述
    关系
    在这里插入图片描述
    在这里插入图片描述

    关系是否对称
    在这里插入图片描述
    下整数和上整数
    在这里插入图片描述
    函数
    在这里插入图片描述
    定义域和值域
    在这里插入图片描述
    入射
    在这里插入图片描述
    满射
    在这里插入图片描述
    双射
    在这里插入图片描述
    在这里插入图片描述
    逆函数
    在这里插入图片描述
    第三章算法
    在这里插入图片描述
    伪代码
    在这里插入图片描述
    最大公约数
    在这里插入图片描述

    展开全文
  • 看了离散数学中的关系整理了一点关于n元集合中各种关系的计算,现写下这个方便大家学习交流理解。其中有自反,对称,反自反,非对称等关系数的结论和计算方法,可供参考,
  • // 将满足传递的去除 if (coverRelationMatrix[i][i1] && coverRelationMatrix[i1][i2]) { coverRelationMatrix[i][i2] = false; } } } } } // 以序偶对的方式输出覆盖关系矩阵 public void printCoverRelation()...
  • 排列组合 离散数学 排列组 (Permutation Group) Let, X be a non-empty set. A permutation of X is a one-one function from X onto X. A group (G,*) is called a permutation group on a non-empty set X if the ...
  • 离散数学和组合数学什么关系 关系类型 (Types of Relation) There are many types of relation which is exist between the sets, 集合之间存在许多类型的关系, 1. Universal Relation 1.普遍关系 A relation r...
  • 离散结构和离散数学中文书Prerequisite: Set theory and types of set in Discrete Mathematics 先决条件: 离散数学中的集合论和集合类型 集的基数 (Cardinality of set) It is the number of elements in a set...
  • 离散数学归总

    千次阅读 多人点赞 2015-04-16 10:11:34
    离散数学是以研究离散量的结构和相互间的关系为主要目标,其研究对象一般地是有限个或可数个元素,因此它充分描述了计算机科学离散的特点。离散数学是随着计算机科学的发展而逐步建立的,它形成于七十年代初期,是...
  • 离散数学14(判断矩阵是否对称

    千次阅读 2017-06-10 23:24:10
    离散题目14 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description判断集合是不是对称的。 Input首先输入两个数n,m表示集合中元素的个数,以及存在的关系数。 接下来1行包含n个以...
  • 离散数学 之 用C++实现对称闭包 在这里插入代码 #include<bits/stdc++.h> using namespace std; //定义有序对 struct Pair { int x; int y; Pair(int ix, int iy) { x = ix; y = iy; } void print() ...
  • 广义的组合数学就是离散数学,狭义的组合数学是离散数学除图论、代数结构、数理逻辑等的部分。但这只是不同学者在叫法上的区别。总之,组合数学是一门研究离散对象的科学。随着计算机科学的日益发展,组合数学的重要...
  • 离散数学答案

    万次阅读 多人点赞 2018-12-22 01:19:27
    (Q→R)∧(R→Q):一个数是奇数,则它能被2整除并且一个数能被2整除,则它是奇数。 (5) 解: 设P:王强身体很好。Q:王强成绩很好。P∧Q  设P:小李看书。Q:小李听音乐。P∧Q 设P:气候很好。Q:...
  • 离散数学关系的性质 笛卡尔积(A * B等于B * A) (Cartesian product (A*B not equal to B*A)) Cartesian product denoted by * is a binary operator which is usually applied between sets. It is a set of ...
  • 离散数学复习

    2021-01-11 08:15:47
    离散数学复习 求等价类 解题步骤 先画出关系图 关系图每一个连通分支的节点构成的集合是一个等价类 注意:每个连通分支必须是对称的。 例子 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接...
  • 2.设A={2,4},给出集合A ×A 上的恒等关系I 、一个既对称又反对称的关系R 。 3.设无向树T 中,有2个2度顶点,2个3度顶点,1个4度顶点,其余的顶点均为树叶。求T 的阶数n 、边数m 和树叶数t 。 四、证明题(共45分)1...
  • 离散数学——数学结构

    千次阅读 2019-10-13 12:47:43
    封闭,即闭包 (数学)。数学中,若对某个集合的成员进行一种运算,生成的仍然是这个集合的成员,则该集合被称为在这个运算下闭合。 例子: 5*5的矩阵关于加法和乘法关系是闭包的,因为两个 5 + 5 矩阵的总和是另...
  • 离散数学基础理论归纳
  • 离散数学实验

    千次阅读 2018-02-02 19:57:07
    下载地址:...1.实验一 关系矩阵 2.实验二 自反 对称 传递 3.实验三 逆 合成 传递闭包 4.极大相容类 ...免责申明:上传资料仅供学习交流使用,禁止一切正当使用行为,如有事故本人概负责

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,900
精华内容 5,160
关键字:

离散数学对称性