- 博客(55)
- 收藏
- 关注
原创 6、线性代数之二次型(知识总结)
对于n元二次型,若令可写成若其中可逆,则称为可逆的线性变换,现给出,令,则上述二次型系数矩阵与有下述关系,C是可逆矩阵则称为与合同,记作,此时称其对应的二次型为合同二次型。
2026-03-26 22:07:22
349
原创 5、线性代数之特征值、矩阵相似(知识总结)
是个n阶矩阵,是一个数,存在一个非零向量,使得那么称是的特征值,是的对应与特征值的特征向量。是特征方程,可以求出,求特征值和特征向量,解出,再带入求出特征向量;我们列举一下为10的特征向量例子把10带入,得到矩阵现在我们要把这个矩阵化简为行阶梯矩阵,由于这个矩阵是带入特征值,所以它一定不是满秩的,我们可以看出它的秩就是2,直接把一行写成0,再进行化简就简单多了。
2026-03-25 17:19:58
473
原创 4线性代数之线性方程组(知识总结)
①当时,方程组有唯一零解。②当,方程组有非零解,个线性无关的解。先把增广矩阵化成行阶梯矩阵,确定自由变量,分别对自由变量去,求出其它变量的值。先化成行阶梯矩阵取自由未知量得到。
2026-03-18 12:35:54
251
原创 03线性代数之向量组(知识总结)
n个数构成的有序数组,分为行向量和列向量。A是由多个列向量组成,如果等于,那么称A叫做n阶并且这些列向量为或,也叫。这个正交矩阵,乘上一个向量,相当于把这个向量旋转。
2026-03-13 00:12:18
302
原创 01线性代数之行列式(知识总结)
n阶行列式是由n个n维向量组成的,其运算结果就是这n个向量为邻边的n维图形的面积。对n个列下标进行排序,共有n!项。在一个行列式中,去掉某个元素所在行列的剩余。
2026-02-04 11:01:03
517
原创 线性代数中关于矩阵运算的思考
本文介绍了矩阵的基本概念和运算规则。矩阵可以理解为向量的集合,其乘法需满足前列数等于后行数的条件。文章通过具体示例说明了矩阵乘法的计算方法,并探讨了矩阵运算的实际应用。特别是在计算机图形处理中,矩阵运算能有效实现图像的对称、旋转等几何变换。通过几个变换矩阵的示例(如上下对称、左右对称和90度旋转),展示了如何利用矩阵运算快速计算坐标变换后的新位置。这些应用表明矩阵运算为处理大规模坐标变换提供了结构化的高效计算方法。
2026-01-27 16:38:25
345
原创 Gitee新手使用全解
首先下载下面两个软件,可以选择去官网下,也可以去下面的网址下载资源存放: 这是用来存放资源的仓库安装顺序(不能弄反):1、git-2.33 2、TortoiseGit第二个软件安装好后,会出现下面的页面Name:填写第一步已经注册好的Gitee上面@后面的内容Email:填Gitee网站上面对应的邮件。
2026-01-05 01:45:30
400
原创 14、使用C++连接MySQL及接口
初始化mysql_init()要使用库,必须先进行初始化!如: MYSQL *mfp = mysql_init(NULL)链接数据库mysql_real_connect初始化完毕之后,必须先链接数据库,在进行后续操作。(mysql网络部分是基于TCP/IP的)//建立好链接之后,获取英文没有问题,如果获取中文是乱码://设置链接的默认字符集是utf8,原始默认是latin1。
2025-12-04 22:47:16
580
原创 13.用户管理
如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户。host: 表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆。这时,就需要使用MySQL的用户管理。*.* : 代表本系统中的所有数据库的所有对象(表,视图,存储过程等)库.* : 表示某个数据库中的所有数据对象(表,视图,存储过程等)MySQL中的用户,都存储在系统数据库mysql的user表中。root用户修改指定用户的密码。刚创建的用户没有任何权限。*_priv: 用户拥有的权限。
2025-11-25 10:20:19
400
原创 12.视图
order by 可以用在视图中,但是如果从该视图检索数据 select 中也含有 order by ,那么该视图 中的 order by 将被覆盖。同真实的表一样,视图包含一系列带有名称的列和行数据。视 图的数据变化会影响到基表,基表的数据变化也会影响到视图。·创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响。·与表一样,必须唯一命名(不能出现同名视图或表名)·视图不能添加索引,也不能有关联的触发器或者默认值。·视图可以提高安全性,必须具有足够的访问权限。修改了视图,对基表数据有影响。
2025-11-25 10:20:06
450
原创 11.数据库中的事务
事务被 MySQL 编写者设计出来,本质是为了当应用程序访问数据库的时候,事务能够简化我们的编程模型, 不需要我们去考虑各种各样的潜在错误和并发问题.可以想一下当我们使用事务时,要么提交,要么回滚,我 们不会去考虑网络异常了,服务器宕机了,同时更改一个数据怎么办对吧?因此事务本质上是为了应用层服 务的.而不是伴随着数据库系统天生就有的.备注:我们后面把 MySQL 中的一行信息,称为一行记录在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务, MyISAM 不支持。
2025-11-17 18:12:23
793
原创 10.数据库的索引
第二种方法-其他索引的删除: alter table 表名 drop index 索引名;MySQL提供全文索引机制,但是有 要求,要求表的存储引擎必须是MyISAM,而且默认的全文索引支持英文,不支持中文。如果某列需要创建索引,但是该列有重复的值,那么我们就应该使用普通索引。一个表中可以有多个普通索引,普通索引在实际开发中用的比较多。如果一个唯一索引上指定not null,等价于主键索引。创建主键索引的列,它的值不能为null,且不能重复。一个表中,最多有一个主键索引,当然可以使符合主键。
2025-11-17 18:12:10
645
原创 9.表的内连和外连
内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前面学习的查询都是内连 接,也是在开发过程中使用的最多的连接查询。对stu表和exam表联合查询,把所有的成绩都显示出来,即使这个成绩没有学生与它对应,也要 显示出来。如果联合查询,左侧的表完全显示我们就说是左外连接。如果联合查询,右侧的表完全显示我们就说是右外连接。外连接分为左外连接和右外连接。
2025-11-15 01:17:08
266
原创 8.复合查询
多行子查询是指返回单列多行数据,都是针对单列而言 的,而多列子查询则是指查询返回多个列数据的子查询语句。显示工资比部门30的任意员工的工资高的员工的姓名、工资和部门号(包含自己部门 的员工)查询和10号部门的工作岗位相同的雇员的名字,岗位,工资,部门号,但是不包含10自己的。显示雇员名、雇员工资以及所在部门的名字因为上面的数据来自EMP和DEPT表,因此要联合查询。显示工资比部门30的所有员工的工资高的员工的姓名、工资和部门号。前面我们讲解的mysql表的查询都是对一张表进行查询,在实际开发中这远远不够。
2025-11-15 01:16:48
696
原创 7.MySQL这的内置函数
比如:字母,数字算作一个字节,中文表示多个字节数 (与字符集编码有关)要求显示exam_result表中的信息,显示格式:“XXX的语文是XXX分,数学XXX分,英语XXX分”ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值。md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串。显示所有留言信息,发布日期只显示日期,不用显示时间。以首字母小写的方式显示所有员工的姓名。获取emp表的ename列的字符集。请查询在2分钟内发布的帖子。
2025-11-11 13:16:18
338
原创 6. 表的增删改查
6. 表的增删改查CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除)语法:案例:6.1.1 单行数据 + 全列插入6.1.2 多行数据 + 指定列插入6.1.3 插入否则更新由于 主键 或者 唯一键 对应的值已经存在而导致插入失败可以选择性的进行同步更新操作 语法:6.1.4 替换6.2 Retrieve语法:案例:6.2.1 SELECT 列6.2.1.1 全 列
2025-11-11 13:16:07
831
原创 5.数据库中表的约束
真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合 法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。表的约束很多,这里主要介绍如下几个: null/not null,default, comment, zerofill,primary key,auto_increment,unique key。
2025-11-03 12:44:19
604
原创 4.数据库中的数据类型
当我们的表的编码是utf8时,varchar(n)的参数n最大值是65532/3=21844[因为utf中,一个字符占 用3个字节],如果编码是gbk,varchar(n)的参数n最大是65532/2=32766(因为gbk中,一个字符 占用2字节)。而且出于效率 考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,4,8,16,32,.... 最多64个。有一个调查表votes,需要调查人的喜好, 比如(登山,游泳,篮球,武术)中去选择(可以多选), (男,女)[单选]
2025-11-03 12:44:06
651
原创 2.数据库的简单操作
本文介绍了数据库的基本操作,包括创建、删除、修改数据库,以及字符集和校验规则的设置。主要内容有:1.创建数据库的语法和案例,可指定字符集和校验规则;2.删除数据库的方法;3.字符集和校验规则对数据操作的影响,通过案例展示了区分大小写和不区分大小写的不同效果;4.数据库的备份与恢复操作;5.查看数据库连接情况的方法。文章强调了数据库操作时编码一致性的重要性,并提供了实用技巧如备份单表、多数据库备份等注意事项。
2025-10-23 11:12:46
466
原创 3.数据库中表的操作
本文介绍了MySQL数据库表的操作,包括创建表、查看表结构、修改表和删除表。创建表使用CREATE TABLE语法,可指定字段类型、字符集和存储引擎。修改表可使用ALTER TABLE命令实现添加字段、修改字段类型/名称、删除字段等操作,并提供了具体案例演示。删除表使用DROP TABLE语句。文章还说明了不同存储引擎(如MyISAM)会生成不同的表文件,并详细展示了各操作的SQL语法和实际应用示例。
2025-10-23 11:11:56
461
原创 1.数据库的基础知识
SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库 中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的 低,在嵌入式设备中,可能只需要几百K的内存就够了。PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研 究使用,可以免费使用,修改和分发。我们在abc中创建了一个名为student的表,对应的在系统的/var/lib/mysql/abc目录下,多出了两个文件。
2025-10-19 02:09:36
707
原创 在centos系统下,安装MYSQL
摘要:本文介绍了在Linux系统中安装MySQL的详细步骤:1)添加MySQL官方yum源;2)安装MySQL客户端和服务端;3)解决GPG密钥过期问题;4)启动MySQL服务;5)通过修改my.cnf配置文件跳过密码验证登录,并重启服务使配置生效。全文提供了完整的命令操作流程,包括yum源添加、软件安装、服务管理及登录配置等关键步骤。
2025-10-17 00:52:30
342
原创 五种IO模型,同步IO和异步IO
异步则是相反,调用在发出之后,这个调用就直接返回了,所以没有返回结果;而是在调用 发出后,被调用者通过状态、通知来通知调用者,或通过回调函数处理这个调用.所谓同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回. 但是一旦调用返回,就得到返回值了;• 获得/设置异步 I/O 所有权(cmd=F_GETOWN 或 F_SETOWN).• 获得/设置记录锁(cmd=F_GETLK,F_SETLK 或 F_SETLKW).• 获得/设置文件描述符标记(cmd=F_GETFD 或 F_SETFD).
2025-10-02 14:22:53
341
原创 C++线程详解
Linux线程编程基础摘要Linux线程是进程内的执行分支,用于实现并发任务。相比进程,线程更轻量级,适合IO等待场景。通过pthread_create()创建线程,需指定执行函数和参数;主线程可用pthread_join()等待新线程结束并回收资源,或通过pthread_detach()分离线程使其自动释放资源。线程函数通过return或pthread_exit()终止,支持返回值传递。示例展示了线程创建、等待、分离的基本用法,体现多执行流并发执行的特性。
2025-07-30 21:39:45
605
原创 如何自己编写动静态库及如何使用
①gcc test.c -I 指定头文件路径 -L 指定库路径 -l 指定库名(这里需要注意库名只有myc是属于库名)④在/etc/ld.so.conf 路径下创建一个.conf 文件内容写自己动态库的路径。①gcc test.c -I 头文件路径 -L动态库路径 -l动态库名。动态库:/usr/lib64或/usr/local/lib64。②如果想不带上面那么多的路径可以选择将文件拷贝到制定路径下。头文件:/usr/include/①将所有的.c文件编译成.o文件。静态库:/usr/lib64/
2025-02-27 11:52:41
208
原创 文件描述符的分配规则,重定向的原理
首先我们关闭了标准输出流,也就是关闭了显示器文件,然后我们又打开了一个log.txt文件,然后我们使用printf函数进行输出打印,结果会是什么呢?我们查看log.txt文件的内容发现就是我们刚刚输出的内容,原本要打印在显示器文件的内容,现在出现在了log.txt文件,这就是输出重定向。文件描述符在分配时会把最小的,没有被使用的fd分配给用户。结果是显示器上什么也没出现,那我们输出的内容到哪里去了呢?下面关于重定向的原理:先看下面代码。
2025-02-17 19:31:13
259
原创 进程程序替换
fork()之后,父子进程各执行父进程代码的一部分,如果子进程就像执行一个全新的程序呢?进程的程序替换来完成这个功能!程序替换是通过特定的接口execl,加载磁盘上的一个全新的程序(代码和数据),加载到调用进程的地址空间中!一旦程序替换成功,就去执行新代码了,原始代码的后半部分就不存在了exec函数只有失败返回值,没有成功返回值。
2025-01-14 23:25:17
208
原创 内存地址空间有什么意义
我们在内存的申请空间的位置一但进程多起来,申请内存的位置可能变得很混乱,通过页表的映射,我们可以通过映射后的地址进行管理每个进程的内存空间,相对比较有序。当我们在代码中使用了野指针的时候,通常指向的内存是我们未申请的,这时当我们通过页表的映射就不能查到对应物理内存的地址,从而给予保护。对于虚拟地址空间,刚开始学习可能会觉得很困惑,明明可以直接使用物理内存,为什么还要使用虚拟地址空间,然后使用页表进行映射?2、地址在转化的过程中,也可以对你的地址和操作进行合法性的判定,进而保护物理内存。
2025-01-14 21:41:54
263
原创 进程控制——进程的创建,终止,等待
在命令结束后,我们可以知道命令是成功完成的还是以错误结束的。通常情况下,父子代码共享,父子再不写入时,数据也是进行共享的,当任意一方进行写入时,便以写时拷贝的方式的方式各自分配一份数据。在程序的执行遇到错误的时候,通常会将errno的值设置分退出码,正常我们使用return errno,还返回退出码。• 如果子进程已经退出,调用waitpid,waitpid会立即返回,并释放资源,获得子进程的退出信息。wait是等待任意一个子进程退出,将子进程的退出码返回给status,wait的返回值为子进程的pid。
2025-01-14 19:58:55
1107
原创 Linux中的环境变量
在Linux中,我们直接输入env命令来查看环境变量。想要查看某一个环境变量:echo $ENVNAME。知道了如何查看环境变量之后,我们来看一下如何导入自己的环境变量。我们可以使用echo $环境变量名的方式来查看某一个环境变量。直接在命令行输入export加环境变量名=环境变量的内容。使用unset 加环境变量名 来删除一个环境变量。
2024-12-22 01:06:59
230
原创 在Linux中执行自己写的程序如何不带路径?
这里需要注意,环境变量是内存级的变量,它是在我们的bash进程的上下文数据里的,而bash进程是在用户登录的时候就创建好了的,所以我们现在bash进程内的环境变量还是更改前的。上述的PATH就是一个环境变量名,它的内容是一串路径,当我们直接输入一个程序名时,系统会自动的在PATH这个变量内容的路径下去寻找程序来执行指令,所以我们想要在执行自己写的程序的时候不带相关路径,只要把我们当前程序的路径添加到PATH环境变量里是不是就可以了呢?然后我们在第10行后面添加上我们自己程序执行的路径。
2024-12-21 15:08:24
503
原创 命令行参数
我们在Linux中执行ls -l等命令的时候,其实执行的也是c程序,并且带不同选项的命令会有不同的结果,我们现在就能理解为什么带不同的选项会出现不同的结果了,原因是,我们在输入的命令被传到了argv数组中,可以被我们将要执行的程序知道,这样我们只需要根据argv字符指针数组指向的不同内容来控制程序执行的结果了。在上面的测试中,我们在命令行运行了三次,每次带了不同的选项,结果显示,argv指针数组分别指向的就是我们命令行输入的三个单词(用空格隔开算一个)。第一个参数argc的值就是argv数组的元素个数。
2024-12-20 11:47:36
340
原创 进程的切换
保存到了进程的task_struct里面。但是当代计算机需要保存到内容太多了,所以给了每个进程一个TSS结构体:任务状态段。实时操作系统有汽车制动时,采取的系统。进程切换,最核心的,就是保存和恢复当前进程的硬件上下文数据,即cpu内寄存器的内容!a.一旦一个进程占有CPU,会把自己的代码跑完吗?可以使用cat /proc/cpuinfo 文件内的信息。所以:当前进程把保存的硬件上下文数据保存到哪里了呢?b.死循环进程,不会一直占有CPU。一个cpu一个运行队列。2.聊聊CPU,寄存器。
2024-12-20 11:17:10
156
原创 Linux中的进程状态
t:在调试的时候,遇到断点处停下,此时运行状态是tracing stop,进程被暂停了,需要被debug所以要追踪。D:状态,属于休眠的一种,当内存空间不足时,操作系统无权杀掉D状态的进程,一般出现在高io的磁盘写入情况下。当使用Ctrl+z将进程暂停的时候,使用kill -18 pid 信号可以继续进程。进程结束时,代码和数据可以被释放掉,退出信息被保存在task_struct结构体中。T: 一个while循环进程被Ctrl+z暂停,使用ps查看到的进程状态就是T。Z:进行结束时,还未获取退出信息。
2024-12-11 21:55:27
221
原创 Linux中关于进程的初始认识及fork系统调用
由于fork创建了子进程,程序由一个变成了两个,那么这两个程序都需要执行含fork以下的代码,其中父进程中的ret返回的是子进程的pid,这个也不难理解,子进程是由父进程创建的,需要对子进程进行管理。其中,子进程返回的是0。我们的可执行程序从磁盘中加载到内存,其中代码就属于进程的一部分,为什么说是一个部分呢?因为该程序还要被操作系统进行管理,在操作系统中,会创建一个结构体用来记录进程的相关数据,例如标识符pid等。在上述图片中,程序开始执行,在第七行时,程序创建里一个子进程,子进程拥有父进程剩余的代码。
2024-12-10 19:10:50
371
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