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

学习笔记:R语言基础

文章目录

  • 一、R语言简介
  • 二、选择R的原因
  • 三、R基本数据对象
    • (一)向量
    • (二)矩阵
    • (三)数组
    • (四)因子
    • (五)列表
    • (六)数据框
    • (七)函数
  • 四、基本函数应用示例
  • 五、自定义函数
    • (一)自定义函数定义
    • (二)自定义函数示例
      • 1、求和函数
      • 2、分段函数
  • 六、结束语

一、R语言简介

  • R语言是一种开源的统计计算和图形制作环境,它不仅提供了全面的数据处理能力,还具备强大的数组运算工具,尤其在向量和矩阵运算上表现出色。此外,R语言内置了丰富的统计分析方法,并拥有卓越的统计图表绘制功能。更关键的是,R语言提供了一种灵活且功能强大的编程语言,使得用户能够自由地进行数据操作、输入输出控制以及自定义函数,以满足各种复杂的数据分析需求。

二、选择R的原因

  • 尽管R语言在处理大数据集时性能受限,不适合直接处理大规模数据,但它作为教学与实验工具的价值不容忽视。在教学中,R语言因其清晰易懂的算法模型展示及直观的绘图功能而广受欢迎,便于学生深入理解统计学原理。当面临大数据挑战时,可通过抽样或结合Hadoop、Spark等并行计算框架来解决。此外,通过学习R语言中的数据分析方法和模型原理,用户可以快速迁移到其他大数据处理工具上,实现无缝衔接。

三、R基本数据对象

(一)向量

  • R语言中的向量是一种基本且重要的数据结构,它是一维的有序元素序列,可以包含整数、实数、字符、逻辑值或复数等同类型数据。通过c()函数创建,例如 vec <- c(1, 2, 3, "a", TRUE)。向量在R中是处理和分析数据的基础,许多高级数据结构如矩阵、数组和列表都是基于向量构建的。

(二)矩阵

  • 在R语言中,矩阵是一个二维数组,用于存储相同类型(如数值、字符)的数据。通过matrix(data, nrow, ncol, byrow=FALSE, dimnames=NULL)函数创建,其中data是向量数据源,nrowncol定义行数和列数,byrow参数决定是否按行填充,若为TRUE则按行填充,FALSE则按列;dimnames可为矩阵添加行名和列名。矩阵支持各种数学运算,可通过索引进行元素访问和修改。

(三)数组

  • 在R语言中,数组是一种多维数据结构,用于存储同一类型的数据。通过array()函数创建,它接受一个向量作为基础数据,并通过dim参数指定各维度大小来形成更高维度的集合。例如,可以创建包含多个矩阵的三维数组,每个元素都具有相同的类型。数组是向量和矩阵的扩展,可用来处理更复杂、多层面的数据组织。

(四)因子

  • 在R语言中,因子(factor)是一种特殊的数据类型,用于表示分类或有序类别数据。它将名义变量或有序变量的各个类别值编码为整数,并存储一个映射表,将这些整数对应到原始类别标签。因子是统计分析和可视化时的关键对象,能确保分类变量在模型构建、假设检验(如卡方检验)以及各类回归分析、ANOVA等过程中得到正确处理。创建因子使用factor()函数,可自定义级别顺序和标签。

(五)列表

  • R语言中的列表是一种灵活且强大的数据结构,它是一个有序的、可变长度的集合,能够容纳不同类型(如数值、字符、逻辑甚至其他数据结构如向量、矩阵、数组或数据框等)的对象。通过list()函数创建,列表允许将多个元素聚合为单个对象,便于管理和操作多组不同性质的数据。例如,可以创建一个包含字符串、数值向量和逻辑矩阵的列表,每个成分都可以独立存取和修改。

(六)数据框

  • R语言中的数据框(data frame)是一种特殊的数据结构,它将表格形式的数据组织成列向量的集合。每一列代表一个变量,可以是不同数据类型(如数值、字符或逻辑型),而每行则表示观测样本。数据框可通过data.frame()函数构建,其各列必须具有相同长度。数据框常用于统计分析和数据可视化,类似于电子表格,且能灵活处理多元统计中异质类型的数据集。

