- 博客(91)
- 收藏
- 关注
原创 MySQL快速入门——库的操作
可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。注意:不要随意删除数据库。
2024-10-24 23:13:54 1318
原创 多元线性回归【正规方程/sklearn】
这种最小二乘法估计,我们可以认为,假定了误差服从正太分布,认为样本误差的出现是随机的,独立的,使用最大似然估计思想,利用损失函数最小化 MSE 就能求出最优解!所以反过来说,如果我们的数据误差不是互相独立的,或者不是随机出现的,那么就不适合去假设为正太分布,就不能去用正太分布的概率密度函数带入到总似然的函数中,故而就不能用 MSE 作为损失函数去求解最优解!所以,最小二乘法不是万能的。还有譬如假设误差服从泊松分布,或其他分布那就得用其他分布的概率密度函数去推导出损失函数了。
2024-10-22 11:40:46 1206
原创 VSCode配置Python开发环境【练习环境VS工程环境】
学习完这篇博客后,相信大家已经掌握了如何用Minconda管理虚拟环境。终端窗口,不会显示当前所处的虚拟环境,所以最好切换成。
2024-10-19 16:43:23 924
原创 Linux从0到1——信号【信号的概念/信号的产生/Core Dump/信号的保存/信号的处理/可重入函数/volatile/SIGCHLD】
函数访问一个全局链表,有可能因为重入而造成错乱,像这样的函数称为不可重入函数,反之,如果一个函数只访问自己的局部变量或参数,则称为可重入(Reentrant)函数。信号的处理是有优先级的,并不是先收到哪个信号就先处理哪个,这个我们不做研究。,插入操作分为两步,刚做完第一步的时候,因为硬件中断使进程切换到内核,再次回用户态之前检查到有信号待处理,于是切换到。是一个布尔函数,用于判断一个信号集的有效信号中是否包含某种信号,若包含则返回1,不包含则返回0,出错返回-1。,因为处理信号的动作,会自动中断休眠。
2024-10-10 22:38:01 908
原创 VSCode搭建C/C++开发环境【Windows】
VSCode毕竟是一个高级的编辑器,只能用来写C/C++代码,不能直接编译代码。所以,如果我们要能使用VSCode搭建C/C++的编译和调试环境,还必须有编译器使用。为了方便,我们就使用。快捷键,在弹出的界面中选择:【C/C++:编辑配置(UI)】,然后进入设置页面。将下载后得到的文件解压缩,得到一个文件夹。接下来将这个文件夹放在一个方便管理的地方,建议放在C盘或D盘的根目录下。在弹出的页面中,选择【C/C++:gcc.exe 生成活动文件】现在我们想在另一个目录中,编译执行代码,只需要将这个。
2024-10-08 20:49:17 1528
原创 滑动窗口_找出字符串中所有字母异位词、串联所有单词的子串_C++
的子串,返回这些子串的起始索引。不考虑答案输出的顺序。指字母相同,但排列不同的字符串。
2024-10-05 23:38:21 377
原创 滑动窗口_水果成篮_C++
你想要尽可能多地收集水果。你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组。,返回你可以收集的水果的最大数目。棵树上的水果种类。
2024-10-05 17:47:41 279
原创 双指针_复写零_C++
请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。注意:请不要在超过该数组长度的位置写入元素。进行上述修改,不要从函数返回任何东西。给你一个长度固定的整数数组。
2024-10-05 14:46:18 482
原创 BFS解决多源最短路问题_01矩阵_C++【含多源最短路问题介绍+dist数组介绍】
如图,红色是出发点,蓝色是终点。以前我们做的题中,出发点只有一个,所谓多源的意思就是,出发点有多个,求最短路径。当然,这种题的解题思路就是,将所有的出发点,合在一起,变成一个超级源点,直接计算从这个超级源点出发,到目标点的最短距离即可。
2024-10-03 21:41:20 932
原创 BFS解决最短路问题_最小基因变化、单词接龙_C++
记录了所有有效的基因变化,只有基因库中的基因才是有效的基因序列。(变化后的基因必须位于基因库。这些变化关系和基因构成了一副无向图,并且边权唯一。一次基因变化就意味着这个基因序列中的一个字符发生了变化。基因序列可以表示为一条由 8 个字符组成的字符串,其中每个字符都是。所需的最少变化次数。如果无法完成此基因变化,返回 -1。进行变化,就可以得出四个不同的基因。如此一来,就将该问题转化为了边权为1的最短路问题。默认是有效的,但是它并不一定会出现在基因库中。如图,假设起始基因为。,可以变化的字符只有。
2024-10-03 15:10:08 1010
原创 BFS解决最短路问题_迷宫中离入口最近的出口_C++【含最短路问题介绍】
假设我们要从A点到G点,想要找到一条最短的路径,就是最短路问题。当然每个节点之间的权值可能不为1,但是今天我们只讨论边权为1的最短路问题,因为BFS算法只适用于边权为1的最短路问题。
2024-10-02 23:11:03 367
原创 BFS解决FloodFill算法_岛屿数量、岛屿面积、岛屿周长_C++
给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。这道题不同于“图像渲染”,它涉及到一个死循环访问的问题。位置开始BFS搜索,假设会先访问到。位置开始BFS搜索时,会再次访问到。在上面的网格中,假设我们先从。,这样就会产生循环访问。
2024-10-01 16:11:31 468
原创 BFS解决FloodFill算法_图像渲染_C++【含FloodFill算法介绍】
对指定区域进行涂色,将上下左右四个方向上,相邻的颜色相同的区域,涂色成指定的颜色。
2024-09-30 16:10:05 518
原创 Linux从0到1——进程间通信【管道/System V共享内存/消息队列/信号量】
从本节开始,建议大家将开发环境改为VS code使用vs code远程连接云服务器【以CentOS7为例】数据传输:一个进程需要将它的数据发送给另一个进程。资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如子进程终止时要通知父进程)。进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。管道System V进程间通信。
2024-09-13 21:19:33 616
原创 Linux从0到1——基础IO(下)【磁盘/文件系统/软硬链接/动静态库】
前面我们所学习的,都是被打开的文件。但是,不是所有的文件都是被打开的大部分文件是不被打开的(当前不需要被访问),都在磁盘中进行保存。没有被(进程)打开的文件,也要被管理,对于这部分文件的核心工作,是快速定位它。完成这份工作的是文件系统,这是磁盘级的文件系统(一般谈到文件系统指的就是磁盘级的),它是操作系统中的一个分支。还有内存级别的文件系统,管理打开的文件。磁盘级文件系统+内存级文件系统=文件系统。对打开的文件进行管理;没有打开的文件也要在磁盘中进行管理。
2024-09-05 17:31:39 997
原创 Linux从0到1——进程池【匿名管道实现】
一旦管道中被放入了数据,意味着这个管道对应的子进程被激活,开始执行任务码对应的任务。一次性开辟多个管道和多个子进程,让每一个管道和子进程一一对应。上面这种创建管道和进程的方式有一个很深层次的。类型的数据,表示需要执行任务的任务码。父进程每次向管道中送入4字节。
2024-08-13 10:15:38 1038 1
原创 Linux从0到1——模拟实现一部分C库接口【fopen/fwrite/fflush/fclose】
我们模拟实现的函数肯定和C库中的函数有很大差别,这里只是从理解的角度去带大家模拟实现一下。实际C库中的函数会更加复杂。
2024-08-04 10:24:11 232
原创 Linux从0到1——基础IO(上)【文件描述符/重定向/缓冲区】
对文件的操作无非就分为两种,一种是读,一种是写。但是无论读写,都需要先将磁盘中的文件数据加载到文件缓冲区中。这里只是粗力度的解释一下为什么要刷新缓冲区,关于缓冲区更多的细节,我们在后面讲解。我们在应用层进行的数据读写,本质是将内核缓冲区中的数据进行来回拷贝。结构体中,必定要存储两个信息:a. 文件的属性 b. 文件的内容。如果关闭1号文件(显示器),则无法在显示器中看到输出结果。任何情况下,我们调用C语言文件接口的时候,都要有一个。菜鸟驿站在送快递时,肯定也有自己的配送方式。结构体中也封装了缓冲区。
2024-08-03 22:48:48 804
原创 Linux从0到1——自定义shell2.0【添加重定向功能】
学习本篇之前,需要大家掌握简单的自定义shellLinux从0到1——小实验:自定义shell。
2024-07-30 17:19:37 410
原创 Linux从0到1——进程控制【进程创建/进程终止/进程等待/进程程序替换】
之后,就有两个二进制代码相同的进程。而且它们都运行到相同的地方。但每个进程都将可以开始它们自己的旅程。子进程进过等待退出时,需要先保存自己的退出信息,将退出信号和退出码写入子进程。状态是一个瞬时状态,不好观察,进入这个状态的进程,其资源已经可以被释放了。然后通过一定的计算(图中红色部分),将退出信号和退出码都保存在。中,这样父进程就可以拿到子进程的退出信息了。在进程终止时,不会自动刷新缓冲区;在进程终止后,会自动刷新缓冲区。执行时,子进程会修改自己的状态(,僵尸状态->死亡状态)。:以非阻塞方式等待。
2024-07-19 21:05:48 739
原创 MySQL快速入门——MySQL在CentOS7环境下的安装
安装与卸载过程中,用户全部切换成为root。⼀旦安装,普通用户也是能使用的;初期练习,mysql不进行用户管理,全部使用root进行,尽快适应mysql语句,后面学了用户管理,再考虑新建普通用户。
2024-07-19 11:58:16 748
原创 Linux从0到1——进程概念(下)【进程优先级/命令行参数/环境变量/程序地址空间】
还未定义,也就是该字段为00(假设00表示未分配,没有内容),操作系统就会先暂停对该虚拟地址的访问,随后进行物理内存的分配,初始化,然后再修改页表,将映射的物理地址和该标记字段修改一下——这个过程也叫。后两个是访问权限字段,和表示是否给虚拟地址分配空间、虚拟地址是否有内容的字段。访问权限字段:如果代码中,出现修改常量字符串的操作,会在页表处就进行拦截。标记是否分配空间&是否有内容的字段:模拟一次内存分配,假如现在执行代码。进程切换时,寄存器中的内容不用清空,而是直接被覆盖。的缩写,代表进程的优先级。
2024-07-13 11:03:55 787
原创 梯度下降算法【解决多元线性回归】
1. 何为梯度下降:2. 梯度下降的必要性:3. 梯度下降的思想:1. 公式:梯度下降的更新公式,其实就是参数 θ\thetaθ 的更新公式(θ\thetaθ是一个参数向量,nnn 表示迭代次数):其中 η\etaη 表示学习率,gradientgradientgradient 表示梯度:由于 θ={θ1,θ2,...,θm}\theta=\{\theta_1,\theta_2,...,\theta_m\}θ={θ1,θ2,...,θm} ,所以有:这里的 θj\theta_jθj 就是 θ\the
2024-06-13 17:27:04 736
原创 数据结构进阶——AVL树
学习本章,需要大家先掌握搜索二叉树,了解键值对pair。int _bf;// balance factor 平衡因子, _kv(kv), _bf(0){}该节点的定义是一个三叉链,_left和_right分别指向左右子树,_parent指向父节点;节点中存储的有效数据为pair,类型的键值对;_bf为平衡因子,在此我们定义为右树高度减去左树高度,用来控制左右子树的高度(注意:平衡因子只是其中一种控制平衡的手段,并不是唯一的);定义了一个模版构造函数,以便后续使用。
2024-06-09 23:23:55 1177 2
原创 西瓜书总结——决策树原理+ID3决策树的模拟实现
本文是对西瓜书中决策树章节的一个总结,将核心内容整理出来,帮助大家在短时间内快速建立一颗决策树。本文不侧重于帮大家理解,只是做一个知识点的总结,做一个“把书读薄”的工作。1. 生成过程:一个递归过程,对于一个节点,每次选择一个最优的划分属性,划分出n个子节点。有三种情况需要递归返回,并将当前的节点设为叶子结点,不再划分:2. 核心任务:1. 信息熵(information entropy)2. 信息增益:3. 计算信息熵的代码演示:4. 根据信息增益选择划分属性的代码实现:3.2 增益率1. 信息
2024-06-08 21:04:55 1130
原创 数据结构进阶——搜索二叉树
若它的左子树不为空,则左子树上所有节点的值都小于根节点的值;若它的右子树不为空,则右子树上所有节点的值都大于根节点的值;它的左右子树也分别为二叉搜索树。// 左节点// 右节点K _key;,_key(key){}public:// ... 相关接口实现protected:节点的定义中提供了一个构造函数,方便在后续实现相关接口的时候使用。
2024-05-14 23:24:24 902 2
原创 C++小白的逆袭之路——进阶(第一章:继承)
继承()机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。通过继承产生的新类,称为子类或派生类。继承谁谁就是父类,又叫基类。当然子类和父类都是一个相对概念。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。// 父类public:protected:// 姓名// 年龄// 子类public:void fun()Print();
2024-05-05 16:35:27 951
原创 C++中关于自定义类型的一个特例:具有常属性的临时变量可以使用非const成员函数
本节内容属于拓展,需要大家熟练掌握C++匿名对象,和临时变量的相关知识,再来学习。
2024-05-03 16:14:32 289
原创 C++小白的逆袭之路——初阶(第十二章:模版进阶)
模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生;增强了代码的灵活性。模板会导致代码膨胀问题,也会导致编译时间变长;出现模板编译错误时,错误信息非常凌乱,不易定位错误。
2024-05-02 18:32:18 1083 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人