离散数学学习笔记——第六讲——二元关系(4.1 序偶和笛卡儿积)

 

1. 万事万物皆有联系

 

2. 有序组的定义

 

3. 笛卡儿积

 

4. 笛卡儿积的性质

 

5. 推广

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第-篇 数理逻辑  第-章 命题逻辑   1-1 命题及其表示法   1-2 联结词   1-3 命题公式与翻译   1-4 真值表与等价公式   1-5 重言式与蕴含式   1-6 其他联结词   1-7 对偶与范式   1-8 推理理论   1-9 应用  第二章 谓词逻辑   2-1 谓词的概念与表示   2-2 命题函数与量词   2-3 谓词公式与翻译   2-4 变元的约束   2-5 谓词演算的等价式与蕴含式   2-6 前束范式   2-7 谓词演算的推理理论 第二篇 集合论 . 第三章 集合与关系   3-1 集合的概念和表示法   3-2 集合的运算   3-3 包含排斥原理   3-4 序偶与笛卡尔积   3-5 关系及其表示   3-6 关系的性质   3-7 复合关系和逆关系   3-8 关系的闭包运算   3-9 集合的划分和覆盖   3-10 等价关系与等价类   3-11 相容关系   3-12 序关系  第四章 函数   4-1 函数的概念   4-2 逆函数和复合函数   4-3 特征函数与模糊子集   4-4 基数的概念   4-5 可数集与不可数集   4-6 基数的比较 第三篇 代数系统  第五章 代数结构   5-1 代数系统的引入   5-2 运算及其性质   5-3 半群   5-4 群与子群   5-5 阿贝尔群和循环群   5-6 置换群与伯恩赛德定理   5-7 陪集与拉格朗日定理   5-8 同态与同构   5-9 环与域  第六章 格和布尔代数   6-1 格的概念   6-2 分配格   6-3 有补格   6-4 布尔代数   6-5 布尔表达式 第四篇 图论  第七章 图论   7-1 图的基本概念   7-2 路与回路   7-3 图的矩阵表示   7-4 欧拉图与汉密尔顿图   7-5 平面图   7-6 对偶图与着色   7-7 树与生成树   7-8 根树及其应用 第五篇 计算机科学中的应用  第八章 形式语言与自动机   8-1 串和语言   8-2 形式文法   8-3 有限状态自动机   8-4 两类自动机的转换   8-5 有限状态机的简化   8-6 有限状态机与正则语言  第九章 纠错码初步   9-1 通讯模型和纠错的基本概念   9-2 线性分码的纠错能力   9-3 海明码   9-4 查表译码法 符号表 附录 名词索引 参考文献
以下是用 C 语言编写的求集合 A 上所有不同的二元关系的程序: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAXN 10 int n; char elements[MAXN][MAXN]; int relations[MAXN * MAXN][2]; int num_relations; void generate_relations(int pos, int count) { if (pos == n * n) { if (count == num_relations) { printf("{"); for (int i = 0; i < num_relations; i++) { printf("<%s,%s>", elements[relations[i][0]], elements[relations[i][1]]); if (i != num_relations - 1) { printf(","); } } printf("}\n"); } return; } generate_relations(pos + 1, count); relations[num_relations][0] = pos / n; relations[num_relations][1] = pos % n; num_relations++; generate_relations(pos + 1, count + 1); num_relations--; } int cmp(const void* a, const void* b) { int* p = *(int(*)[2])a; int* q = *(int(*)[2])b; if (p[0] != q[0]) { return p[0] - q[0]; } else { return p[1] - q[1]; } } int main() { char line[MAXN * 2]; fgets(line, sizeof(line), stdin); if (line[1] == '}') { n = 0; } else { char* pch = strtok(line + 1, ","); while (pch != NULL) { strcpy(elements[n++], pch); pch = strtok(NULL, ","); } } for (num_relations = 0; num_relations <= n * n; num_relations++) { generate_relations(0, 0); } return 0; } ``` 程序中使用了回溯法来生成所有可能的二元关系,其中用到了一个 `relations` 数来保存当前已经生成的关系,以及一个 `num_relations` 变量来记录当前已经生成的关系的数量。程序最终按照题目要求输出所有的二元关系

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值