离散数学实践二编程判断关系R的性质【java实现】

news2025/1/17 15:36:26

文章目录

  • 实验要求
  • 思路
  • 完整代码
  • 结果展示

实验要求

  • 判断关系 R 是否为自反关系
    1. 实验类型:设计性
    2. 实验目的
      • 通过算法设计并编程实现对给定集合上的关系是否为自反关系的判断,加深学生对关系性质的理解,掌握用矩阵来判断关系性质的方法。
    3. 实验内容
      • 已知关系 R 由关系矩阵 M 给出,要求判断由 M 表示的这个关系是否为自反关系。
    4. 实验原理
      • 从给定的关系矩阵来断判关系 R 是否为自反是很容易的。若 M(R 的关系矩阵)的主对角线元素均为 1,则 R 是自反关系;若 M(R 的关系矩阵)的主对角线元素均为 0,则 R 是反自反关系;若 M(R 的关系矩阵)的主对角线元素既有 1 又有 0,则 R 既不是自反关系也不是反自反关系。本算法可以作为判等价关系算法的子程序给出。
    5. 实验仪器设备或软件环境及工具
      • 软件环境与编程语言不限。
    6. 实验要求
      • 复习关系的性质,实验由一人一组完成。所编程序能够通过编译,并能够实现对给定集合上的关系自反性质的判定。
    7. 实验步骤及注意事项
      1. 输入关系矩阵 M(M 为 n 阶方阵)。
      2. 判断自反性,对于 i=1,2,….,n;若存在 mii=0,则 R 不是自反的;若存在 mii=1,则 R 是自反的;否则 R 既不是自反关系也不是反自反关系。
      3. 输出判断结果。

思路

  • 关系R的存储结构:二维矩阵
  • 关系R的矩阵输入Scanner类的nextInt()方法
  • 关系R主对角线的遍历:双层循环
  • 关系R主对角线数据的比较:使用HashSet参看《Java集合框架【二容器[LinkedList容器类、Set接口]》】【无序集合,无重复元素】存储主对角线元素值
  • 关系R的判定:通过判断HashSet的长度和包含的数值即可
条件结论
HashSet的长度1,并且包含1自反关系
HashSet的长度为1 ,并且包含0反自反关系
HashSet的长度为2,并且包含0和1既非自反,也非反自反

完整代码

import java.util.HashSet;
import java.util.Scanner;

/**
 * @author 缘友一世
 * date 2022/12/27-11:01
 */
public class demo02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int width=0;
        System.out.print("请输入关系R矩阵的阶数:");
        if(scanner.hasNextInt()) {
            width=scanner.nextInt();
        }
        int[][] matrix=new int[width][width];
        System.out.println("请输入"+width+"阶矩阵的值[以空格隔开]:");
        for(int i=0;i<matrix.length;i++) {
            for(int j=0;j<matrix[i].length;j++) {
                if(scanner.hasNextInt()) {
                    matrix[i][j]= scanner.nextInt();
                }
            }
        }
        System.out.println(">>>>>>>>>>>");
        System.out.println("您输入的矩阵为:");
        for(int i=0;i<matrix.length;i++) {
            for(int j=0;j<matrix[i].length;j++) {
                System.out.print(matrix[i][j]+" ");
            }
            System.out.println();
        }

        //无序集合不包含重复元素 如果集合中元素存在,则重复添加失败
        HashSet set = new HashSet();
        for(int i=0;i<matrix.length;i++) {
            set.add(matrix[i][i]);
        }
        //通过判断集合的长度和内容,从而确定关系的性质
        if(set.size()==1 && set.contains(1)) {
            System.out.println("R是自反关系!");
        }else if(set.size()==1 && set.contains(0)) {
            System.out.println("R是反自反关系!");
        }else if(set.size()==2 && set.contains(1) && set.contains(0)) {
            System.out.println("R既不是自反关系也不是反自反关系!");
        }
    }
}

结果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/117087.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python】沃罗诺伊图 | KNN 最邻近算法 | Voronoi 函数

