- 博客(60)
- 资源 (2)
- 收藏
- 关注
原创 ARP协议详解
`ARP`协议发送`ARP`包的流程是这样的,源主机广播一个ARP请求数据包,其中包含源主机的IP地址和MAC地址,以及目标主机的IP地址。该数据包会被发送到本地网络的所有主机。其他主机收到该数据包后会检查其中的目标IP地址是否为自己的IP地址,如果是,则返回一个ARP响应数据包,其中包含自己的MAC地址,发送给源主机;否则,忽略该数据包。
2023-04-22 19:19:47
1317
原创 Ubuntu18.04安装linux-lab
本文主要目的是搭建linux内核实验环境因为工作需要所以学习linux内核,目前主要根据《linux内核完全注释》和《自己动手写操作系统》进行学习,众所周知,编程的学习是要和实操相结合的,《自己动手写操作系统》中提到的实验环境是Virtual PC搭建的,太古老了,也太麻烦了。后面在找寻更新更方便的环境搭建工具的时候,发现了`linux-lab`这个开源项目,这个项目的目的就是linux内核的学习,里面提供了各种linux内核实验环境的搭建。
2023-04-09 18:21:31
482
原创 将模块编入内核详解
后面这个的话根据MakeFile的有所不同。linux内核的步骤如下所示。安装编译工具以及其他依赖包,在Ubuntu18.04执行如下命令。按回车键退出检索界面,进入检索到的路径,使用空格键将其勾选为。下载内核,然后进行解压,参考命令。如果有在上级菜单被定义的话,从MakeFile中可看到。就会被编译进可执行文件中。进入某个模块,查看其命名。以linux内核为例。号,表示编译进内核。
2023-04-01 19:10:50
342
原创 Socket通信详解
socket通信类似于电话通信,其服务器基本流程就是安装电话socket()分配电话号码bind()连接电话线listen()拿起话筒accept()socket()其中socket的函数原型如下所示,它的作用就是创建套接字,同时规定好该套接字的用途domain:套接字使用的协议族信息(比如PF_INET就是使用IVP4互联网协议族)type:套接字数据传输类型信息(比如SOCK_STREAM是指面向连接的套接字类型,TCP就是这个类型)
2023-02-26 20:42:59
824
原创 leetCode:数组中的逆序对
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。遇到一个数,先通过函数查询比它小的数的父节点得到结果,再通过函数计算比它大的父节点,在它的自身以及父节点上面。具体方法就是它会把把数存放到父节点里,然后通过一个函数可以很简单的定位到任何一个数的父节点。使用暴力能够解决,就是遇到一个数,就向后面遍历比它小的数就计数。就知道了,如果细究的话可以去了解一下计算机里面负数的存储也就是补码的相关知识。测试了,不出所料,超时。
2022-10-04 08:55:33
822
原创 从中序与后序遍历序列构造二叉树
给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树。示例 1:输入:inorder = [9,3,15,20,7], postorder = [9,15,7,20,3]输出:[3,9,20,null,null,15,7]示例 2:输入:inorder = [-1], postorder = [-1]输出:[-1]
2022-09-29 03:08:02
109
原创 华为机试:城市聚集度
■题目描述【城市聚集度】一张地图上有n个城市,城市和城市之间有且只有一条道路相连:要么直接相连,要么通过其它城市中转相连(可中转一次或多次)。城市与城市之间的道路都不会成环。当切断通往某个城市 i 的所有道路后,地图上将分为多个连通的城市群,设该城市i的聚集度为DPi(Degree of Polymerization),DPi = max(城市群1的城市个数,城市群2的城市个数,…城市群m 的城市个数)。
2022-09-27 03:05:46
1155
1
原创 LeetCode:字符串的前缀分数和
例如,如果 words = [“a”, “ab”, “abc”, “cab”] ,那么 “ab” 的分数是 2 ,因为 “ab” 是 “ab” 和 “abc” 的一个前缀。返回一个长度为 n 的数组 answer ,其中 answer[i] 是 words[i] 的每个非空前缀的分数 总和。“abcd” 有 4 个前缀 “a”、“ab”、“abc” 和 “abcd”。当插入新的单词时经历过哪个节点,那个节点对应的前缀数目就会+1。输入:words = [“abc”,“ab”,“bc”,“b”]
2022-09-19 03:24:38
375
原创 华为机试:九宫格按键输入法
■题目描述九宫格按键输入,判断输出,有英文和数字两个模式,默认是数字模式,数字模式直接输出数字,英文模式连续按同一个按键会依次出现这个按键上的字母,如果输入”/”或者其他字符,则循环中断。要求输入一串按键,输出屏幕显示。输入范围为数字 0~9 和字符’#’、’/’,输出屏幕显示,例如,在数字模式下,输入 1234,显示 1234在英文模式下,输入 1234,显示,adg#用于切换模式,默认是数字模式,执行#后切换为英文模式;/表示延迟,例如在英文模式下,输入 22/222,显示为 bc;
2022-09-17 18:50:11
1801
2
原创 结构体字节对齐详解
假如有个结构体A如下,请问它占用了几个字节?以我们的直观感觉,char占用1个字节,int占用4个字节,short占用2个字节,因此总共占用7个字节。真是这样吗?让我们运行实测一下,测试程序exampl.cpp编译并执行程序,结果如下所示每个结构体的占用空间如我们所知道的char是1,int是4,short是2,累加结果应该为7,但最后结构体占用的字节却是12个,这个就是结构体的。...
2022-07-26 01:08:12
4478
3
原创 二叉树的三种遍历以及根据中序外加其他序确定唯一一颗二叉树
以图文为主介绍二叉树的先序遍历,中序遍历,后序遍历三种遍历方式,以及根据中序遍历以及其他任意一种遍历方式来确定一颗唯一二叉树的解题方法。
2022-07-08 18:13:05
552
原创 SSL握手细节
SSL握手细节流程一般而言,握手的交互过程如下所示,其中*号表示的是可选项,表示的是加密进行的。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sGMTiOTK-1637674338157)(SSL握手细节.assets/image-20211108152920286-16376437359071-16376437685821.png)]细节以TLS ECDHE密钥交换流程来梳理SSL握手的整个流程,其中密钥交换流程如下所示[外链图片转存失败,源站可能有防盗链机制
2021-11-23 22:03:52
1022
原创 SCP:一元纸币
项目编号SCP1024项目等级Safe特殊收容措施SCP-1024被收容在Reliquary Containment Site-76,处于标准3级生化收容环境下。访问SCP-1024需要3级授权。被指派研究SCP-1024的人员拥有标准授权访问权限,不过必须在访问SCP-1024之前告之项目领导并记录一切使用中的相关活动。描述SCP-xxx是一张面值为一元的人民币纸币,其特殊效果有:1,给人带来轻微好运,包括不限于,总能在骑到最后一辆共享单车,总能在到达公交站台的五分钟内等到公交车,在就餐时
2021-10-17 23:23:11
296
原创 SSL单向验证握手详解
SSL单向验证握手详解SSL单向验证握手阶段主要解决两个问题,第一个就协议算法达成一致。第二个是生成一个只有双方知道的加密密钥(对称)密钥导出函数,在确定协议通信协议的时候也确定了密钥导出函数,SSL和TLS的密钥导出函数是不同的。但大致都是根据三个输入数据得到一个输出数据作为对称密钥。握手流程图握手步骤详解简单来说,SSL单向验证握手总共以下几步:client_hello->发出通信请求,将自己的支持的算法套件列表发给server,发送随机数A,用于后续密钥计算。&
2021-10-13 14:47:40
669
原创 简单的安全信息系统
简单的安全信息系统简单介绍在不考虑握手的情况下进行通信,保证安全性,不可更改,防抵赖A发送消息给B过程详解A写了消息想发给B,A首先写出这个消息hello,world,然后将这个消息进行hash得到摘要,最后加上自己的证书,加上经过签名后的摘要。其形状如下所示123消息A的证书签名后的消息摘要然后A生成一个随机对称密钥,将这个密钥对以上消息进行加密,然后将该密钥使用B的公钥进行加密附加到消息的前面,其形状如下所示1234B公钥加密后的对称密
2021-10-12 17:16:20
2022
原创 C代码编译过程详解
C代码编译过程过程简介以hello.c代码为例,当我们编译hello.c时。#include <stdio.h>int main(){ printf("hello world\n"); return 0;}一般使用的编译命令是gcc -o hello hello.c我们能看到通过该命令后会得到一个可执行文件hello,执行该程序./hello我们会在界面上看到hello world一般而言我们不需要追究编译的细节,就好比我们去餐厅吃饭,我们不需要去细问厨师是
2021-09-28 22:41:22
1120
原创 浅谈握手:通信协议变迁
浅谈握手:通信协议变迁初始通信协议刚开始通信协议是没有加密概念的,即全程发送明文,后面有人好奇别人发了什么东东就通过抓包等手段抓取数据,这种事情干多了,总会露馅,不愿意暴露自己隐私的人就想到了将自己的数据进行加密,但是加密的目的是让第三方不知道自己发的是什么,总得让接收方知道自己发的是什么吧,于是发送方和接收方就约定,在通信的前几个字节保存密钥,这样的话无论是对方还是自己,收到消息都能很方便的解密,而第三方不知道这个协议的话就很难知道发送的是什么。非对称加密通信协议初始通信协议没用多久,很快就有很多
2021-09-18 14:37:44
500
转载 在命令行使用 Pandoc 进行文件转换
在命令行使用 Pandoc 进行文件转换[转载]原文:在命令行使用 Pandoc 进行文件转换文章目录在命令行使用 Pandoc 进行文件转换[转载]安装使用创建一个包含数学公式的网页制作一个Reveal.js幻灯片制作一份多种格式的合同模板和元信息结语安装在ubuntu上直接使用命令行安装:sudo apt-get install pandoc pandoc-citeproc texlive等待安装完成。。。。。使用创建一个包含数学公式的网页pandoc的优势之一就是以不同的输出文件格
2021-01-12 17:54:53
650
原创 Biblatex参考文献引用
Biblatex参考文献引用引用参考文献测试文档test2.bib@phdthesis{__2006, type = {硕士}, title = {特征选择算法研究}, url = {https://kns.cnki.net/KCMS/detail/detail.aspx?filename=2007140621.nh&dbname=CMFD2007&dbcode=cdmd&uid=WEEvREcwSlJHSldSdmVqM1BLUWdMWjVUaHZNcDE4aHdpZD
2020-09-17 06:35:26
2871
1
原创 截取包含汉字字符串的子字符串
截取包含汉字字符串的子字符串目标截取字符串:“本书字数:209.9万字”中间的数字209.9测试字符串中每种字符在当前占用字节数char test[10] ="测试";printf("%s :%d\n",test,(int)strlen(test));得到结果是6也就是说每个汉字占用6个字符然后测试目标字符串的大小char strlen_tmp[40] = "本书字数:209.9万字";printf("%d\n",(int)strlen(strlen_tmp));得到结果是26,
2020-08-29 17:40:00
218
原创 对于两个相同的double类型的数相减结果不等于0解决方案
对于两个相同的double类型的数相减结果不等于0解决方案问题详情在进行回归树生成的时候,发现叶节点上面出现诸如2.31112e-33的数字。经过不断的测试,发现错误代码是for(int i = 0; i < Value_Class.size(); i++) { double x_tmp = (Value_Class[i] - Value_Average); double sum_tmp = x_tmp * x_tmp; Value_Var
2020-08-24 16:15:35
4105
原创 C++让Vector的数组随机排列
C++让Vector的数组随机排列思路输入: vector<string> Array过程: vector<string> Shuffle_ArrayOrder(vector<string> Array_tmp)1: 新建一个map<int,int>map_tmp ,其中first从0到Array.size(),second是10000 以内的随机数2: 对map_tmp根据second进行排序3: 新建一个vector<strin
2020-08-19 14:17:53
1092
原创 我的BUG因为犯下滔天大罪,已经被Github官方封印在北极千年
好久没登录GitHub官网,没想到我的几个项目被获选到北极代码库,还给我发了一个勋章,想起来还有点小激动,千年之后,后代子孙看到我那狗屎一样的代码会不会重拾学编程的信心,想到这里我流下高兴的眼泪,终于还是为后代子孙做了一点小贡献。信息熵和信息增益
信息熵和信息增益 对决策树有过初步了解的人对决策树应该有个初步概念,决策树就是将各种属性根据在当前条件下,计算出划分结果最有利的属性,并将该属性做为划分属性,以此类推,直到所有的属性都划分完毕。其中如何确定该属性对于划分结果是最有利?这个需要用到信息熵的概念,即通过计算条件熵H(Y|X)(表示在已知随机变量X的条件下随机变量Y的不确定性),选择不确定性最低的属性做为最优划分属性。信息熵概念...
2020-03-12 03:48:30
1344
原创 linux下安装和使用mysql
linux下安装和使用mysql安装mysqlsudo apt-get install mysql-server mysql-client使用mysql登录mysqlmysql -u(用户名) -p(用户密码)例子:新建数据库create database 数据库名;//create database foo;例子:新建表查看数据库:show databases;...
2020-02-25 01:28:21
149
原创 linux C中使用正则表达式
linux C中使用正则表达式 对应的头文件是 #include <regex.h>编译正则表达式 regcomp()函数原型:int regcomp(regex_t *preg, const char *regex, int cflags);regex_t 是一个结构体数据类型,用来存放编译后的正则表达式,其结构为 struct re_pattern_buffe...
2020-02-15 22:42:15
689
原创 Linux中main函数参数详解
Linux中main函数参数详解常用参数 常用参数有argc和argv,其中argv是程序后面的字符串,argc是第几个字符串。 man argc得出 argc The number of arguments to tclsh or wish. argv Tcl list of arguments to tclsh or wish.常用函数geto...
2020-02-12 04:24:03
551
原创 爬取小说网的问题和解答
爬取小说网的问题和解答问题假设有n个不同的数字和m个不同的单词,每个数字指向多个不同的单词(0,L)(L<<m),每个单词指向多个不同数字(0,L),那么现在进行一次循环:第一步:如果ing是空的,结束循环,否则,从ing队列里面取出首位(单词或者数字),如果是数字,执行以下操作:检验该数字是否在done里面已经存在,如果已经存在,则第一步重新开始。如果不存在,则将其加入done...
2020-02-08 03:35:52
231
原创 linux中的管道详解
linux中的管道管道是什么? 在linux中,所有的一切都被当成文件来处理,我们把处理文件的过程叫做流,而管道就是控制流的方向。管道的专用符号是 “|”,当前一个流结束时,通过符号"|",前一个流的输出会自动变为后一个流的输入。怎么诊断程序中的管道问题 但是具体应用过程中可能遇到一些问题,比如说提示错误:管道错误: 打开的文件过多,这个时候你先要知道是哪个进程的管道数超标。使用to...
2020-02-06 06:47:05
1623
1
原创 关于feof机制的详解
关于feof机制的详解遇到的问题在撸代码的时候遇到一个问题,使用feof(fp)做为文件结束检测,使用fscanf读取文件,但是往往会读取最后一行两次。测试文档如下:测试代码如下:#include <stdio.h>#include <string.h>int main(){ char StrTmp[80]; memset(StrTmp,...
2019-12-30 20:52:19
744
原创 正则表达式匹配两个字符串中间的字符串
正则表达式匹配两个字符串中间的字符串文章目录正则表达式匹配两个字符串中间的字符串两个字符中间的字符串两个字符串中间的字符串两个字符中间的字符串测试用例casetest.txt:<h1>RUNOOB-菜鸟教程</h1>目的:匹配第一个h1,下面是正则匹配式/<\w*>/ 实际上匹配的是<h1>,其中\w是表示数字或者字母...
2019-11-29 03:39:14
5777
1
原创 四六级真题刷题工具
四六级真题辅助程序文章目录四六级真题辅助程序需求解决思路代码运行截图需求为了能够刷英语真题过英语四级,我需要一个程序来辅助我做题。我的刷题思路是这样的。第一步,在真题中标出我不会的单词。第二步,死记硬背,联系到原文去理解。第三步,通读原文,去做题,如果做不会跳转到第二步。如果做的会,跳转到下一步,从第一步开始。但是我遇到的问题有:每次手动去搜索不会的单词,然后抄写太繁琐了,而且我字写的...
2019-11-03 21:28:33
2956
1
原创 IP协议图解详解
IP协议IP数据包结构数据包结构4位版本 4位首部长度8位服务类型 16位总长度 16位标志3位标志13位片偏移8位生存时间(TTL)8位协议16位首部校验和 32位源IP地址 32位目的IP地址选项 数据数据包结构解释 字段 位数 用法说明 版本(v...
2019-10-25 21:15:48
814
原创 二叉树树的三种遍历
文章目录二叉树树的三种遍历前序遍历介绍图解算法实现中序遍历介绍图解算法实现后序遍历介绍图解算法实现二叉树树的三种遍历 其实这三种遍历都是根据递归的性质来的,区别在于输出在调用左边之前,在右边之前,以及在右边之后。前序遍历介绍 前序遍历,就是一个触手不断的往一个左边伸手,每摸到一个节点就把它显示出来,它一路往左边摸,直到左边没节点了,他就返回上一个节点,看下该节点有没有右边节点,有的话...
2019-10-13 18:08:08
181
原创 算法—跳台阶详解
算法—跳台阶详解题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。解题思路用递归的思路比较好理解,跳到第n个台阶最后一步只有两种可能,第一,从第n-1跳一级。第二,从n-2跳2级。也就是说f(n) = f(n-1) + f(n-2)题目衍生 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。...
2019-09-26 19:01:39
2177
原创 从哥尼斯堡的七桥到网络爬虫
从哥尼斯堡的七桥到网络爬虫文章目录从哥尼斯堡的七桥到网络爬虫引言主要内容结尾语题外话引言 在普鲁士的哥尼斯堡前面是一条河,河上有两个小岛,有七座桥把两岸和小岛连起来。当地人提出一个有趣的问题:一个步行者怎么才能不重复,不遗漏地一次性走完七座桥,最后回到出发点。这个问题看上去一目了然,每天有很多人来这边散步并且尝试解决这个问题。1736年欧拉来普鲁士访问,听说了这个问题,于是他空闲的消遣...
2019-09-21 22:47:51
145
Iris数据集(鸢尾花数据集),无格式linux机器学习专用版
2020-07-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人