- 博客(22)
- 收藏
- 关注
原创 xv6移植Fatfs
写在前面这是一篇记录在xv6上移植Fatfs文件系统过程的日志,在写下这段话时,我还没有开始移植,不知道会遇到什么困难。因为不是移植成功后再回顾过程写的,做到哪里写到哪里,所以组织上会很乱。但是可以完整的记录下我遭遇和解决问题的过程。希望能给有需要的读者提供一些宝贵的经验。本人由于水平有限,难免错误,欢迎大佬指正。制作文件镜像本次移植主要在qemu上面,首先需要制作一个文件镜像fs.img。下面是制作fat32格式文件镜像的命令,放在一个.sh脚本中。先在里面预先放置一些文件。测试时使用。#!/bi
2022-05-13 18:48:57
512
翻译 80386异常和中断
这篇文章翻译自Intel 80386 Reference Programmer’s Manual的第9章。第九章 异常和中断(Exceptions and Interrupts)中断和异常是特殊类型的控制转移,他们执行起来有点像非编程(unprogramed)的CALL(调用)。他们改变正常的程序流去处理外部事件(external events)、报告错误( report errors)或异常条件(exceptional conditions)。中断和异常的不同之处在于中断用来处理处理器外部的异步(as
2022-02-02 21:31:44
805
翻译 80386内存管理
这篇文章翻译自Intel 80386 Reference Programmer’s Manual的第5章。文章目录第五章 内存管理5.1 段翻译(Segment Translation)5.1.1 描述符5.1.2 描述符表5.1.3 选择符5.1.4 段寄存器5.2 页翻译(Page Translation)5.2.1 页框(Page Frame)5.2.2 线性地址(Linear Address)5.2.3 页表( Page Tables)5.2.4 页表条目Page-Table Entries5.2
2022-01-30 13:18:13
936
原创 scanf格式详解
scanf格式详解c语言中,你可能会遇到这样的scanf输入形式:scanf("%[^\n]%*c",s);,从而摸不着头脑——这是个什么意思呢?我们慢慢分析,已知scanf的格式说明符遵循以下原型[1]:%[*][width][length]specifier%后三个[]中的内容是可选的,可以有,也可以没有。分别表示:sub-specifierdescription*An optional starting asterisk indicates that the data
2021-11-11 10:06:48
1531
原创 leetcode36
1. 题目地址36. 有效的数独2. 题目分析不难,主要是要用哈希表记录数字在每行,每列,每个九宫格出现的次数,大于1说明不可行。使用数组实现哈希表。代码:class Solution {public: bool isValidSudoku(vector<vector<char>>& board) { int rows[9][9]; int columns[9][9]; int subboxes[3][3][
2021-09-17 10:29:46
98
原创 leetcode162
题目地址162. 寻找峰值题目分析O(n)O(n)O(n)的算法很好想,很简单,再次不多赘述了;但是O(logn)O(\log n)O(logn)的算法就抓破脑袋也写不出来,这就是差距吧。二分的思路如下:先判断某个位置i上的数是不是峰值(peak),如果不是,再判断i和i+1位置上的数的大小,如果nums[i+1]>nums[i],那么i+1之后一定有峰值(其实i之前也可能有峰值,但是可能存在0到i一直是单调上升的情况),反过来讲如果nums[i]>nums[i+1],那么i之
2021-09-15 12:14:05
178
原创 leetcode524
说明:这个版块主要是做题的记录,以前自己虽然也偶尔会做做题,但是都没有记录,做过的都忘了,效果很差,所以开了这个版块记录一下,包括自己的思路和方法,以及学到的东西。自己比较菜,先追求通过,速度和内存消耗的考虑在其次,代码质量不高。所以大家参考时谨慎,推荐去看专门的题解。1. 题目地址524. 通过删除字母匹配到字典里最长单词2. 题目分析马上想到了双指针法(虽然我不知道这个方法的名字叫双指针)。然后发现真用指针,自己对于char *和string这块不是很熟,很有可能搞错,所以换成了数组下标。动规
2021-09-14 13:53:19
220
原创 2020数模国赛A题复现
数模国赛2020A复现文章目录1. 前言2. 模型建立2.1 偏微分方程模型2.2离散化处理(有限差分法)2.3 参数讨论2.4 回焊炉内的温度分布2.5 模型参数拟合3. 模型求解3.1 问题一3.2 问题二3.3 问题三3.4 问题四4. 总结与反思5. 附件参考资料1. 前言优秀论文[1]和[2]都建立了偏微分方程模型,以原件的厚度xxx作为一个变量,以时间ttt作为另一个变量,最后用有限元法(有限差分法?)求解偏微分方程。其中[1]的求解效果较好,代码较全,[2]稍微差一些,又改用了其他模型。
2021-08-12 15:41:34
3195
6
原创 单纯形法线性规划
单纯形法线性规划1. 单纯形法求解线性规划步骤废话不多说,从一个例子开始:求解下列线性规划:首先预处理,令:M=25x1+33x2+18x3M=25x_1+33x_2+18x_3\\M=25x1+33x2+18x3然后在第一个约束条件中添加松弛变量(slack variables)x4(>0)x_4(>0)x4(>0),得到:2x1+3x2+4x3+x4=602x_1+3x_2+4x_3+x4=602x1+3x2+4x3+x4=60第二个约束条件和第
2021-07-20 21:47:20
3183
原创 多元正态分布(Multivariate normal distribution)
多元正态分布(Multivariate normal distribution)前言我们通常讨论正态分布都是在一元(univariate)的情况下,相信下面的定义大家都很熟悉了:假设随机变量XXX服从正态分布,则XXX具有概率密度函数:f(x)=(2πσ)−1exp(−(x−μ)22σ2)f(x)=(\sqrt{2\pi}\sigma)^{-1}\text{exp}(-\frac{(x-\mu)^2}{2\sigma^2})f(x)=(2πσ)−1exp(−2σ2(x−μ)2)其中μ\muμ
2021-07-05 17:33:18
20652
4
原创 负指数二项式展开
负指数二项式展开文章目录负指数二项式展开前言含负数的组合数负指数二项式的麦克劳林展开参考资料前言今日在学习陈希孺先生的《概率论与数理统计》一书时,看到了一个之前未闻的负二项分布,于是上溯到负指数的二项式展开,这方面从前未知,照例学习一番,写篇博客,即入即出。含负数的组合数我们通常的二项式展开的指数是非负整数,例如:(a+b)n=∑r=0nCnran−rbr(a+b)^n=\sum_{r=0}^{n}C_n^ra^{n-r}b^r(a+b)n=r=0∑nCnran−rbr其中Cnr=n!
2021-07-04 19:22:24
12865
4
原创 编译原理实验——LL(1)文法分析
编译原理实验——LL(1)文法分析1、实验目的与内容先输入一段文法,自动提取左公共因子,消除左递归,构建预测分析表。在输入一个表达式,进行表达式的分析。文法由文件输入,如上图所示,要分析的表达式由控制台输入。2、程序总体设计思路和框架#mermaid-svg-P8Od5rgyPqeuc1so .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;colo
2021-06-20 21:18:14
2589
原创 编译原理实验——递归下降分析法(回溯)
编译原理实验——递归下降分析法(回溯)1、实验目的与内容采用递归下降分析法,根据下列文法内容编写程序:E → TE’E’ → ATE’|εT → FT’T’ → MFT’ |εF → (E) | iA → + | -M → * | /输入:一个表达式,例如”i*i+i-i“。输出:该表达式的分析,例如(打印是倒着的):2、程序总体设计思路和框架无回溯递归下降分析要先手动求出select集,为了避免手动求解的麻烦(主要是懒),采用有回溯递归下降分析的方法。根据产生式编写函数,一
2021-06-20 19:58:24
1865
原创 浅谈条件数(condition number)
浅谈条件数(condition number)目录浅谈条件数(condition number)向量的范数(the norm of a vector)矩阵的范数(the norm of a matrix)三条结论结论1结论2结论3总结参考资料近日在看线代的书时,正好看到了奇异值(singular value)在计算条件数的应用,于是找了几份资料,似有所悟,在此现学现卖,分享与同道中人。需要指出的是,条件数是个宽泛的概念,这里讨论的,用[1]的话说是“the condition number for i
2021-06-20 17:02:12
3327
原创 编译原理实验——正则表达式转化为NFA
目录1、实验目的与内容2、程序总体设计思路和框架3、主要的数据结构和流程描述4、测试结果与说明5、实验收获与反思附录参考资料1、实验目的与内容输入:一个正则表达式(例如“(a|b)*abb”)输出:对应的一个NFA的mermaid语法graph LR0((0))-->|a| 1((1))1((1))-->|$| 5((5))2((2))-->|b| 3((3))3((3))-->|$| 5((5))4((4))-->|$| 2((2))4((4))-->
2021-06-19 17:47:04
6309
1
原创 编译原理实验——词法分析(lexical analysis)
文章目录1、实验目的与内容2、程序总体设计思路和框架3、主要数据结构和流程描述4、测试结果与说明5、实验收获与反思附录参考资料1、实验目的与内容实验目的是分析SysY语言的词法规范, 列出词法单元,SysY语言是一种类C语言。输入:从文件中读取SysY语言的源代码,just like the following:输出:词法分析结果,如下所示:2、程序总体设计思路和框架#mermaid-svg-IX2DiT9GW6EaKegh .label{font-family:'trebuchet ms'
2021-06-19 16:13:28
2177
原创 一维二维最近点对问题及算法分析
文章目录前言一、一维最近点对问题1、问题提出及代码求解2、时间复杂度分析二、二维最近点对问题1、问题提出及求解2、时间复杂度分析总结参考资料前言最近点对问题是分治法的典型应用案例,下面分别从一维和二维的角度给出了利用分治法求解最近点对的方法和代码,并且使用递归式和递归树的方法分析了时间复杂度。一、一维最近点对问题1、问题提出及代码求解先输入一组点的个数,再输入数轴上这组点的坐标(整数),输出这组点之中最近的两点的距离。例:输入51 3 5 6 8输出1代码如下:
2021-04-26 22:58:36
2634
1
原创 Dijkstra算法
文章目录前言一、算法原理二、代码实现三、总结参考资料前言Dijkstra算法常用于求解单源最短路径,即边上带有权值的图(有向图或者无向图)中的一点到其他各点的最短距离。下面以一张抽象为无向图的校园地图为例,介绍Dijkstra算法的原理和python代码实现。无向图如下图所示:图中各条边的权值(即路径的长度)被记录在excel表格中,格式如下:一、算法原理算法流程如下(图源自《算法导论》)。伪代码中GGG表示图,VVV表示GGG中节点的集合,vvv表示VVV中的节点,sss表示起点,v.d
2021-04-14 11:52:48
681
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人