猛戳&#xff01;跟哥们一起玩蛇啊 &#x1f449; 《一起玩蛇》&#x1f40d; 写在前面&#xff1a;上一章我们介绍了介计算几何领域的德劳内三角剖分&#xff0c;我们提到过关于点集的很多种几何图都与德劳内三角剖分密切相关&#xff0c;其中最具代表的就是我们本章要介绍的 …

运营商展望来年再提2B市场,然而拯救4G/5G业务的都是手机用户

2022年即将结束&#xff0c;各个行业都开始进行年终盘点并对来年的业务进行规划&#xff0c;三大运营商也对此进行了展望&#xff0c;媒体报道指运营商对来年的发展偏向于2B市场&#xff0c;这已不是它们第一次提偏重企业市场了&#xff0c;然而现实来看拯救这些运营商的其实一…

详解SpringBean的作用域(Scopes)

文章目录一、SpringBean作用域总览二、"singleton" Bean作用域三、"prototype" Bean作用域1、验证singleton、prototype类型的Bean2、总结四、"request" Bean作用域1、配置2、简介五、"session" Bean作用域1、配置2、简介3、总结sessi…

《哈希表》

【一】哈希概念 顺序结构以及平衡树中&#xff0c;元素关键码与其存储位置之间没有对应的关系&#xff0c;因此在查找一个元素时&#xff0c;必须要经过关键码的多次比较&#xff0c;顺序查找时间的复杂度为O(N),平衡树中为树的高度&#xff0c;即O(log2N),搜索的效率取决于搜…

JavaWeb技术栈概述

1.1 Web概述 Web是全球广域网&#xff0c;也称为万维网&#xff08;www&#xff09;&#xff0c;能够通过浏览器访问的网站。 在我们日常的生活中&#xff0c;经常会使用浏览器去访问百度、京东、传智官网等这些网站&#xff0c;这些网站统称为Web网站。如下就是通过浏览器访问…

实验三 第四章 MongoDB 副本集

一、实验目的&#xff1a; 了解MongoDB副本集 熟悉MongoDB副本集成员 掌握MongoDB副本集部署 掌握MongoDB副本集操作 理解副本集机制 二、实验环境&#xff1a; 一台win10系统的笔记本电脑 三、实验内容&#xff1a; 4.3部署副本集 4.3.1环境准备 创建的三台虚拟机配置如下&a…

python中的split()、rsplit()、splitlines()用法比较