(七)函数

  • 在R语言中,函数是执行特定任务的可重复使用的代码块。用户通过定义函数名、参数列表和函数体来创建函数,函数能接收输入(参数),经过一系列计算或逻辑处理后,返回一个结果。例如,mean()是一个内置函数,用于计算向量或数组的平均值;用户也可自定义函数,如myFunction(x, y) <- {x + y}实现两数相加的功能。函数有助于模块化编程,提高代码复用性和组织性。

四、基本函数应用示例

  1. 创建向量:在R中,通过c()函数可以创建一维向量。例如,x <- c(10.4, 5.6, 3.1, 6.4, 21.7)将一系列数值组合成名为x的浮点数向量。赋值符号可以用<-=, 这里所有元素自动转换为一致的数据类型(在这个例子中是数值型)。

  2. 生成序列:使用seq()函数可以生成一系列连续数值。如seq(2, 10)默认步长为1生成2到10的整数序列;指定步长为2用seq(1, 10, by = 2);步长为0.2则为seq(1, 5, by = 0.2);从2开始,步长为3产生4个数:seq(2, 8, by = 3);在区间[-5,5]生成100个数:seq(-5, 5, length.out = 100)

  3. 重复序列:rep()用于复制向量或生成重复序列。比如rep(c(1, 2, 3), times = 3)会将整个向量重复3次;而rep(x, each = 2)会将向量x中的每个元素分别复制2次形成新序列并赋值给data。

  4. 拼接函数:paste()结合多个数据项为一个字符串。如paste("Hello", "World")得到"Hello World";添加分隔符:paste(c("A", "B", "C"), collapse = ", ")结果为"A, B, C";拼接与序列结合实例:paste(seq(1, 3), "apple")生成"1 apple", “2 apple”, “3 apple”。

  5. 数据子集选择与修改:通过索引操作符[]选取向量元素,如data[3:5]获取向量data第3至第5个元素;条件选择:data[data > 300 & data < 400]选出data中300至400之间的元素,并统计其数量:sum(data > 300 & data < 400)

  6. 汇总函数:summary()提供对象的基本统计信息。对于向量,输出包括最小值、四分位数、中位数、均值和最大值等。例如,summary(data)查看向量data的相关统计指标。

  7. 因子函数:factor()将字符向量转化为有序或无序因子,便于分类分析。如data <- factor(c("湖南","四川","四川","湖南","贵州","湖南","贵州"))levels(data)显示因子的类别。

  8. 矩阵函数:matrix()创建矩阵,如matrix(c(4,-1,2,1,1,1,0,3,0,3,1,4), nrow = 4, ncol = 3)创建一个4行3列的矩阵。访问矩阵元素如A[2, 3];创建单位矩阵:diag(n);填充特定元素矩阵示例已给出。

  9. 矩阵转置函数:t()实现矩阵转置,如t(A)将矩阵A转置。

  10. 矩阵维数函数:dim()返回或设置矩阵维数,如dim(A)查询矩阵A的维度,dim(A) <- c(3, 4)更改A的维度为3行4列。

  11. 数组函数:通过array()dim参数定义多维数组,例如创建三维数组需指定每维大小。

  12. 列合并与行合并:cbind()按列合并矩阵,如cbind(A, B)rbind()按行合并矩阵,如rbind(A, B)

  13. 列表函数:列表是一种可包含不同类型元素的数据结构。要获取列表中属性值,如list_data$attribute_name。例如,my_list <- list(name = "Mike", age = 25); my_list$name返回"Mike"。

  14. 数据帧函数:data.frame()构造数据帧,各列可以是不同模式。如df <- data.frame(name = c("John", "Jane"), age = c(30, 28))创建一个数据帧。引用数据帧元素时通常使用$符号,如df$nameattach()detach()函数用于简化数据框变量的引用,但不推荐频繁使用以避免命名冲突等问题。例如,attach(df)后可以直接用name引用列名,结束后用detach(df)解除关联。

  15. read.table()函数:read.table()是R语言中用于读取纯文本文件并将其中数据转换为数据帧的函数。该函数要求输入文件的第一行包含变量名,后续行代表数据记录,每行按列对应各变量值。若无表头,则默认变量名为"v1", "v2"等;若有表头但无行索引,通过设置header=TRUE指明首行为列名。此外,可通过setwd()函数改变当前工作目录以便正确读取目标文件。

    • 创建文本文件info.txt
      在这里插入图片描述
    • 读取,表头采用默认变量
      在这里插入图片描述
    • 读取,采用文件首行做表头
      在这里插入图片描述
    • 使用attach()函数简化对info的数据引用
      在这里插入图片描述

