- 博客(67)
- 收藏
- 关注

原创 CS61C 学习笔记 --实时更新
CS61c Note第一周计算机中数值的表示及其转换Lecture Topic分为两部分: 计算机历史即计算机组成介绍、 数值转换及其表示ReadingSection四种表示法:Sign and …one’s completebasictwo’s completeLab五个游戏,举例其中最有意思的两个:给你1000个1的纸币,和10个信封,并把钱放到信封里...
2019-09-23 16:50:32
8455
3
原创 Golang中间件的原理与实现
Middleware 本质是一种 高阶函数 ,接受一个处理函数作为参数并返回一个经过增强的处理函数。在 python 中叫装饰器。
2025-03-28 18:28:14
702
原创 KMP 看毛片算法原理及其实现
kmp算法前言一、KMP是什么?二、最长公共前后缀三、Next 数组2.1 next 数组表示法12.2 next 数组表示法22.2 nextval 数组四 KMP 算法实现总结前言通常而言,进行字符串匹配有两种做法:暴力法KMP法如对于以下两个字符串:char *str = "bacbababadababacambabacaddababacasdsd";char *ptr = "ababaca";暴力匹配字符串时,我们从目标字符串str(假设长度为n)的第一个下标选取和ptr
2020-09-25 09:41:08
22271
1
原创 关于408时间复杂度习题计算的理解
关于时间复杂度的计算理解前言一、循环的 判定条件 没有主体变量的参与1.1 非递归程序1.1.1 最基础类型1.1.2 迷惑类型1.1.2.1 猜测+验证法1.1.2.2 级数求和1.2 递归程序二、循环的 判定条件 有主体变量的参与前言如果代码的执行最多总次数可以被表示为一个多项式。那么时间复杂度就是 保留最高次方、且去掉常数。之后的结果。 所以,求一段代码的时间复杂度,就是 得到关于次数 t 的多项式,再去掉常数和保留最高次方即可。 然而,求出 t 并不是那么容易的。要懂得如何从代
2020-09-05 22:12:09
2496
3
原创 数列极限的理解
一. 数列数列是特殊的序列,全部由数字组成。1.1 通项公式 与 有通项公式的数列如果存在某种以正整数为定义域的函数, 使得数列每一项的 标号 和数列每一项的值满足某种关系。则这个函数被称为这个数列的 通项公式.且通项公式足以描述整个数列.eg: 1, 1/2, 1/3 ... 1/x其通项公式为 f(x)=1xf(x) = \frac{1}{x}f(x)=x1其定义...
2020-03-08 09:27:23
3103
原创 STL 模板库思想理解杂谈
STL 模板库思想理解杂谈STL 注重将 DataStructure 与 Algorithm 分开. 通过迭代器作为 DataStructure 与 Algorithm 之间的桥梁. 如下图所示DataStructure <-------iterator-------> Algorithm具体是怎么样做的呢??其中算法通过迭代器来确定算法的执行范围与对象(eg: [b...
2020-02-29 13:08:46
387
翻译 linux钉钉-使用playonlinux 可以使用视频会议
工作环境: deepin 15.111.下载 wine推荐3.01 版本,完美使用.这里我直接图省事安装了wine-4.16 (Staging) 版本, 点右下角没反应. sudo apt-get install --install-recommends winehq-staging2.下载 playonlinux不要使用 deepin 应用商店里的 playonlinux...
2020-02-22 16:09:02
2748
原创 丘奇编码计数(Chruch Encoding)的易懂理解
一. Chruch Encoding为了解决什么问题??lambda y.x*2lambda 中的自然数 2 无法表示如何解决??为此,就有了Church Encoding二. Church Encodeing 简介是 Church 发明的一种用 λ\lambdaλ expression 表示自然数的方法通过函数的嵌套层数来表示三. 本质f(x) 嵌套0次: x, ...
2020-02-13 12:06:07
2314
1
原创 牛顿迭代法及其应用
一. 概述五次及以上多项式方程没有根式解(就是没有像二次方程那样的万能公式),这个是被伽罗瓦用群论做出的最著名的结论。 那么这样的方程该如何求根呢???牛顿于 1736 年公开提出了 牛顿迭代法来解决这个问题.其核心思想 是 “逼近”.二. 几何意义我们知道,求一个方程的根,等同于求一个方程与x轴的交点的横坐标.如何求交点的横坐标呢???根据上图我们可以观察到:从 x0...
2020-02-07 23:23:15
4128
原创 泰勒公式笔记(一)-泰勒公式推导
一些函数很难求值,比如 cos2, exe^xex 等等,为了解决这个问题.泰勒想到了用仿造函数 g(x) 去逼近这个函数, 然后对 g(x) 求值即可.1. 一个可以无限求导的函数g(x)用来仿造f(x): g(x)=a0+a1x1+a2x2...+anxng(x) = a_0+a_1x^1+a_2x^2...+a_nx^ng(x)=a0+a1x1+a2x2...+anxn2...
2020-02-04 23:16:00
2501
原创 关于逻辑关系 “隐含(implies、p->q)“ 的理解
本文纯属"合情说理",并不是严谨的文章。如有错误,那真是太好了请一定告诉我,因为我真的想不通。一. 离散数学中的 p->qThere are two simply propositions that:如果明天下雨,明天他就会打伞。如果你能解决这个问题,教授会给你的平时分会是满分.在离散数学的课本里,p->q 的真值表是这样的:pqp->q...
2020-01-15 15:53:37
12313
7
原创 计算机体系结构-向量机与向量体系结构
目前中文网络上对它的解释实在太少,我也没有找到一篇从基本的向量 --> 矩阵表示 --> 向量机的解释, 所以决定自己来写一篇。向量的概念这篇文章里,解释了向量的本质.(仅仅看前两节即可)向量:指具有大小(magnitude)和方向的量。https://zhuanlan.zhihu.com/p/33119347向量的表现形式看完前面的视频,应该已经了解了一句话: ...
2019-12-05 18:40:56
1314
1
原创 解释Interpretion 与 翻译Translation/编译Complie
解释Interpretion 与 翻译Translation/编译Complie有时候,要搞清楚问题的因和果. 首先上图, 这张图将是本篇文章的核心。如有错误希望一定指出.一. 引言CPU 执行自己知晓的二进制指令. 同时,为了提高效率,人们发明了便于理解的汇编语言,将机器码与相应的汇编语言一一对应. 为了进一步提高效率,又发明了高级语言. 更高级别的编程语言.这就产生了一个问题:...
2019-11-19 23:53:50
1122
原创 Cache 相关计算
前言在学习 cs61c 第五周时,有习题需要计算 Cache,在此总结一下常见的习题.Direct Mapped 习题给予你相关变量的几个值,算出其余的几个值.
2019-11-06 19:44:07
2232
原创 Mips 递归 Fabonacii 练习
前言c函数原型int Fibonacii(int n){ if(n == 0)return 1; else if(n == 1)return 1; return Fibonacii(n-1)+Fibonacii(n-2);}int main(){ printf("%d\n", Fibonacii(4)); return 0;}期待结果0 1...
2019-10-22 11:05:15
975
原创 虚拟内存与物理内存与内存碎片-杂谈
内存杂谈虚拟内存与物理内存为什么要有虚拟内存???1.每个进程有独立的虚拟地址空间,进程访问的虚拟地址并不是真正的物理地址(每个进程都假设自己看到的是完整的从0开始的内存)2.程序可以使用一系列虚拟地址来访问大于可用物理内存的内存缓冲区。当物理内存的供应量变小时,内存管理器会将物理内存页(通常大小为 4 KB)保存到磁盘文件。数据或代码页会根据需要在物理内存与磁盘之间移动。(如linux...
2019-10-21 11:33:27
2277
1
原创 Mars 模拟器编写 mips32 汇编 的入门教程
Mars简介An IDE for MIPS Assembly Language Programming.MARS是一个轻量级的交互式开发环境(IDE),用于使用MIPS汇编语言进行编程,旨在与Patterson和Hennessy的计算机组织和设计一起用于教育级别。)我为什么要自己写这篇教程???之前通过学习cs61c 也已经掌握了不少的 mips 汇编指令, 但都只是在纸上写,没有真...
2019-10-09 14:28:19
8330
1
原创 NIM博弈 基础
Nim 博弈游戏博弈论最经典的模型之一.最常见的游戏为,给你好几列(或者堆)的棋子, 每次可以且必须在某一堆棋子里面拿走1-n(n为这堆棋子的最大个数)个棋子,然后再由另一个人拿(规则相同),最终谁拿走了全部的棋子谁就赢. 玩家为先手.第一堆: XXXXXX 数目为 a1第二堆: XXXXXX 数目为 a2第三堆: XXXXXX 数目为 a3…第n堆: XXXXXX 数目为 ...
2019-09-23 16:42:40
367
原创 SkipList源码实现的 拙劣剖析
什么是跳表?跳表是运用了 二分查找的规律,的一种“特殊的链表”。(如下图所示) 我们可以看到,我们搜寻从 header 开始,然后往后搜寻,过程中我们通过 1 级,2级…n 级索引大大的减少了遍历次数。是二分搜索思想的一种体现. 相比红黑树,SkipList 不光能实现其大多数功能,并且能在 区间遍历 这一功能上的效率上要 优于红黑树。 但是在 REDIS 的源码中不是这样的实现的...
2019-08-07 09:26:07
279
原创 Git个人笔记
一.fatal: 拒绝合并无关的历史 或许你之前的仓库有东西,你删除了此仓库的所有东西, 然后与新的远程仓库关联, 然而两个仓库的历史并不相同。就会报错。解: git pull “参数一:仓库名” --allow-unrelated-histories (忽略版本不同造成的影响) 二.Gitz中master 与 HEAD 的区别...
2018-08-08 16:31:33
247
原创 c++文件操作
本篇非常肤浅,作个人之用。 各个类间通过继承连接。 用法直接看代码. 步骤有三:1. 表示从文件读取数据 , 方式是in2. 通过某种 数据结构 来存储,再用 算法 处理3. 表示 从数据结构中输出数据到某个文件, 方式是out #include <fstream>#incl...
2018-07-21 17:26:48
279
原创 Git连接GitHub方式
分三步 git改名 ——> SSHkey配置 ——> git 推送命令 Git改名 一) git init初始化 二) git config user.name "参数1" 参数1是github账号名 ...
2018-07-16 11:54:35
435
转载 win10卸载linux的引导界面
转载于: https://www.cnblogs.com/sos-blue/p/3372930.htmlWin10、Ubuntu双系统正确卸载Ubuntu 此前我的Ubuntu不是wubi方式安装的,因为听说此方式安装有多种缺陷,于是我选择U盘安装。这时想要卸载Ubuntu了,想到卸载这个也会有些小阻碍,就写下这篇博文表示记录一下Ubuntu的正确卸载方法。 在每次开机时都会有GURB菜单,这...
2018-07-15 23:22:29
2794
1
原创 Effectivec++之 non-local static对象初始化
什么是 non-local static 对象??通俗来说, local对象 ——> 有域限制的对象, 比如一个命名空间内,一个块内等等。(受作用域限制) non-local 对象 ——> main函数结束才结束,比如全局变量 (不受作用域限制) static...
2018-07-07 14:59:36
1550
2
转载 c++ extern的用处(转载)
转自chao_yu,cnblog.com1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数...
2018-07-07 12:45:09
565
原创 c++类与对象练习题-返回什么好呢?
此题主要考察this指针,以及引用作左值#include <iostream>using namespace std;class A{ public: int val; // 在此处补充你的代码 A(int x = 123 ) { val = x; }//************这部分我想了...
2018-06-23 14:17:53
969
原创 c++类和对象练习--奇怪的类复制
此题的目的在于让我们深刻的理解c++中的 隐式类型转换;题目排名状态统计提问006:奇怪的类复制查看提交统计提问总时间限制: 1000ms内存限制: 65536kB描述程序填空,使其输出9 22 5#include <iostream>using namespace std;class Sample {public: int v;// 在此处补充你的代码};void Pri...
2018-06-17 19:46:49
1767
1
原创 c++从手生到熟练的类与对象练习题-学生信息处理系统
目的:学会使用 getline() 去处理一行输入;#include <iostream>using namespace std;class stu{ private: char cha; string name; string age; ...
2018-06-17 19:06:27
529
翻译 关于泰勒展开式的深刻理解
看到了知乎上的深入浅出的解释: 链接稍后补上我们先假设Taylor发明Taylor公式的原因是因为taylor想要很方便的计算 f(x) = cos x 的值,于是乎出现了下面的问题 我们不妨想一想,如果我们 如果不将(0, f(x))作为起始点, 而将(a, f(a) ) 作为起始点, 会推出以下结果总结Taylor公式 ——> 用多项式仿造曲线 ——> 求值佩亚诺余项...
2018-06-03 17:58:46
21820
1
原创 c++模板实现二叉搜索树
讲解引用:http://lib.youkuaiyun.com/article/datastructure/9204BSTree.h#ifndef _BSTREE_#define _BSTREE_#define debug(); cout<<__LINE__<<endl;#include <iostream>using namespace std;templat...
2018-05-29 16:34:05
567
原创 c++primer学习笔记--委托构造函数的作用
class cook{ public: cook( char* rice, char* vegetable ); //洗菜,淘米 cook( char* rice); //洗菜}; 洗菜是两个构造函数共有的, 定义两边会很麻烦, 那么怎么办呢class cook{ public: ...
2018-05-27 15:53:33
1081
原创 c++primer学习笔记--extern 链接指示
extern的使用我们自己编写了一个头文件, 是属于c的, 因为c++编写的程序比较慢。#ifndef my_c_language//头文件保护符#define my_c_language#include <stdio.h>using namespace std;void fuck(){ printf("This is only have 'c' lang...
2018-05-27 14:52:46
514
转载 友元函数
转载至: http://blog.chinaunix.net/uid-790245-id-2037327.html问题的提出 我们已知道类具备封装和信息隐 藏的特性。只有类的成员函数才能访问类的私有成员,程式中的其他函数是无法访问私有成员的。非成员函数能够访问类中的公有成员,但是假如将数据成员都定义 为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由...
2018-05-26 23:33:31
3026
原创 c++primer学习笔记--this指针以及const成员函数
this指针——指向类对象的指针#include <iostream>using namespace std;class bitch{ private: static int service;//静态成员函数 int baby;//非静态成员函数 public: ...
2018-05-26 18:02:38
538
原创 c++primer学习笔记--为什么要自己写拷贝构造函数
以这个类为例子,#include <iostream>using namespace std;class obj{ private: int* p; public: obj() { p = new in...
2018-05-26 16:49:24
974
原创 Effective c++学习笔记——用 const 和 inline 语句 代替 #define预处理命令( 尽量用 编译器 替代预处理器 )
使用 #define 的缺点:你的工程组成员,定义了一个文件“aa.h”#define max 666666你包含了这个头文件#include <iostream>#include "aa.cpp"int main(){。。。。。。}这时候你的程序运行出错了, 抛出了一个 666666 处的错误。你会很懵逼...
2018-05-26 13:37:25
256
转载 C++内联函数(转载)
阅读目录什么是内联函数如何使函数内联为什么要使用内联函数inline函数的优缺点分析什么时候该使用内联函数 正文 在C语言中,我们使用宏定义函数这种借助编译器的优化技术来减少程序的执行时间,那么在C++中有没有相同的技术或者更好的实现方法呢?答案是有的,那就是内联函数。内联函数作为编译器优化手段的一种技术,在降低运行时间上非常有用。我们将从:什么是内联函数为什么要使用内联函数内联函数优缺点...
2018-05-22 13:19:36
123
原创 c++primer学习笔记--initalizer_list类
小明喜欢放屁,扣脚, 打嗝.......等等, 这些行为简直丧心病狂。。。。 室友为了让小明知耻, 决定创造一个函数 ——> 功能是: 把传进来的这些行为用 嘴炮夸张10倍,然后再返回到同学们之中。但是我们不知道 小明会做几个行为,所以不确定要 传给函数 几个参数。initalizer_list 诞生了! ! ! 常见接口: 以后在补上int func( ...
2018-05-21 20:34:05
535
原创 c++primer学习笔记--引用与指针的深刻理解与总结 及数组结合
用参数传递来 辨析 指针与引用的区别在谭浩强错误的c程序设计中的最大错误就是: 传参有两种方式,传址和传值!!!!, 这句话我想说: 完全错,大错特错,错上加错,误人子弟。指针也是一个变量,指针也值的 子集。所以谭浩强的说法完全错误, 为什么说只有一种呢, 指针在传参时,在函数的作用域内也只要产生一个副本 ——> 然后用这个副本指针指向 实际参数 ——> 然后就可以用...
2018-05-21 19:50:52
392
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人