1 split() 从左向右切割2 rsplit() 从右向左分割3 splitlines() 根据换行符切割4 rsplit()妙用split(分隔符&#xff0c;分割几次)从左向右寻找&#xff0c;分割元素并放入列表中&#xff0c;该分隔符丢弃&#xff1b; rsplit(分隔符&#xff0c;分割几次)从右向左寻找&#x…

算法的复杂性分析

算法的复杂性分析 文章目录算法的复杂性分析0、 算法评价的基本原则1、影响程序运行时间的因素2、算法复杂度2.1 算法的时间复杂度2.2 渐进表示法2.2.1 运行时间的上界2.2. 运行时间的下界2.2.3 运行时间的准确界3、总结4、参考0、 算法评价的基本原则 评价一个算法的好坏实际就…

第二证券|市场短期盘整 不改中期向好格局

12月初以来A股商场全体走势偏弱&#xff0c;上星期首要指数更是五连跌&#xff0c;上证指数重回3100点下方。关于商场近期的再度调整&#xff0c;本周组织观念显现&#xff0c;疫情带来的扰动或是首要原因。 不过&#xff0c;大都组织以为&#xff0c;心情面要素对商场的影响仅…

面试官:ui组件可以自动加载,那么业务组件可以吗?

大厂面试题分享 面试题库 前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 背景 笔者在最近在公司接手了一个老的对内使用的项目&#xff0c;接手后体验了下 发现首屏加载比较慢。分析了下大概的原因是main.js挂…

算法进阶:双指针(一)c++leetcode例题

82. 删除排序链表的重复元素 力扣传送&#xff1a; https://leetcode.cn/problems/remove-duplicates-from-sorted-list-ii/description/ 给一个排好序的链表&#xff0c;删除把链表中出现的所有的重复的项&#xff1a; 1 2 2 3 3 3 4 5 -----> 1 4 5 这道题有很多种解法&a…

Unity3D——第一人称FPS生存游戏(resident zombies)

游戏源文件和游戏试玩程序:链接&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1Ln2tFizqEO_uEoQhuxvgrQ?pwdl6w0 提取码&#xff1a;l6w0 游戏思路前身搭建: 用一些正方体和胶囊做出来的基础场景&#xff0c; 人物设计:红色的胶囊体是敌人&#xff0c;手持枪械是…

一文说透BIO以及非阻塞IO

目录1. 一次I/O到底经历了什么2. 什么是Socket3. 阻塞I/O&#xff08;Blocking I/O&#xff0c;BIO&#xff09;3.1. 客户端的socket流程3.1.1. 何为socket&#xff1f;3.1.2. 何为连接&#xff1f;3.2. 服务端的socket流程3.2.1. 创建socket3.2.2. 绑定端口号3.2.3. listen()的…

项目实战之旅游网(六)认证与授权

一.编写相关页面 在本项目中&#xff0c;我们使用Spring Security 进行认证和授权&#xff0c;首先我们先编写相关页面。 1.编写登录页面admin_ login.html 2.编写登录失败页面admin_ fail.html 3.编写权限不足页面no_ permission.html 略过。知道其功能即可。 二.编写配置…

数字孪生城市可视化大屏设计,智慧楼宇开源项目

纵观城市发展历史&#xff0c;技术的革命必然会带动城市内部的变革。当前&#xff0c;以数字孪生为代表的前言信息技术飞速发展&#xff0c;必然会使社会对数字城市的深度和广度有着更为清晰的认知。加快构建数字孪生城市管理平台&#xff0c;通过三维可视化大屏直观展示&#…

图表控件LightningChart.NET 系列教程(六):许可证管理介绍(中)

LightningChart.NET SDK 是一款高性能数据可视化插件工具&#xff0c;由数据可视化软件组件和工具类组成&#xff0c;可支持基于 Windows 的用户界面框架&#xff08;Windows Presentation Foundation&#xff09;、Windows 通用应用平台&#xff08;Universal Windows Platfor…

Apache ShardingSphere-Proxy <5.3.0 存在身份认证绕过漏洞

漏洞描述 Apache ShardingSphere 是一款分布式的数据库生态系统&#xff0c;ShardingSphere-Proxy 是支持 MySQL、PostgreSQL 和 openGauss 协议的数据库代理模块。 ShardingSphere-Proxy 5.3.0 之前的版本中在使用 MySQL 作为后端数据库时&#xff0c;在客户端认证失败后没有…

Linux进程状态与优先级

Ⅰ. OS进程状态的概念 进程状态反映进程执行过程的变化。这些状态随着进程的执行和外界条件的变化而转换。 在三态模型中&#xff0c;进程状态分为 运行态&#xff0c;就绪态&#xff0c;阻塞态。 在五态模型中&#xff0c;进程状态分为 新建态、终止态&#xff0c;运行态&a…

服务雪崩预防Sentinel

服务雪崩效应 在分布式系统中,由于网络原因或自身的原因,服务一般无法保证 100% 可用。如果一个服务出现了 问题&#xff0c;调用这个服务就会出现线程阻塞的情况&#xff0c;此时若有大量的请求涌入&#xff0c;就会出现多条线程阻塞等 待&#xff0c;进而导致服务瘫痪。 由于…

【HTML+CSS+JavaScript】实现鼠标点击烟花效果

文章目录【HTMLCSSJavaScript】实现鼠标点击烟花效果&#xff08;爆炸型、心型、圆形&#xff09;一. 效果图二. 鼠标点击烟花效果 - 心型实现代码(1) HTML部分代码(2) CSS部分代码(3) 内部的JavaScript部分代码三. 鼠标点击烟花效果 - 圆型实现代码(1) HTML部分代码(2) CSS部分…