news 2026/1/24 4:48:07

基于C++实现集合的关系性质计算器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于C++实现集合的关系性质计算器

集合的关系性质计算器

使用语言:

C++ (C++17标准)

测试环境:

  • g++ (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
  • g++ (MinGW.org GCC-6.3.0-1) 6.3.0

编译部署:

g++ app.cc -std=c++17 -O2 -o app ./app

设计要求

输入一个集合,还有集合的一个关系。判断该关系是否是恒等、(反)自反、(反)对称、传递、等价、相容、偏序的。

设计思想

首先将整个集合抽象成一个点集,关系抽象成边集,那么整个广群就是一个图。再根据关系性质的判断条件判断关系是否是恒等、自反、对称、传递的。接着等价相容和偏序关系可以由已经求出的急中基础关系推断出。

在输入集合元素的过程中,可以由两个映射std::map来保存原元素的关系,并离散化到

中。并且图中同时由邻接矩阵和链式前向星存图,同时保证指定两点关系和遍历边时的效率。

存入图之后,先判断恒等关系和(反)自反关系,再判断对称和传递关系。其中如果没有恒等关系,则对称和反对称关系可以直接跳过来节省时间。接着,这些关系可以直接推测出等价、相容和偏序关系的判定情况。

流程图

graph TB st{程序开始} st-->input subgraph 存图 input[输入集合] inputedge[输入关系] save{存图} input-->inputedge inputedge---save end subgraph 检查 ident[恒等] reflex[反自反/自反] sym[反对称/对称] trans[传递] equ[等价] compa[相容] part[偏序] inputedge-->ident ident-->reflex reflex-->sym sym-->trans trans-->equ equ-->compa compa-->part end output[输出结果] fi{程序结束} part-->output output-->fi

输入输出截图

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/18 16:30:34

先给大伙儿拆解下五层电梯PLC程序的实现逻辑。这玩意儿核心是状态转移和信号竞争,咱们直接上硬核部分。(文末附IO表与接线说明)

五层电梯三菱plc程序有注释,有io分配表,电气接线图。 实现的功能如下。 (提供学习,由于文件形式发送) 功能:1、外呼梯功能:电梯门外有呼叫信号时,电梯运行到呼叫楼层停止,然后电梯开门到达一段时间后电梯关…

作者头像 李华
网站建设 2026/1/21 23:44:14

「码同学」2025VIP性能测试课程

「码同学」2025VIP性能测试课程:解锁高并发时代的“系统韧性”密码 在数字化业务爆发式增长的2025年,相关示例系统性能已成为企业竞争力的核心战场。从电商大促的瞬时流量冲击,到金融交易的毫秒级响应要求,性能测试工程师的角色正…

作者头像 李华
网站建设 2026/1/21 18:23:32

零基础转行AI产品经理:大模型学习路线与面试题库全攻略

本文分享了一位5年B端金融产品经理成功转行AI产品经理的完整经验。作者详细介绍了转行前的技术储备(AI技术理解和AIGC项目经历)、简历撰写技巧、面试流程与常见问题,以及求职过程中的学习方法。文章还提供了AI大模型学习路线、面试题库等实用…

作者头像 李华
网站建设 2026/1/22 13:02:19

iOS 组件化:模块拆分、依赖反转、解耦实践

为什么需要组件化 单体架构的痛点 ┌─────────────────────────────────────────────────────────┐ │ 单体应用架构 │ ├───────────────────…

作者头像 李华
网站建设 2026/1/21 21:40:43

测试数据生成的AI解决方案

测试数据的挑战与AI的机遇 在软件测试领域,高质量测试数据是保障测试有效性的基石。然而,传统测试数据生成方法面临诸多痛点:生产环境数据脱敏成本高、合成数据与真实场景偏差大、多环境数据一致性难以维护。随着人工智能技术的成熟&#xf…

作者头像 李华