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

简介: 集合的自反关系和对称关系

一:集合的自反关系

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;
}

目录
相关文章
|
存储 C语言 内存技术
专为MCU项目开发提速的代码框架BabyOS
专为MCU项目开发提速的代码框架BabyOS
317 0
|
10月前
|
数据可视化 安全 BI
旅游客服团队协作神器究竟花落谁家?快来看!
在旅游行业的快节奏运营中,高效的团队协作与个人学习效率提升是成功的关键,尤其对于 MBTI 中偏好秩序与规划的 J 型人格而言。本文介绍了六款可视化团队协作办公软件,包括板栗看板及五款国外小众软件,助力旅游公司在冬季旅游旺季及全年业务运作中脱颖而出。这些软件通过高度可视化的任务管理、深度的团队互动与沟通、智能的数据统计与分析等功能,帮助旅游公司优化业务流程,提高团队协作效率,确保旅游产品从构思到推出的每一个环节都能有条不紊地进行。
110 2
|
关系型数据库 MySQL Java
MySQL - JDBC 连接数据库 MySQL serverTimezone useSSL 时差问题
MySQL - JDBC 连接数据库 MySQL serverTimezone useSSL 时差问题
483 0
|
机器学习/深度学习 PyTorch 算法框架/工具
【Python深度学习】深度学习框架搭建模版
首先是导入包因为使用的是pytorch框架所以倒入torch相关包,summary是可以获得自己搭建模型的参数、各层特征图大小、以及各层的参数所占内存的包作用效果如p2
【Python深度学习】深度学习框架搭建模版
|
8天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
7天前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
本文讲解 Prompt 基本概念与 10 个优化技巧,结合学术分析 AI 应用的需求分析、设计方案,介绍 Spring AI 中 ChatClient 及 Advisors 的使用。
346 130
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话