五、自定义函数

(一)自定义函数定义

  • 在R语言中,用户通过function()关键字定义自定义函数,例如:myFunction <- function(arg1, arg2) {expression},其中arg1和arg2为输入参数,expression是基于这些参数进行计算或处理的代码块。

(二)自定义函数示例

1、求和函数

在这里插入图片描述

2、分段函数

f ( x ) = { x + 2 ( 1 ) x 2 ( 2 ) f(x)=\begin{cases} x+2 &(1)\\ x^2 &(2)\\ \end{cases} f(x)={x+2x2(1)(2)

  • 定义函数,并绘制图像
    在这里插入图片描述
    在这里插入图片描述

六、结束语

  • 总之,R语言作为开源统计计算和图形制作的首选工具,凭借其全面的数据处理能力、强大的数组运算以及丰富的内置统计模型和可视化功能,在全球数据分析领域占据重要地位。尽管在处理超大规模数据时面临性能挑战,但通过合理抽样或结合分布式计算框架,R语言依然能够胜任复杂的数据分析任务。从基础数据对象如向量、矩阵到更高级的数据结构如数组、因子、列表和数据框,R语言提供了一套完整且灵活的数据组织方式,满足各种类型数据的存储与操作需求。而函数的运用则大大提升了代码复用性和程序结构化程度,无论是利用内置函数进行快速统计分析,还是自定义函数解决特定问题,都彰显了R语言在实现高效数据分析流程上的优越性。掌握R语言的基本语法和核心功能,无疑将助力用户深入探索数据背后的规律,提升解决问题的能力,并在实际应用中发挥关键作用。

相关文章:

学习笔记:R语言基础

文章目录 一、R语言简介二、选择R的原因三、R基本数据对象&#xff08;一&#xff09;向量&#xff08;二&#xff09;矩阵&#xff08;三&#xff09;数组&#xff08;四&#xff09;因子&#xff08;五&#xff09;列表&#xff08;六&#xff09;数据框&#xff08;七&#…...

初识智慧城市

文章目录 智慧家居 智慧社区 智慧交通 智慧医疗 智慧教育 智慧旅游 智慧农业 智慧安防 智慧家居 利用智能语音、智能交互等技术,实现用户对家居系统各设备的远程操控和能控制如开关窗帘(窗户)、操控家用电器和照明系统、打扫卫生等操作。利用计算机视觉等技术,对被照看…...

Zookeeper之手写一个分布式锁

前言 我之前写了一篇快速上手ZK的文章&#xff1a;https://blog.csdn.net/qq_38974073/article/details/135293106 本篇最要是进一步加深学习ZK&#xff0c;算是一次简单的实践&#xff0c;巩固学习成果。 设计一个分布式锁 对锁的基本要求 可重入&#xff1a;允许同一个应…...

【音视频 ffmpeg 学习】 RTMP推流 mp4文件

1.RTMP(实时消息传输协议)是Adobe 公司开发的一个基于TCP的应用层协议。 2.RTMP协议中基本的数据单元称为消息&#xff08;Message&#xff09;。 3.当RTMP协议在互联网中传输数据的时候&#xff0c;消息会被拆分成更小的单元&#xff0c;称为消息块&#xff08;Chunk&#xff…...

跨进程通信 macOS XPC 创建实例

一&#xff1a;简介 XPC 是 macOS 里苹果官方比较推荐和安全的的进程间通信机制。 集成流程简单&#xff0c;但是比较绕。 主要需要集成 XPC Server 这个模块&#xff0c;这个模块最终会被 apple 的根进程 launchd 管理和以独立进程的方法唤起和关闭&#xff0c; 我们主app 进…...

Python圣诞树代码

Python圣诞树代码 # 小黄 2023/12/25import turtle as t # as就是取个别名&#xff0c;后续调用的t都是turtle from turtle import * import random as rn 100.0speed(20) # 定义速度 pensize(5) # 画笔宽度 screensize(800, 800, bgblack) # 定义背景颜色&#xff0c;可…...

flask之文件管理系统-项目 JRP上线啦!!! ---修订版,兼容Windows和Linux系统

上一章的版本https://blog.csdn.net/weixin_44517278/article/details/135275066&#xff0c;在Windows下debug完成无异常后&#xff0c;上传到我的树莓下开始正式服役 由于开发环境是Windows&#xff0c;使用环境是Linux&#xff0c;导致最后没能成功运行起来 这个版本是今天去…...

希尔排序:排序算法中的调优大师

希尔排序&#xff1a;排序算法中的调优大师 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;让我们一同探讨一个经典而高效的排序算法——希尔排序。…...

LeetCode 1185. 一周中的第几天

一、题目 1、题目描述 给你一个日期&#xff0c;请你设计一个算法来判断它是对应一周中的哪一天。 输入为三个整数&#xff1a;day、month 和 year&#xff0c;分别表示日、月、年。 您返回的结果必须是这几个值中的一个 {"Sunday", "Monday", "Tues…...

大数据学习(30)-Spark Shuffle

&&大数据学习&& &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 承认自己的无知&#xff0c;乃是开启智慧的大门 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一下博主哦&#x1f91…...

Linux部署ELK

大家好&#xff0c;我是升仔 引言 在复杂的系统架构中&#xff0c;日志管理是一个关键的环节。ELK栈提供了一个高效的解决方案&#xff0c;能够帮助我们快速定位问题、分析数据&#xff0c;并实现实时监控。部署ELK栈是一项挑战&#xff0c;但收益巨大。 基础安装和配置 环境准…...

Python 实现 PDF 到 Word 文档的高效转换(DOC、DOCX)

PDF&#xff08;Portable Document Format&#xff09;已成为一种广泛使用的电子文档格式。PDF的主要优势是跨平台&#xff0c;可以在不同设备上呈现一致的外观。然而&#xff0c;当我们需要对文件内容进行编辑或修改&#xff0c;直接编辑PDF文件会非常困难&#xff0c;而且效果…...

【MYSQL】MYSQL 的学习教程(七)之 慢 SQL 优化思路

1. 慢 SQL 优化思路 慢查询日志记录慢 SQLexplain 分析 SQL 的执行计划profile 分析执行耗时Optimizer Trace 分析详情确定问题并采用相应的措施 1. 慢查询日志记录慢 SQL 如何定位慢SQL呢&#xff1f; 我们可以通过 慢查询日志 来查看慢 SQL。 ①&#xff1a;开启慢查询日志…...

unity学习笔记----游戏练习0

一、修复植物种植的问题 1.当手上存在植物时&#xff0c;再次点击卡片上的植物就会在手上添加新的植物&#xff0c;需要修改成只有手上没有植物时才能再次获取到植物。需要修改AddPlant方法。 public bool AddPlant(PlantType plantType) { //防止手上出现多个植…...

ai概念:强人工智能介绍、迁移学习

强人工智能&#xff08;Strong Artificial Intelligence&#xff0c;SAI&#xff09;是指一种具有与人类智能相媲美或超越人类智能水平的人工智能系统。与弱人工智能&#xff08;Weak Artificial Intelligence&#xff0c;WAI&#xff09;不同&#xff0c;强人工智能具有更高级…...

go语言设计模式-单例模式

建造型设计模式-单例模式 是用来控制类型实例的数量的&#xff0c;当需要确保一个类型只有一个实例时&#xff0c;就需要使用单例模式。 即把实例的访问进行收口&#xff0c;不能谁都能 new 类&#xff0c;所以单例模式还会提供一个2访问该实例的全局端口&#xff0c;一般都会…...

超维空间S2无人机使用说明书——51、基础版——使用yolov8进行目标跟踪

引言&#xff1a;为了提高yolo识别的质量&#xff0c;提高了yolo的版本&#xff0c;改用yolov8进行物体识别&#xff0c;同时系统兼容了低版本的yolo&#xff0c;包括基于C的yolov3和yolov4&#xff0c;以及yolov7。 简介&#xff0c;为了提高识别速度&#xff0c;系统采用了G…...

Transformer(seq2seq、self-attention)学习笔记

在self-attention 基础上记录一篇Transformer学习笔记 Transformer的网络结构EncoderDecoder 模型训练与评估 Transformer的网络结构 Transformer是一种seq2seq 模型。输入一个序列&#xff0c;经过encoder、decoder输出结果也是一个序列&#xff0c;输出序列的长度由模型决定…...

2023-12-29 服务器开发-centos部署ftp

摘要: 2023-12-29 服务器开发-centos-部署ftp 部署ftp vsftpd&#xff08;very secure FTP daemon&#xff09;是Linux下的一款小巧轻快、安全易用的FTP服务器软件。本教程介绍如何在Linux实例上安装并配置vsftpd。 前提条件 已创建ECS实例并为实例分配了公网IP地址。 背景…...

螺旋数字阵(100%用例)C卷 (JavaPythonNode.jsC语言C++)

疫情期间,小明隔离在家,百无聊赖,在纸上写数字玩。他发明了一种写法: 给出数字个数n和行数m (0 < n <= 999,0 < m <= 999) ,从左上角的1开始,按照顺时针螺旋向内写方式,依次写出2,3...n,最终形成一个m行矩阵 小明对这个矩阵有些要求 1.每行数字的个数一样多…...

AUTOSAR从入门到精通-网络通信(UDPNm)(二)

目录 前言 原理 UdpNm工作原理 UdpNm与CanNM的区别联系 网络管理算法...

显示器与按键(LCD 1602 + button)

一、实验目的&#xff1a; &#xff08;1&#xff09;学习lcd 1602的编程与使用、 &#xff08;2&#xff09;机械式复位开关button软件消抖的方法。 二、实验内容&#xff1a; 1、必做&#xff1a;先显示开机画面&#xff0c;&#xff1a;在1602显示器上&#xff0c;分两行…...

2020年认证杯SPSSPRO杯数学建模B题(第一阶段)分布式无线广播全过程文档及程序

2020年认证杯SPSSPRO杯数学建模 B题 分布式无线广播 原题再现&#xff1a; 以广播的方式来进行无线网通信&#xff0c;必须解决发送互相冲突的问题。无线网的许多基础通信协议都使用了令牌的方法来解决这个问题&#xff0c;在同一个时间段内&#xff0c;只有唯一一个拿到令牌…...

【CISSP学习笔记】7. 安全评估与测试

该知识领域涉及如下考点&#xff0c;具体内容分布于如下各个子章节&#xff1a; 设计和验证评估、测试和审计策略进行安全控制测试收集安全过程数据&#xff08;例如&#xff0c;技术和管理&#xff09;分析测试输出并生成报告执行或协助安全审计 7.1. 构建安全评估和测试方案…...

Gateway集成方法以及拦截器和过滤器的使用

前提&#xff1a;请先创建好一个SpringBoot项目 1. 引入依赖 SpringCloud 和 alibabaCloud 、 SpringBoot间对版本有强制要求&#xff0c;我使用的springboot是3.0.2的版本。版本对应关系请看&#xff1a;版本说明 alibaba/spring-cloud-alibaba Wiki GitHub <dependency…...

第G2周:人脸图像生成(DCGAN)

&#x1f368; 本文为[&#x1f517;365天深度学习训练营学习记录博客\n&#x1f366; 参考文章&#xff1a;365天深度学习训练营\n&#x1f356; 原作者&#xff1a;[K同学啊 | 接辅导、项目定制]\n&#x1f680; 文章来源&#xff1a;[K同学的学习圈子](https://www.yuque.co…...

【Web】Ctfshow Thinkphp5 非强制路由RCE漏洞

目录 非强制路由RCE漏洞 web579 web604 web605 web606 web607-610 前面审了一些tp3的sql注入,终于到tp5了&#xff0c;要说tp5那最经典的还得是rce 下面介绍非强制路由RCE漏洞 非强制路由RCE漏洞原理 非强制路由相当于开了一个大口子&#xff0c;可以任意调用当前框…...

python3遇到Can‘t connect to HTTPS URL because the SSL module is not available.

远程服务器centos7系统上有minicoda3&#xff0c;觉得太占空间&#xff0c;就把整个文件夹删了&#xff0c;原先的Python3也没了&#xff0c;都要重装。 我自己的步骤&#xff1a;进入管理员模式 1.下载Python3的源码&#xff1a; wget https://www.python.org/ftp/python/3.1…...

QSPI Flash xip取指同时program过程中概率性出现usb播歌时断音

项目场景&#xff1a; USB Audio芯片&#xff0c;代码放到qspi flash中&#xff0c;执行代码时&#xff0c;客户会偶尔保存一些参数&#xff0c;即FPGA验证过程中&#xff0c;每隔10ms向flash info区烧写4个byte&#xff08;取指过程一直存在&#xff0c;且时隙软件不可控&…...

MySQL聚簇索引和非聚簇索引的区别

前言: 聚簇索引和非聚簇索引是数据库中的两种索引类型&#xff0c;他们在组织和存储数据时有不同的方式。 聚簇索引&#xff1a; 简单理解&#xff0c;就是将数据和索引放在了一起&#xff0c;找到了索引也就找到了数据。对于聚簇索引来说&#xff0c;他的非叶子节点上存储的是…...

【C#】蜗牛爬井问题C#控制台实现

文章目录 一、问题描述二、C#控制台代码 一、问题描述 井深30米&#xff0c;蜗牛在井底&#xff0c;每天爬3米又滑下1米&#xff0c;问第几天爬出来 二、C#控制台代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System…...

IP地址的四大类型:动态IP、固定IP、实体IP、虚拟IP的区别与应用

在网络通信中&#xff0c;IP地址是设备在互联网上唯一标识的关键元素。动态IP、固定IP、实体IP和虚拟IP是四种不同类型的IP地址&#xff0c;它们各自具有独特的特点和应用场景。 1. 动态IP地址&#xff1a; 动态IP地址是由Internet Service Provider&#xff08;ISP&#xff…...

Linux Debian12安装和使用ImageMagick图像处理工具 常见图片png、jpg格式转webp格式

一、ImageMagick简介 ImageMagick是一套功能强大、稳定而且免费的工具集和开发包。可以用来读、写和图像格式转换&#xff0c;可以处理超过100种图像格式&#xff0c;包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式。对图片的操作&#xff0c;即可以通过命令行进行&am…...

JavaScript二

目录 流程控制 if判断 while循环 do while for循环 forEach for in Map与set iterator 流程控制 if判断 <script>use strictvar age 5;if(age < 3){alert("haha");}else if(age < 5){alert("hi world");}else{alert("hello wor…...

JavaScript系列——正则表达式

文章目录 需求场景正则表达式的定义创建正则表达式通过 / 表示式/ 创建通过构造函数创建 编写一个正则表达式的模式使用简单模式使用特殊字符常用特殊字符列表特殊字符组和范围 正则表达式使用代码演示 常用示例验证手机号码合法性 小结 需求场景 在前端开发领域&#xff0c;在…...

命令行创建Vue项目

Vue项目创建 1. 打开UI界面 在命令行中&#xff0c;执行如下指令&#xff1a; vue ui 2. 打开项目管理器 3. 创建项目 创建项目的过程&#xff0c;需要联网进行&#xff0c;这可能会耗时比较长的时间&#xff0c;请耐心等待。 windows的命令行&#xff0c;容易卡顿&#xff0c…...

01.PostgreSQL基本SELECT语句

1. SQL简介 SQL 是用于访问和处理数据库的标准的计算机语言。 SQL有两个标准:分别是SQL92和SQL99,他们分别代表了92年和99年颁布的SQL标准,我们今天使用的SQL语言依然遵循这些标准。 注意:除了 SQL 标准之外,大部分 SQL 数据库程序都拥有它们自己的私有扩展! 2. SQL分…...

UDP信号多个电脑的信息传输测试、配置指南

最近要做一个东西&#xff0c;关于一个软件上得到的信号&#xff0c;如何通过连接的局域网&#xff0c;将数据传输出去。我没做过相关的东西&#xff0c;但是我想应该和软件连接数据库的过程大致是差不多的&#xff0c;就一个ip和一个端口号啥的。 一.问题思路 多个设备同时连…...

先序+中序还原二叉树【数据结构】

先序中序还原二叉树 题目描述 给定一棵二叉树的先序遍历序列和中序遍历序列&#xff0c;要求计算该二叉树的高度。 输入 输入首先给出正整数N&#xff08;≤50&#xff09;&#xff0c;为树中结点总数。下面两行先后给出先序和中序遍历序列&#xff0c;均是长度为N的不包含重…...

【全网首发】洛谷P2678 [NOIP2015 提高组] 跳石头

Everyday English You don’t become what you want; you become whatyou believe. —Oprah Winfrey 你不是成为你想要的&#xff0c;你成为你所相信的。 洛谷P2678 [NOIP2015 提高组] 跳石头 题目描述 一年一度的“跳石头”比赛又要开始了&#xff01; 这项比赛将在一条笔…...

Gpt指引ubuntu安装java8/11

在Ubuntu系统上安装Java环境通常包括以下几个步骤&#xff1a; 更新软件包索引&#xff1a; 在安装新软件之前&#xff0c;最好先更新Ubuntu的软件包索引。这可以确保你安装的是最新版本的软件包。可以使用以下命令来更新&#xff1a; sudo apt update安装Java&#xff1a; U…...

【MCAL】TC397+EB-tresos之MCU配置实战 - 芯片时钟

本篇文章介绍了在TC397平台使用EB-treso对MCU驱动模块进行配置的实战过程&#xff0c;主要介绍了后续基本每个外设模块都要涉及的芯片时钟部分&#xff0c;帮助读者了解TC397芯片的时钟树结构&#xff0c;在后续计算配置不同外设模块诸如通信速率&#xff0c;定时器周期等&…...

最新AI系统ChatGPT网站H5系统源码,支持AI绘画,GPT语音对话+ChatFile文档对话总结+DALL-E3文生图

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Ch…...

如何在MAC OS中的XCODE下添加 <bits/stdc++.h>

mac上使用的编译器是Clang&#xff0c;但是没有万能头文件bits/stdc.h\&#xff0c;本文介绍如何添加万能头文件 Xcode 版本&#xff1a;15.1 - 打开应用程序-Xcode-右键显示包内容 Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/includ…...

Maven项目提示Ignored pom.xml问题

1 环境 &#xff08;1&#xff09;IDEA开发工具&#xff1a;2022.2.1 &#xff08;2&#xff09;JDK&#xff1a;Java17&#xff08;Spring6要求JDK最低版本是Java17&#xff09; &#xff08;3&#xff09;Spring&#xff1a;6.1.2 &#xff08;4&#xff09;Maven 3.8.8 2 …...

SQL学习汇总

数据库将两张没有关联的表进行横向连接数据库将两张表进行横向连接&#xff08;拼接成一张表的形式显示&#xff09;_db2 两条记录如果相同就横向显示-CSDN博客 mysql统计某个字段的比例_mysql查询一行某个字段占整个字段sum的比例-CSDN博客 Spark 系列&#xff08;十二&…...

单片机MCU堆栈概念与区别

C语言中的堆栈是用于存储函数调用、局部变量以及程序执行期间所需的临时数据的内存区域。堆栈由编译器自动管理&#xff0c;是一种后进先出&#xff08;LIFO&#xff09;的数据结构。堆栈空间大小指的是分配给堆栈的内存空间大小&#xff0c;它限制了函数调用和局部变量的深度和…...

C#中使用is关键字检查对象是否与给定类型兼容

目录 一、定义 二、示例 三、生成 在程序的开发过程中经常会使用类型转换&#xff0c;如果类型转换不成功则会出现异常&#xff0c;从抛出异常到捕获并处理异常&#xff0c;无形中增加了系统的开销&#xff0c;而且太过频繁地处理异常还会严重地影响系统的稳定性。is关键字可…...

AI时代下,如何看待“算法利维坦”?

ChatGPT的浪潮从2022年袭来后&#xff0c;至今热度不减&#xff0c;呈现出蓬勃发展的趋势。AI家居、医疗、教育、金融、公益、农业、艺术......AI真的已经走进了生活的方方面面&#xff0c;我们仿佛已经进入了AI时代&#xff0c;势不可挡。人工智能水平如此之高&#xff0c;不禁…...

Linux上管理不同版本的 JDK

当在 Linux 上管理不同版本的 JDK 时&#xff0c;使用 yum 和 dnf 可以方便地安装和切换不同的 JDK 版本。本文将介绍如何通过这两个包管理工具安装 JDK 1.8 和 JDK 11&#xff0c;并利用软连接动态关联这些版本。 安装 JDK 1.8 和 JDK 11 使用 yum 安装 JDK 1.8 打开终端并…...