当前位置: 首页 > news >正文

集合的自反关系和对称关系

集合的自反关系和对称关系

  • 一:集合的自反关系
    • 1:原理:
    • 2:代码实现
  • 二:对称关系
    • 1:原理:
    • 2:代码实现
  • 三:总结

一:集合的自反关系

1:原理:

从给定的关系矩阵来断判关系R是否为自反是很容易的。若M(R的关系矩阵)的主对角线元素均为1,则R是自反关系;若M(R的关系矩阵)的主对角线元素均为0,则R是反自反关系;若M(R的关系矩阵)的主对角线元素既有1又有0,则R既不是自反关系也不是反自反关系。

2:代码实现

#include <stdio.h>
//判断自反关系
int fun1(int R[][4]) {for (int i = 0; i < 4; i++) {if (R[i][i] != 1) {return 0;}}return 1;
}
//判断反自反关系
int fun2(int R[][4]) {for (int i = 0; i < 4; i++) {if (R[i][i] != 0) {return 0;}}return 1;}#include <stdio.h>
//判断自反关系
int fun1(int R[][4]) {for (int i = 0; i < 4; i++) {if (R[i][i] != 1) {return 0;}}return 1;
}
//判断反自反关系
int fun2(int R[][4]) {for (int i = 0; i < 4; i++) {if (R[i][i] != 0) {return 0;}}return 1;

二:对称关系

1:原理:

若M(R的关系矩阵)为对称矩阵,则R是对称关系;若M为反对称矩阵,则R是反对称关系。

2:代码实现

//判断对称关系
int fun3(int R[][4]) {for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++) {if (R[i][j] != R[j][i]) {return 0;}}}return 1;
}
//判断反对称关系
int fun4(int R[][4]) {for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++) {if (R[i][j] == 1 && R[j][i] == 1 && i != j) {return 0;}}}return 1;
}
int main() {int R[4][4] = { 0 };printf("请输入关系矩阵:\n");for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++) {scanf("%d", &R[i][j]);}}if ((fun1(R) + fun2(R))==0) {printf("R既不是自反关系也不是反自反关系\n");}if (fun3(R)) {printf("R具有对称关系\n");}if (fun4(R)) {printf("R具有反对称关系\n");}if (fun3(R) + fun4(R) == 2) {printf("R既具有对称关系又具有反对称关系\n");}if (fun3(R) + fun4(R) == 0) {printf("R既不具有对称关系又不具有反对称关系\n");}return 0;
}

三:总结

#include <stdio.h>
//判断自反关系
int fun1(int R[][4]) {for (int i = 0; i < 4; i++) {if (R[i][i] != 1) {return 0;}}return 1;
}
//判断反自反关系
int fun2(int R[][4]) {for (int i = 0; i < 4; i++) {if (R[i][i] != 0) {return 0;}}return 1;
}
//判断对称关系
int fun3(int R[][4]) {for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++) {if (R[i][j] != R[j][i]) {return 0;}}}return 1;
}
//判断反对称关系
int fun4(int R[][4]) {for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++) {if (R[i][j] == 1 && R[j][i] == 1 && i != j) {return 0;}}}return 1;
}
int main() {int R[4][4] = { 0 };printf("请输入关系矩阵:\n");for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++) {scanf("%d", &R[i][j]);}}if (fun1(R)) {printf("R是自反关系\n");}if (fun2(R)) {printf("R是反自反关系\n");}if ((fun1(R) + fun2(R))==0) {printf("R既不是自反关系也不是反自反关系\n");}if (fun3(R)) {printf("R具有对称关系\n");}if (fun4(R)) {printf("R具有反对称关系\n");}if (fun3(R) + fun4(R) == 2) {printf("R既具有对称关系又具有反对称关系\n");}if (fun3(R) + fun4(R) == 0) {printf("R既不具有对称关系又不具有反对称关系\n");}return 0;
}

在这里插入图片描述

http://www.lryc.cn/news/237552.html

相关文章:

  • 传递函数的推导和理解
  • STM32 SPI
  • Linux系统编程 day02 vim、gcc、库的制作与使用
  • Mistral 7B 比Llama 2更好的开源大模型 (四)
  • 相似基因序列问题 ——查找
  • 【汇编】“转移”综述、操作符offset、jmp指令
  • Java格式化类Format
  • 力扣每日一题-美化数组的最少删除数-2023.11.21
  • 【练习】检测U盘并自动复制内容到电脑的软件
  • 【计算机毕业设计】Springboot高校论文管理系统 -96280,免费送源码,【开题选题+程序定制+论文书写+答辩ppt书写-原创定制程序】
  • nginx 代理接口报404 问题排查
  • JVM 调优指南
  • 澳洲猫罐头如何?我亲自喂养过的优质猫罐头分享
  • CISP练习测试题
  • 2023下半年软件设计师考试知识点大全思维导图
  • [C++ 从入门到精通] 12.重载运算符、赋值运算符重载、析构函数
  • Android Binder 跨进程通信的优势是什么
  • HashMap的详细解读
  • 10个好用的Mac数据恢复软件推荐—恢复率高达99%
  • EtherCAT从站EEPROM分类附加信息详解:RXPDO(输入过程数据对象)
  • 释放锁流程源码剖析
  • ComText让机器人有了情节记忆
  • 【Leetcode合集】13. 罗马数字转整数
  • centos oracle11g开启归档模式
  • 【数据结构初阶】双链表
  • Django实战:从零到一构建安全高效的Web应用
  • Docker build报错总结,版本过新大避雷!
  • spider 网页爬虫中的 AWS 实例数据获取问题及解决方案
  • flink的window和windowAll的区别
  • 【机器学习】特征工程:特征选择、数据降维、PCA