├── .gitignore ├── LICENSE ├── README.md ├── 专业课 ├── 825 真题 2020.txt ├── 825 真题.pdf ├── 825 真题手写答案.pdf ├── README.md ├── 数据结构与算法 │ ├── 1 绪论.md │ ├── 2.1 线性表.md │ ├── 2.10 扩展.md │ ├── 2.2 栈与队列.md │ ├── 2.3 树与二叉树.md │ ├── 2.4 搜索树.md │ ├── 2.5 图.md │ ├── 2.6 散列表.md │ ├── 2.7 优先队列.md │ ├── 2.8 串.md │ ├── 2.9 排序.md │ ├── 3.1 递归.md │ ├── 3.2 回溯.md │ ├── 3.3 动态规划.md │ ├── README.md │ └── media │ │ ├── 15656106316795.png │ │ ├── 15679091637879.jpg │ │ ├── 15680867861709.jpg │ │ ├── 15680868764827.jpg │ │ ├── 15680966698060.jpg │ │ ├── 15680968645866.jpg │ │ ├── 15682702489898.jpg │ │ ├── 15682702490320.jpg │ │ ├── 15682702490739.jpg │ │ ├── 15688574627705.jpg │ │ ├── 15691500419381.png │ │ ├── 15693050041271.jpg │ │ ├── 15693054373118.jpg │ │ ├── 15693081023758.jpg │ │ ├── 15693110603949.jpg │ │ └── 15693113568077.jpg ├── 计算机系统基础 │ ├── 10 系统级 IO.md │ ├── 2 信息的处理和表示.md │ ├── 3 程序的机器级表示.md │ ├── 6 存储器层次结构.md │ ├── 8 异常控制流.md │ ├── 9 虚拟内存.md │ ├── README.md │ ├── media │ │ ├── 15694007840046.jpg │ │ ├── 15694020982063.jpg │ │ ├── 15694021393672.jpg │ │ ├── 15694090876548.jpg │ │ ├── 15694091045481.jpg │ │ ├── 15696559995405.jpg │ │ ├── 15696664918738.jpg │ │ ├── 15696666477048.jpg │ │ ├── 15714443422695.jpg │ │ ├── 15714465776092.jpg │ │ ├── 15723944115795.jpg │ │ ├── 15723945443198.jpg │ │ ├── 15723962201121.jpg │ │ ├── 15723962368661.jpg │ │ ├── 15723962506586.jpg │ │ ├── 15724032647476.jpg │ │ ├── 15724035265021.jpg │ │ ├── 15724158467942.jpg │ │ ├── 15725071164541.jpg │ │ ├── 15725074231716.jpg │ │ ├── 15725075744677.jpg │ │ ├── 15725093926392.jpg │ │ ├── 15725102973324.jpg │ │ ├── 15725192403749.jpg │ │ ├── 15728458695230.jpg │ │ └── 15728462751605.jpg │ ├── 本科作业.pdf │ ├── 本科课程资料 │ │ ├── 2018_schedule.html │ │ ├── 2018_schedule_files │ │ │ └── ics.css │ │ ├── exams │ │ │ ├── 2011 │ │ │ │ ├── ics1.fe.paper.pdf │ │ │ │ ├── ics1.fe.sol.pdf │ │ │ │ ├── ics1.me1.paper.pdf │ │ │ │ ├── ics1.me1.sol.pdf │ │ │ │ ├── ics1.me2.paper.pdf │ │ │ │ ├── ics1.me2.sol.pdf │ │ │ │ ├── ics2.fe.paper.pdf │ │ │ │ ├── ics2.fe.sol.pdf │ │ │ │ ├── ics2.me.paper.pdf │ │ │ │ └── ics2.me.sol.pdf │ │ │ ├── 2012 │ │ │ │ ├── ics1.fe.A.paper.pdf │ │ │ │ ├── ics1.fe.A.sol.pdf │ │ │ │ ├── ics1.fe.B.paper.pdf │ │ │ │ ├── ics1.fe.B.sol.pdf │ │ │ │ ├── ics1.me.paper.pdf │ │ │ │ ├── ics1.me.sol.pdf │ │ │ │ ├── ics2.fe.A.paper.pdf │ │ │ │ ├── ics2.fe.A.sol.pdf │ │ │ │ ├── ics2.fe.B.paper.pdf │ │ │ │ ├── ics2.fe.B.sol.pdf │ │ │ │ ├── ics2.me.paper.pdf │ │ │ │ └── ics2.me.sol.pdf │ │ │ ├── 2013 │ │ │ │ ├── ics1.fe.A.paper.pdf │ │ │ │ ├── ics1.fe.A.sol.pdf │ │ │ │ ├── ics1.fe.B.paper.pdf │ │ │ │ ├── ics1.fe.B.sol.pdf │ │ │ │ ├── ics1.me.paper.pdf │ │ │ │ ├── ics1.me.sol.pdf │ │ │ │ ├── ics2.fe.A.paper.pdf │ │ │ │ ├── ics2.fe.A.sol.pdf │ │ │ │ ├── ics2.fe.B.paper.pdf │ │ │ │ ├── ics2.fe.B.sol.pdf │ │ │ │ ├── ics2.me.paper.pdf │ │ │ │ └── ics2.me.sol.pdf │ │ │ ├── 2014 │ │ │ │ ├── ics1.fe.A.paper.pdf │ │ │ │ ├── ics1.fe.A.sol.pdf │ │ │ │ ├── ics1.fe.B.paper.pdf │ │ │ │ ├── ics1.fe.B.sol.pdf │ │ │ │ ├── ics1.me.paper.pdf │ │ │ │ ├── ics1.me.sol.pdf │ │ │ │ ├── ics2.fe.A.paper.pdf │ │ │ │ ├── ics2.fe.A.sol.pdf │ │ │ │ ├── ics2.fe.B.paper.pdf │ │ │ │ ├── ics2.fe.B.sol.pdf │ │ │ │ ├── ics2.me.paper.pdf │ │ │ │ └── ics2.me.sol.pdf │ │ │ ├── 2015 │ │ │ │ ├── ics1.fe.A.paper.pdf │ │ │ │ ├── ics1.fe.A.sol.pdf │ │ │ │ ├── ics1.fe.B.paper.pdf │ │ │ │ ├── ics1.fe.B.sol.pdf │ │ │ │ ├── ics1.me.paper.pdf │ │ │ │ └── ics1.me.sol.pdf │ │ │ ├── 2016 │ │ │ │ ├── ics1.fe.A.paper.pdf │ │ │ │ ├── ics1.fe.A.sol.pdf │ │ │ │ ├── ics1.fe.B.paper.pdf │ │ │ │ ├── ics1.fe.B.sol.pdf │ │ │ │ ├── ics1.me.paper.pdf │ │ │ │ ├── ics1.me.sol.pdf │ │ │ │ ├── ics2.fe.A.paper.pdf │ │ │ │ ├── ics2.fe.A.sol.pdf │ │ │ │ ├── ics2.fe.B.paper.pdf │ │ │ │ ├── ics2.fe.B.sol.pdf │ │ │ │ ├── ics2.me.paper.pdf │ │ │ │ └── ics2.me.sol.pdf │ │ │ ├── 2017 │ │ │ │ ├── ics1.fe.A.paper.pdf │ │ │ │ ├── ics1.fe.A.sol.pdf │ │ │ │ ├── ics1.fe.B.paper.pdf │ │ │ │ ├── ics1.fe.B.sol.pdf │ │ │ │ ├── ics1.me.paper.pdf │ │ │ │ ├── ics1.me.sol.pdf │ │ │ │ ├── ics2.fe.A.paper.pdf │ │ │ │ ├── ics2.fe.A.sol.pdf │ │ │ │ ├── ics2.fe.B.paper.pdf │ │ │ │ ├── ics2.fe.B.sol.pdf │ │ │ │ ├── ics2.me.paper.pdf │ │ │ │ └── ics2.me.sol.pdf │ │ │ ├── 2018 │ │ │ │ ├── ics1.fe.paper.pdf │ │ │ │ ├── ics1.fe.sol.pdf │ │ │ │ ├── ics1.me.paper.pdf │ │ │ │ ├── ics1.me.sol.pdf │ │ │ │ ├── ics2.fe.A.paper.pdf │ │ │ │ ├── ics2.fe.A.sol.pdf │ │ │ │ ├── ics2.fe.B.paper.pdf │ │ │ │ ├── ics2.fe.B.sol.pdf │ │ │ │ ├── ics2.me.paper.pdf │ │ │ │ └── ics2.me.sol.pdf │ │ │ └── 2019 │ │ │ │ ├── ics2.fe.A.paper.pdf │ │ │ │ ├── ics2.fe.A.sol.pdf │ │ │ │ ├── ics2.fe.B.paper.pdf │ │ │ │ ├── ics2.fe.B.sol.pdf │ │ │ │ ├── ics2.me.paper.pdf │ │ │ │ └── ics2.me.sol.pdf │ │ ├── hws │ │ │ ├── hw-1-1-sol.pdf │ │ │ ├── hw-1-1.pdf │ │ │ ├── hw-1-10-sol.pdf │ │ │ ├── hw-1-10.pdf │ │ │ ├── hw-1-11-sol.pdf │ │ │ ├── hw-1-11.pdf │ │ │ ├── hw-1-12-sol.pdf │ │ │ ├── hw-1-12.pdf │ │ │ ├── hw-1-13-sol.pdf │ │ │ ├── hw-1-13.pdf │ │ │ ├── hw-1-2-sol.pdf │ │ │ ├── hw-1-2.pdf │ │ │ ├── hw-1-3-sol.pdf │ │ │ ├── hw-1-3.pdf │ │ │ ├── hw-1-4-sol.pdf │ │ │ ├── hw-1-4.pdf │ │ │ ├── hw-1-5-sol.pdf │ │ │ ├── hw-1-5.pdf │ │ │ ├── hw-1-6-sol.pdf │ │ │ ├── hw-1-6.pdf │ │ │ ├── hw-1-7-sol.pdf │ │ │ ├── hw-1-7.pdf │ │ │ ├── hw-1-8-sol.pdf │ │ │ ├── hw-1-8.pdf │ │ │ ├── hw-1-9-sol.pdf │ │ │ ├── hw-1-9.pdf │ │ │ ├── hw-2-1-sol.pdf │ │ │ ├── hw-2-1.pdf │ │ │ ├── hw-2-10-sol.pdf │ │ │ ├── hw-2-10.pdf │ │ │ ├── hw-2-11-sol.pdf │ │ │ ├── hw-2-11.pdf │ │ │ ├── hw-2-12-sol.pdf │ │ │ ├── hw-2-12.pdf │ │ │ ├── hw-2-13-sol.pdf │ │ │ ├── hw-2-13.pdf │ │ │ ├── hw-2-14-sol.pdf │ │ │ ├── hw-2-14.pdf │ │ │ ├── hw-2-2-sol.pdf │ │ │ ├── hw-2-2.pdf │ │ │ ├── hw-2-3-sol.pdf │ │ │ ├── hw-2-3.pdf │ │ │ ├── hw-2-4-sol.pdf │ │ │ ├── hw-2-4.pdf │ │ │ ├── hw-2-5-sol.pdf │ │ │ ├── hw-2-5.pdf │ │ │ ├── hw-2-6-sol.pdf │ │ │ ├── hw-2-6.pdf │ │ │ ├── hw-2-7-sol.pdf │ │ │ ├── hw-2-7.pdf │ │ │ ├── hw-2-8-sol.pdf │ │ │ ├── hw-2-8.pdf │ │ │ ├── hw-2-9-sol.pdf │ │ │ └── hw-2-9.pdf │ │ ├── labs │ │ │ ├── lab1.pdf │ │ │ ├── lab10.pdf │ │ │ ├── lab2.pdf │ │ │ ├── lab3.pdf │ │ │ ├── lab4.pdf │ │ │ ├── lab5.pdf │ │ │ ├── lab6.pdf │ │ │ ├── lab7.pdf │ │ │ ├── lab8.pdf │ │ │ ├── lab9.pdf │ │ │ └── waside-blocking.pdf │ │ ├── misc │ │ │ ├── DSY112_Seats.pdf │ │ │ └── DSY212_Seats.pdf │ │ ├── slides │ │ │ ├── 1-1-intro.ppt │ │ │ ├── 1-10-func.ppt │ │ │ ├── 1-11-array.ppt │ │ │ ├── 1-12-struct.ppt │ │ │ ├── 1-13-pointer.ppt │ │ │ ├── 1-14-float.ppt │ │ │ ├── 1-15-fpinstr.ppt │ │ │ ├── 1-16-risc.ppt │ │ │ ├── 1-17-hcl.ppt │ │ │ ├── 1-18-seq.ppt │ │ │ ├── 1-19-seq2.ppt │ │ │ ├── 1-2-bits.ppt │ │ │ ├── 1-20-seq3.ppt │ │ │ ├── 1-21-pipe.ppt │ │ │ ├── 1-22-chazard.ppt │ │ │ ├── 1-23-exception.ppt │ │ │ ├── 1-24-mio.ppt │ │ │ ├── 1-25-tuning.ppt │ │ │ ├── 1-26-opt.ppt │ │ │ ├── 1-27-dma.ppt │ │ │ ├── 1-28-cache.ppt │ │ │ ├── 1-28-sma.ppt │ │ │ ├── 1-29-misc.ppt │ │ │ ├── 1-3-bops.ppt │ │ │ ├── 1-30-.ppt │ │ │ ├── 1-4-encoding.ppt │ │ │ ├── 1-5-arith.ppt │ │ │ ├── 1-6-x86.ppt │ │ │ ├── 1-7-mov.ppt │ │ │ ├── 1-8-cc.ppt │ │ │ ├── 1-9-jmp.ppt │ │ │ ├── 2-1-ram.ppt │ │ │ ├── 2-10-process.ppt │ │ │ ├── 2-11-wait.ppt │ │ │ ├── 2-12-signal.ppt │ │ │ ├── 2-13-ljmp.ppt │ │ │ ├── 2-14-io.ppt │ │ │ ├── 2-15-rio.ppt │ │ │ ├── 2-16-network.ppt │ │ │ ├── 2-17-socket.ppt │ │ │ ├── 2-18-web.ppt │ │ │ ├── 2-19-con.ppt │ │ │ ├── 2-2-locality.ppt │ │ │ ├── 2-20-sync.ppt │ │ │ ├── 2-21-issue.ppt │ │ │ ├── 2-22-vm.ppt │ │ │ ├── 2-23-trans.ppt │ │ │ ├── 2-24-intel.ppt │ │ │ ├── 2-25-linux.ppt │ │ │ ├── 2-26-replacement.ppt │ │ │ ├── 2-26-sched.ppt │ │ │ ├── 2-27-lock.ppt │ │ │ ├── 2-27-sched2.ppt │ │ │ ├── 2-28-sched.ppt │ │ │ ├── 2-28-sched3.ppt │ │ │ ├── 2-3-cache.ppt │ │ │ ├── 2-4-mics.ppt │ │ │ ├── 2-5-linking.ppt │ │ │ ├── 2-6-symbol.ppt │ │ │ ├── 2-7-relocation.ppt │ │ │ ├── 2-8-dl.ppt │ │ │ └── 2-9-os.ppt │ │ └── tutorials │ │ │ ├── debian.step-by-step.pptx │ │ │ ├── practice │ │ │ ├── ICS1-week15.Sol.pdf │ │ │ └── ICS1-week6.ppt │ │ │ ├── tutorial-asm.pptx │ │ │ ├── tutorial-debug.pptx │ │ │ ├── tutorial-linux.pptx │ │ │ ├── tutorial-tools.pptx │ │ │ ├── vmware.step-by-step.pptx │ │ │ └── y86asm-intro.pptx │ └── 重要图示.md └── 软件工程 │ ├── 1 软件过程.md │ ├── 2 软件建模.md │ ├── 3 需求工程.md │ ├── 4 面向对象分析.md │ ├── 5 设计工程.md │ ├── 6 面向对象设计.md │ ├── 7 软件测试.md │ ├── README.md │ ├── media │ ├── 15737127724750.jpg │ ├── 15737131758960.jpg │ ├── 15737137645499.jpg │ ├── 15737140919222.jpg │ ├── 15737149604549.jpg │ ├── 15737163108960.jpg │ ├── 15737166601416.jpg │ ├── 15739719340379.jpg │ ├── 15739722910659.jpg │ ├── 15739723737135.jpg │ ├── 15739723886827.jpg │ ├── 15739751724517.jpg │ ├── 15739753391441.jpg │ ├── 15739758110763.jpg │ ├── 15739766613376.jpg │ ├── 15739769148583.jpg │ ├── 15739781603468.jpg │ ├── 15739800423515.jpg │ ├── 15741466259039.jpg │ ├── 15741501346605.jpg │ ├── 15741518399178.jpg │ ├── 15741524121983.jpg │ ├── 15741526535251.jpg │ ├── 15741543024424.jpg │ ├── 15741593276071.jpg │ ├── 15741598155178.jpg │ ├── 15741602516040.jpg │ ├── 15741616424056.jpg │ ├── 15741622282692.jpg │ ├── 15741626230072.jpg │ ├── 15742402748683.jpg │ ├── 15742404489597.jpg │ ├── 15758691838763.jpg │ ├── 15758704451483.jpg │ ├── 15758731905772.jpg │ ├── 15758734520982.jpg │ ├── 15758735342783.jpg │ ├── 15758735622804.jpg │ ├── 15758739308694.jpg │ └── 15758739417203.jpg │ └── 本科课件.pdf ├── 政治 ├── README.md ├── 分析题终极.md ├── 肖四分析题整理.md ├── 金柳安分析题笔记.md └── 金柳安难点点播 │ ├── media │ ├── 15749284373809.jpg │ ├── 15749292522018.jpg │ ├── 15752682395741.jpg │ ├── 15752682469619.jpg │ ├── 15752686467905.jpg │ ├── 15752721961330.jpg │ └── 15752722563426.jpg │ ├── 使用价值与价值.md │ ├── 供给侧结构性改革.md │ ├── 具体劳动与抽象劳动.md │ ├── 商品价值量.md │ ├── 平均利润与生产价格.md │ ├── 时空观.md │ ├── 真理.md │ ├── 社会主义改造.md │ ├── 社会再生产.md │ ├── 货币的本质与职能.md │ ├── 资本有机构成.md │ └── 非传统安全问题.md ├── 数学一 ├── 1 函数、极限、连续.md ├── 10 微分方程.md ├── 11 行列式与矩阵.md ├── 12 向量组与线性方程组.md ├── 13 特征值与二次型.md ├── 2 一元函数微分学.md ├── 3 一元函数积分学.md ├── 4 一元微积分证明题.md ├── 5 向量代数与空间解析几何.md ├── 6 多元函数微分学.md ├── 7 重积分.md ├── 8 曲线积分与曲面积分.md ├── 9 无穷级数.md ├── README.md ├── media │ ├── 15656046567915.jpg │ ├── 15656047290836.jpg │ ├── 15656047801857.jpg │ ├── 15660333934114.jpg │ ├── 15660335200907.jpg │ ├── 15675624725699.jpg │ ├── 15675625228815.jpg │ ├── 15675627966016.jpg │ ├── 15675629264766.jpg │ ├── 15723307515712.jpg │ ├── 15725945919795.jpg │ ├── 15725949582678.jpg │ ├── 15725989122155.jpg │ ├── 15725996967626.jpg │ └── 屏幕快照 2019-08-12 18.15.25.png ├── 公式.pdf ├── 必须检查的题.md ├── 概率笔记.pdf └── 高数笔记.pdf └── 英语一 ├── README.md ├── essay ├── README.md ├── 大作文.md └── 小作文.md ├── wordlist ├── README.md ├── genpdf.py ├── genpdf1.py ├── wordlist-high-freq.pdf ├── wordlist-high-freq.tex ├── wordlist-low-freq.pdf ├── wordlist-low-freq.tex ├── wordlist.csv ├── wordlist1.csv ├── wordlist1.pdf └── wordlist1.tex ├── 杂志笔记.pdf └── 真题笔记.pdf /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | *.synctex.gz 3 | _minted-* -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 考研笔记 2 | 3 | 2020 年上海交大软件工程专硕的考研笔记。 4 | 5 | 数学和专业课笔记内含 LaTeX 公式,建议 iOS 上使用 MWeb 查看、电脑上使用 VS Code 预览。 6 | 7 | ## 目录 8 | 9 | - [政治](政治) 10 | - [英语一](英语一) 11 | - [数学一](数学一) 12 | - [专业课](专业课)(825 软件学科基础) 13 | - [软件工程](专业课/软件工程) 14 | - [计算机系统基础](专业课/计算机系统基础) 15 | - [数据结构与算法](专业课/数据结构与算法) 16 | 17 | ## 初试经验分享 18 | 19 | 先说一下初试分数:政治 75,英语 80,数学 121,专业课 139,总分 415。 20 | 21 | 再说一下我的个人情况:我从初中开始自学编程,在大学主要也是自学,没怎么听过课,学校是普通双非本科,教学质量一般,从小英语学得不错,大一上下学期分别裸考通过四六级(四级 624,六级 546),从高中开始一直到大学数学都没认真学,比较菜。 22 | 23 | 如果你和我的情况差不多的话,下面的经验也许可以帮到你;但如果你和我的情况很不一样,这些经验不一定有用,甚至可能误导你,请自行斟酌。 24 | 25 | ### 总体 26 | 27 | 我从 2 月底开始复习,直到考试差不多整整 300 天。前几个月因为要上课,耽误了一些进度,6 月开始比较疯狂,到后期有些疲惫(无论是生理上还是心理上),但最终坚持了下来。 28 | 29 | 总体上来说,有以下这些经验: 30 | 31 | 1. 搞清楚为了什么考研,然后下定决心,不要半途放弃 32 | 2. 放下其它的一切事情,即使它们很重要 33 | 3. 可以不用很早决定目标学校,但要想好几个备选 34 | 4. 从一开始就给自己定下各科的目标分和保底分,并随着复习不断更新 35 | 5. 每一轮复习结束后,想办法评估自己此时的水平 36 | 6. 饱和式复习,把每一科都复习到极致,即使某些可能已经达到目标了 37 | 7. 除非特殊情况,否则每天去图书馆学习 38 | 8. 制定详尽的复习计划,以周或若干天为单位,让每一天都有事做 39 | 9. 根据自己的熟练程度、进度的紧迫程度,及时调整学习方式和计划 40 | 10. 保持谦虚和低调,即使觉得已经稳了 41 | 42 | 可以总结为:努力、专注、坚持、计划、低调。 43 | 44 | 其实最重要的就是要明确自己在干什么,自己到底是什么水平,对自己要有清晰的认识。我复习时候给自己定的目标分是政治 70、英语 79、数学 120、专业课 120、总分 389;考完之后估分是政治 70、英语 80、数学 100、专业课 133、总分 383;真实分数是政治 75、英语 80、数学 121、专业课 139、总分 415。可以看出,我在考前对自己的判断和最终考试结果还是比较接近的(事实上考前的定目标和估分时,我**故意**低估了自己)。而饱和复习的结果就是,即使真的有一门课发挥失常(比如我考试时以为数学炸了),最终分数也令人满意。 45 | 46 | ### 数学 47 | 48 | 数学可以在知乎上找一找复习经验,基本上总结得很好了。这里想强调的就是,数学真的是所有科目中最重要的一门,也是最飘忽不定的一门。要想考好,首先一定要打好基础,如果时间充裕的话高数最好刷一遍同济版教材,而不是直接去看考研辅导;然后就是一定要疯狂刷题,并且做好错题归纳和总结,我几轮复习下来一共刷了 3000 多道练习题(有一半是高数书上习题,属于小题),并且做了从 1987 年开始的所有历年真题,就这样我在最后都感觉不是很稳,应该是因为错题总结做得不够好,个人建议可以只刷 15 年真题,并且做好整理和总结。 49 | 50 | 除此之外,考试时得状态也非常重要。我做真题的时候几乎每一份都是限时做完(基本在 2 个半小时完成),但真的考试的时候,一旦有某题卡住了,整个对时间的概念都会有影响,紧张感会导致根本想不出解法,即使题目并不算难。所以,考试时一定要冷静。 51 | 52 | 最后,如果考试的时候真的无法冷静,做来做去发现大题没有几个完整会做的时候,一定要根据剩余时间情况,选择「性价比」最高的题,深呼吸,开始头脑风暴,把任何能推出的可能有关的式子都写上去。比如我吧,我的大题除了高数前两题和概率第一题之外,没有一题是完整答完并且检查没问题的,但是最后我把能写的式子都写上去了,尽量把试卷填满,我以为只能考 100 多,没想到考了 121。 53 | 54 | ### 专业课 55 | 56 | 825 软件学课基础总体来说考得比较简单,下面分科目讲一下。 57 | 58 | #### 软件工程 59 | 60 | 软件工程考的比较简单,以书本上的内容为主。个人认为重点有这些: 61 | 62 | - 软件过程:常见的软件过程的特点,其中敏捷软件过程比较重要 63 | - 需求工程:FURPS+ 模型似乎考过好几次 64 | - 设计工程:设计模式非常重要,考过好几次,需要能够说出特点并举例,今年考了架构风格,建议也要熟悉常见的架构风格 65 | - 结构化方法:实体关系图和数据流图最好跟着书上画一画,虽然似乎只考过一次,但还是可能考的 66 | - 面向对象方法:重中之重,最主要是用例图、类图,几乎必考,应该信手拈来;用例、类之间的关系(泛化、关联等)的识别也会考;类和包设计原则最好也看一看,可能会给出例子让比较或优化 67 | - 软件测试:几种测试的概念,常见的白盒和黑盒测试;控制流测试和基本路径测试是最重要的,应该要会编写实现各种覆盖的测试用例 68 | - 其它:除了上面给出的重点,其它部分可能主要考简单的名词解释,认真看一遍书应该问题不大 69 | 70 | 复习时建议结合平常写项目和使用软件时的体验来记忆,可能效果会好一些,比如设计模式和架构风格那块,我在复习的时候感觉给自己项目中的很多做法找到了理论支撑。 71 | 72 | 另外,书后的习题感觉没必要做,重点部分跟着书上给的例子做一遍(比如用例图、类图那块),之后再拿真题练习就 OK 了。 73 | 74 | #### 计算机系统基础 75 | 76 | ICS 也是主要考书上内容,题目基本和书上习题差不多,建议至少刷两遍,其中第 2 章(信息的处理和表示)的书后题比较多,感觉没必要全刷,把内容中穿插的题刷掉就差不多了,第 8、9、10 章有的题是编程题,建议在电脑上动手写一写。 77 | 78 | 本科 ICS 课的作业和试卷也比较有用,不过比考研题目难一些,建议最后刷一遍就好。 79 | 80 | #### 数据结构与算法 81 | 82 | 去年这门课的参考书是邓俊辉老师的《数据结构》,是本很不错的书,我先用这本书复习了一遍,后来今年参考书改成了《C++程序设计:基础、编程抽象与算法策略》,其实总体上区别不大,都是用 C++ 实现常见的数据结构和算法。 83 | 84 | 数据结构基本不太可能直接考书上的内容(但书上内容还是很重要),一般就是考几个算法题,一部分可能只需要写算法描述,一部分可能需要写出完整代码,然后让分析复杂度,题目还会分成多问,第一问让写基本方法,第二问让提出优化之类的。总体难度不大,相当于把书上的算法做一点调整的程度,比如今年的 Top K 问题就是快排做一点修改。我刷了 LeetCode 热门 100 题里的简单题和一部分中等题,然后看了《王道数据结构》和《算法与数据结构考研试题精析》里几个重点章节(栈、二叉树、堆、排序)的部分算法题的思路(它们的选择题没什么用),感觉很有用。 85 | 86 | 个人认为算法题需要重点关注栈的应用(求排列、组合、栈混洗等)、递归(包含/排除模式、二叉树的各种递归操作)、二叉树的遍历(各种遍历的递归和迭代方法)、堆(建堆和增删)、排序(各种排序的性质和实现,以及稍加修改的变体)。 87 | 88 | 值得注意的是,虽然近年算法题比较简单,但在 2016 年曾出现过动态规划的应用题(完全背包),相对来说稍难一些,建议也最好熟悉一下,可以参考《背包问题九讲》。 89 | 90 | ### 英语 91 | 92 | 英语我能给的经验有限,如果你的英语水平大于等于我,那就随便复习就可以了,可能主要需要注意的就是下面这些: 93 | 94 | 1. 真题很重要,要认真做,关注其中不认识的单词和短语表达(有些往往会重复考) 95 | 2. 留几份真题在最后隔几天做一份来保持状态 96 | 3. 背单词对阅读中的某些题会有用,还是比较值得的 97 | 4. 作文还是要好好练一练的,毕竟平常主要还是听和看比较多,写起来会有点不同 98 | 5. 那些什么某某模拟题、阅读理解XX篇、阅读理解技巧啥的,没什么用,别浪费时间了 99 | 100 | 我个人理解英语复习是有极限的,即使整篇文章能完全看懂,有些题还是会错的。总的来说历年真题的平均分会跟最后考试得分差不了多少,我是从 2005 年的开始做的,客观题平均扣 8.2,再减去作文和翻译的扣分,差不多就 80 左右。 101 | 102 | 如果你一直觉得英语很烦,成绩本来就不太好,那还是老老实实跟个老师的课学吧,多看看长难句。 103 | 104 | 还有一个有趣的事情是,我在复习的时候全程都是用 iPad 做英语真题的,到真的考试时候,试卷是一个小册子,让我一下有点懵,读起来的感觉是不一样的。所以建议在最后阶段还是把剩下来的真题打印下来做,会更有实感一些。 105 | 106 | ### 政治 107 | 108 | 政治分为选择题和分析题,其中选择题是重点,因为是客观打分的,而主观的分析题很难拉开大差距,尤其是在北京、上海之类会压分的地区。 109 | 110 | 选择题我主要是刷了一遍徐涛强化班视频,全程几乎没有记笔记(记了一点点也没看),配合刷肖 1000(毛中特部分没刷完),然后去做徐涛优题库真题版,先按章节做了一遍,最后考前按年份做了一遍,同时刷了肖 8、肖 4 的所有选择题,全都控制在 25 到 30 分钟完成(因为我写字慢,要给分析题留很多时间),还刷了几份徐涛和腿姐的模拟卷的选择题。另外 12 月还粗略刷了一遍风中劲草,只看了重点部分(大约花了十几天,平均一天半小时左右)。还看了金柳安的重难点精讲,但是感觉没什么用。最后考试时候觉得单选有点难,但对答案发现选择题总共只扣了 6 分左右(单选多选各错两个,可能有记错的会有一点点误差)。 111 | 112 | 分析题方面,非常不建议无脑背肖 4,因为就算背完了 4 套,最后能直接默写作为答案的最多 3、4 个小问(今年只有 3 小问是能直接写的),而这种背诵会浪费复习后期大量的时间。我分析题主要跟了金柳安(不是很出名),重点就是他的「分析题答题思路」和「终极点题」两个课(前面说了,「重难点精讲」没什么用),再结合历年真题和肖 4 第一套,自己写个几题(我写了一共 10 题左右吧,相当于两套卷子),就能总结出适合自己的答题框架。当然最后也不是完全不背,只需要考前几天背一下马原会用到的原理、毛中特和史纲的几个可能考的点(金柳安的终极点题会给出 PDF),主要还是马原,毛中特、史纲、思修、当代基本都是完全类似的套话,然后考试的时候根据材料提炼几句,按照答题思路写得很顺畅。 113 | 114 | 我 10 月初国庆之后才开始准备政治,总结来说,打基础比较有用的是徐涛强化班、肖 1000,选择题比较有用的是优题库真题版、肖 8、肖 4、风中劲草彩色打印部分,分析题比较有用的是金柳安的答题思路和终极点题。 115 | 116 | 最后,我觉得挺关键的一个点是,不要把政治仅仅当成是一个需要应付的考试。政治课的内容,尤其是毛中特,都是我们所处的国家真真实实的政治制度,即使不考试也是值得我们去了解的,很多人天天说国家这里不好那里不对,可是他们(包括曾经的我)根本就没有去仔细了解我们的国家是怎么运行的,根本没有参与政治的意识。当你渐渐体会到共产党的执政风格、它所在乎的重点的时候,很多题通过推理就可以选对,根本不用死记硬背。 117 | -------------------------------------------------------------------------------- /专业课/825 真题 2020.txt: -------------------------------------------------------------------------------- 1 | 简答10题50分一题5分 2 | 敏捷软件过程是什么?列出两个常用的敏捷软件过程 3 | 非功能性需求FURPS选两个解释并举例 4 | 分层、管道与过滤器、微服务架构,选一个解释 5 | 根据描述写出类的关系(泛化、关联、依赖) 6 | 编写用户登录页面的事件流覆盖黑盒测试用例 7 | 名词解释:回归测试、逆向工程 8 | CSAPP 有几个类似于名词解释的简单题 9 | Linux 中的 I/O 重定向可能如何实现 10 | 11 | 用例图:运动场地预约系统 12 | 1. 教师和学生可以查询运动场地信息,以及查看已经预约的场地情况 13 | 2. 教师和学生可以预约和取消预约运动场地 14 | 3. 预约时间快到的前一天通过邮件通知预约人 15 | 16 | 类图:进博会,很多国家,每个国家多个企业,国家中,主宾国有一个展馆,其余国家有一个展台,很多企业在进博会中签订了进口合同,每份合同可能涉及多种商品,要求画出类图(不考虑方法和属性)并标出所有关联关系的多重度 17 | 18 | 虚拟内存映射相关,解释为什么两个进程访问同一个地址会得到不同内容,虚拟内存有什么好处,为什么嵌入式设备通常不用虚拟内存,TLB工作原理,…… 19 | 20 | 解释两段代码的性能(缓存命中率)为什么不同(访问步长不同),增加行大小为什么没用,如何修改缓存模拟器(不改变缓存大小的情况下)提高性能 21 | 22 | 给两段 C 程序解释为什么发生了死循环 23 | A. unsigned 24 | B. float 25 | 26 | 顶点和边的关联矩阵,给了无向图的关联矩阵定义 27 | 1. 无向图的关联矩阵与邻接矩阵的关系 28 | 2. 如何定义有向图的关联矩阵 29 | 3. 有向图的关联矩阵与邻接矩阵的关系 30 | 31 | 如何通过递归算法判断一个二叉树中每个节点的值都不小于其真祖先值的和 32 | 1. 给出文字描述 33 | 2. 分析空间复杂度 34 | 35 | Top K 问题 36 | 1. 最基本的算法是使用快速排序先排序,然后取得前k个,使用 C/C++/Java 写出代码 37 | 2. 如果优化1中的算法,给出文字描述,是否存在最坏时间复杂度为 O(n) 的算法? 38 | -------------------------------------------------------------------------------- /专业课/825 真题.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/825 真题.pdf -------------------------------------------------------------------------------- /专业课/825 真题手写答案.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/825 真题手写答案.pdf -------------------------------------------------------------------------------- /专业课/README.md: -------------------------------------------------------------------------------- 1 | # 专业课 2 | 3 | ## 目录 4 | 5 | - [软件工程](软件工程) 6 | - [计算机系统基础](计算机系统基础) 7 | - [数据结构与算法](数据结构与算法) 8 | - [825 真题](825%20真题.pdf) 9 | - [825 真题手写答案](825%20真题手写答案.pdf) 10 | - [825 真题 2020](825%20真题%202020.txt) 11 | -------------------------------------------------------------------------------- /专业课/数据结构与算法/1 绪论.md: -------------------------------------------------------------------------------- 1 | # 绪论 2 | 3 | ## 数据结构基本要素 4 | 5 | - 逻辑结构 6 | - 线性结构:线性表、栈、队列 7 | - 非线性结构:树(半线性结构)、图、集合 8 | - 存储结构(物理结构) 9 | - 数据的运算 10 | 11 | ## 算法基本要素 12 | 13 | - 输入、输出 14 | - 确定性 15 | - 可行性 16 | - 有穷性 17 | - 正确性 18 | 19 | ## 复杂度分析 20 | 21 | - 时间复杂度 22 | - 空间复杂度 23 | 24 | ### 度量方法 25 | 26 | 定义 $T(n)$ 为给定规模 $n$ 下算法所执行的基本操作总次数。 27 | 28 | 渐进复杂度: 29 | 30 | - 大 $O$ 记号:若存在正常数 $c$ 和 函数 $f(n)$,使得对任何 $n >> 2$ 都有 $T(n) \le c \cdot f(n)$,则 $f(n)$ 给出了 $T(n)$ 的渐进上界(最坏情况),记为 $T(n) = O(f(n))$ 31 | - 大 $\Omega$ 记号:若存在正常数 $c$ 和 函数 $g(n)$,使得对任何 $n >> 2$ 都有 $T(n) \ge c \cdot g(n)$,则 $g(n)$ 给出了 $T(n)$ 的渐进下界(最好情况),记为 $T(n) = \Omega(g(n))$ 32 | - 大 $\Theta$ 记号:若存在正常数 $c1 < c2$ 和函数 $h(n)$,使得对任何 $n >> 2$ 都有 $c1 \cdot h(n) \le T(n) \le c2 \cdot h(n)$,则 $h(n)$ 给出了 $T(n)$ 的确界,记为 $T(n) = \Theta(h(n))$ 33 | 34 | **在没有明确说明是最好还是最坏情况时,默认讨论最坏时间复杂度,也就是讨论渐进上界。** 35 | 36 | ### 常见渐进复杂度 37 | 38 | $O(1) < O(\log{n}) < O(n) < O(n\log{n}) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)$ 39 | 40 | ### 空间复杂度 41 | 42 | 空间复杂度不包括存储输入数据所需的空间。*原地工作*指算法所需辅助空间为常量,即 $O(1)$。 43 | -------------------------------------------------------------------------------- /专业课/数据结构与算法/2.1 线性表.md: -------------------------------------------------------------------------------- 1 | # 线性表 2 | 3 | ## 动态数组/向量 4 | 5 | ### 特点 6 | 7 | - 存储结构连续 8 | - 循秩访问(随机访问) 9 | 10 | ### 基本操作 11 | 12 | | 操作 | 描述 | 复杂度 | 13 | | --- | --- | --- | 14 | | `get(i)` | 随机访问第 i 个元素 | $O(1)$ | 15 | | `put(i, e)` | 修改第 i 个元素值 | $O(1)$ | 16 | | `insert(i, e)` | 插入元素到第 i 个位置,原后继元素依次后移 | $O(n)$ | 17 | | `remove(i)` | 删除第 i 个元素,原后继元素依次前移 | $O(n)$ | 18 | | `sort()` | 排序,使元素非降序排列 | 依排序算法而不同 | 19 | | `find(e)` | 顺序查找元素 e | $O(n)$ | 20 | | `search(e)`(有序) | 二分查找元素 e | $O(\log{n})$ | 21 | | `deduplicate()` | 唯一化(去重),从首到末,不断在前缀中查找与当前元素相同者并删除 | $O(n^2)$ | 22 | | `uniquify()`(有序) | 唯一化(去重),两个索引变量不同步向后移动赋值 | $O(n)$ | 23 | | `traverse()` | 遍历向量所有元素 | $O(n)$ | 24 | 25 | ### 扩容和缩容 26 | 27 | 需要重新分配存储空间。 28 | 29 | #### 扩容 30 | 31 | 策略: 32 | 33 | - 以 2 为比例指数增长 34 | - 分摊复杂度 $O(1)$ 35 | - 以常数为增量线性增长 36 | - 分摊复杂度 $O(n)$ 37 | 38 | #### 缩容 39 | 40 | 除非对空间利用率要求极高,否则没必要。装填因子下限应当较低,否则可能出现频繁交替扩容和缩容的抖动情况。 41 | 42 | ### 置乱 43 | 44 | ```cpp 45 | for (int i = V.size(); i > 0; i--) { // 从后往前 46 | swap(V[i-1], V[rand() % i]; // 将 V[i-1] 与 V[0, i) 中某一元素交换 47 | } 48 | ``` 49 | 50 | ### 唯一化(无序) 51 | 52 | ```cpp 53 | Rank i = 1; 54 | while (i < _size) { 55 | (find(_elem[i], 0, i) < 0) ? i++ : remove(i); // 从前缀 _elem[0, i) 中寻找相同者并删除 56 | } 57 | ``` 58 | 59 | ### 唯一化(有序) 60 | 61 | ```cpp 62 | for (Rank i = 0, j = 1; j < _size; j++) { 63 | if (_elem[i] != _elem[j]) { 64 | _elem[++i] = _elem[j]; 65 | } 66 | } 67 | _size = ++i; 68 | ``` 69 | 70 | ### 二分查找 71 | 72 | #### 二分查找(版本 A) 73 | 74 | ```cpp 75 | // 版本 A 76 | while (lo < hi) { 77 | Rank mi = (lo + hi) / 2; 78 | if (e < A[mi]) hi = mi; // 向左 [lo, mi) 79 | else if (A[mi] < e) lo = mi + 1; // 向右 [mi+1, hi) 80 | else return mi; // 命中 81 | } 82 | return -1; 83 | ``` 84 | 85 | 平均查找长度:$O(1.5 \log_2{n})$。 86 | 87 | **查找长度**:算法中所执行的元素比较操作次数。(见邓《数据结构》P50 详细说明) 88 | 89 | 二分查找版本 A 的问题在于,向左深入需要比较一次,向右深入需要比较两次,左右不均衡。改进思路: 90 | 91 | - 调整左右区域的宽度,使总体均衡——Fibonacci 查找 92 | - 修改算法细节使深入左右两区域所需的比较次数相同(都等于 1)——二分查找(版本 B、C) 93 | 94 | #### Fibonacci 查找 95 | 96 | ```cpp 97 | Fib fib(hi - lo); // 生成从 1 到 hi-lo 的 Fibonacci 数列 98 | while (lo < hi) { 99 | while (fib.get() > hi - lo) fib.prev(); // 从后往前找到第一个小于 hi-lo 的 Fibonacci 数 100 | Rank mi = lo + fib.get() - 1; 101 | if (e < A[mi]) hi = mi; // 向左 102 | else if (A[mi] < e) lo = mi + 1; // 向右 103 | else return mi; // 命中 104 | } 105 | return -1; 106 | ``` 107 | 108 | 平均查找长度:$O(1.44 \log_2{n})$。 109 | 110 | #### 二分查找(版本 B) 111 | 112 | ```cpp 113 | while (1 < hi - lo) { // 当 [lo, hi) 中只剩一个元素时停止 114 | Rank mi = (lo + hi) / 2; 115 | (e < A[mi]) ? hi = mi : lo = mi; // 向左 [lo, mi) 或向右 [mi, hi)(注意即使 e == A[mi] 也不会停止) 116 | } 117 | return (e == A[lo]) ? lo : -1; // 比较区间中剩的元素是否是要查找的元素 118 | ``` 119 | 120 | 由于成功查找后不会停止,故最好情况下效率有所下降,最坏情况效率有所提高。 121 | 122 | 存在的问题:当向量中有重复元素时,只能“随机”返回其中某个位置,有时会希望能够确定返回重复元素中下标最大的。 123 | 124 | #### 二分查找(版本 C) 125 | 126 | ```cpp 127 | while (lo < hi) 128 | Rank mi = (lo + hi) / 2; 129 | (e < A[mi]) ? hi = mi : lo = mi + 1; // 向左 [lo, mi) 或向右 [mi+1, hi) 130 | } 131 | return lo - 1; // 循环结束时,lo 为大于 e 的元素的最小下标,故 lo-1 为不大于 e 的最大下标 132 | ``` 133 | 134 | ### 排序 135 | 136 | 基于比较的排序算法时间复杂度下界:$\Omega(n \log{n})$。 137 | 138 | 具体排序算法见“排序”单独章节。 139 | 140 | ## 链表 141 | 142 | ### 特点 143 | 144 | - 存储结构不连续 145 | - 循位置访问(不可随机访问) 146 | 147 | ### 基本操作 148 | 149 | | 操作 | 描述 | 复杂度 | 150 | | --- | --- | --- | 151 | | `get(i)`
`put(i, e)` | 通过秩访问节点 | $O(n)$ | 152 | | `first()`
`last()` | 获取首、末节点位置(指针) | $O(1)$ | 153 | | `insertAsFirst(e)`
`insertAsLast(e)` |将 e 作为首、末节点插入 | $O(1)$ | 154 | | `insertAfter(p, e)`
`insertBefore` | 将 e 作为节点 p 的直接后继、前驱插入 | $O(1)$ | 155 | | `remove(p)` | 删除节点 p | $O(1)$ | 156 | | `sort()` | 排序,使元素非降序排列 | 依排序算法而不同 | 157 | | `find(e)` | 顺序查找元素 e,失败时返回 `NULL` | $O(n)$ | 158 | | `search(e)`(有序) | 顺序查找元素 e,返回不大于 e 且秩最大的节点 | $O(n)$ | 159 | | `deduplicate()` | 唯一化(去重),从首到末,不断在前缀中查找与当前元素相同者并删除 | $O(n^2)$ | 160 | | `uniquify()`(有序) | 唯一化(去重),反复考察相邻节点对,删除重复者 | $O(n)$ | 161 | | `traverse()` | 遍历向量所有元素 | $O(n)$ | 162 | 163 | ### 排序 164 | 165 | 具体排序算法见“排序”单独章节。 166 | 167 | 需要注意的是,使用归并排序时,尽管每次划分待排序列表需要 $O(n)$ 的时间,但并不影响最终总的时间复杂度,仍然是 $O(n \log{n})$。 168 | -------------------------------------------------------------------------------- /专业课/数据结构与算法/2.10 扩展.md: -------------------------------------------------------------------------------- 1 | # 扩展 2 | 3 | ## 图 4 | 5 | ### 双连通域分解 6 | 7 | ## 查找 8 | 9 | ### 红黑树 10 | 11 | ### k-d 树 12 | 13 | ### B+ 树 14 | 15 | ![](media/15691500419381.png) 16 | 17 | 常用于数据库和文件系统。 18 | 19 | ### 跳跃列表 20 | 21 | ## 堆 22 | 23 | ### 左偏树 24 | 25 | ## 字符串匹配 26 | 27 | ### BM 算法 28 | 29 | ### Karp-Rabin 算法 30 | 31 | ## 排序 32 | 33 | ### k 选取 34 | 35 | ### 希尔排序 36 | 37 | 又称递减增量排序,每次对间隔为 k 的一组元素排序,即将序列交替分为 k 组分别排序,然后递减 k(有多种增量序列),重复操作,直到 k 为 1 时,相当于对整个数组直接排序。 38 | 39 | 由于经过多轮迭代后,整个数组大致有序,故最终使用插入排序将会接近线性时间。使用优化的增量序列可使希尔排序整体的复杂度降低至 $O(n \log^2 n)$、$O(n^{7/6})$ 级别。 40 | 41 | 由于相同元素可能被分到不同的组,故希尔排序是不稳定的。 42 | 43 | ### 锦标赛排序/胜者树 44 | 45 | ![](media/15693050041271.jpg) 46 | 47 | 最下面两行节点是 8 个归并段,对它们的开头元素两两比较,**取胜者作为父节点**,直到根节点“Bo”,因此输出“Bo”,同时从第 4 个归并段移除“Bo”,取下一个元素“Kai”,**不断与其兄弟节点比较,更新父节点为新的胜者**,直到根节点,如此反复。 48 | 49 | 若某个归并段已空,则将其标记为“\*”,“\*”与任何关键码比较都是败者。 50 | 51 | ### 败者树 52 | 53 | ![](media/15693054373118.jpg) 54 | 55 | 最下面两行节点是 8 个归并段,对它们的开头元素两两比较,**取败者作为父节点,胜者继续和兄弟分支的胜者比较**,继续取败者作为更高一层的父节点,直到根节点时,败者为“Diao”,胜者为“Bo”,因此输出“Bo”,同时从第 4 个归并段移除“Bo”,取下一个元素“Kai”,**不断与父节点比较(注意这里不需要和兄弟节点比较),若胜出则继续向上比较,若败北则停下取代当前父节点,胜者继续向上比较**,直到根节点,如此反复。 56 | 57 | 若某个归并段已空,则将其标记为“\*”,“\*”与任何关键码比较都是败者。 58 | 59 | 败者树相比胜者树来说,更充分地利用了先前的比较结果,每次输出后,不需要从底向上更新整条路径上的节点,而是仅在父节点(先前的败者)胜出时,才需要更新该节点,因此减少了交换操作。从树的结构来看,可以发现上述优势的根源在于胜者树将败者丢在了较低层,较高层却充斥着重复的胜者,当胜者输出后这些节点将没有价值,而反观败者树,内部节点是没有重复元素的,高层保存着先前的败者,因此每次读入新关键码之后可以不断向上比较,且只在必要的时候才需要更新沿途节点。(2019 年清华 912 真题) 60 | 61 | ### 外部排序 62 | 63 | #### 多路归并排序 64 | 65 | 对于外部归并排序而言,增加归并路数 m(一次归并的归并段数量)可减少归并趟数,从而减少 I/O 次数。然而同时,增加归并路数也增加了每次选择最小关键码所需时间($O(m)$),因此增大到一定程度可能适得其反。为了进一步提高归并路数,可利用胜者树或败者树等结构将选择最小关键码的时间缩短到 $O(\log m)$。 66 | 67 | #### 置换-选择排序 68 | 69 | 用于外部排序中生成初始归并段。 70 | 71 | 步骤: 72 | 73 | 1. 读入 w 个记录到 WA(工作区) 74 | 2. 从 WA 中选出最小者,记为 MIN 75 | 3. 输出 MIN 76 | 4. 若为读入完,则再读入下一个记录到 WA 77 | 5. 从 WA 中选出大于 MIN 的最小者,作为新的 MIN 78 | 6. 重复 3~5,直到 WA 中没有比 MIN 大的记录为止,输出一个归并段结束标志 79 | 7. 重复 2~6,直到 WA 为空 80 | 81 | ![](media/15693081023758.jpg) 82 | 83 | #### 最佳归并树 84 | 85 | 一个普通的归并树: 86 | 87 | ![](media/15693110603949.jpg) 88 | 89 | 其中,各叶节点表示参加归并的初始归并段,叶节点上的权值表示该归并段上的记录数,各非叶节点表示归并成的新归并段。归并树的带权路径长度 WPL 为归并过程中总的读记录次数。上图中 WPL 为 9+30+12+18+3+17+2+6+24+51+38+32=242,从而总的 I/O 次数为 2\*WPL=484。 90 | 91 | 要减小 WPL,需要优化归并方案,可以采用 Huffman 编码树的构造策略,不断选取最短的 m 个归并段进行归并,如下: 92 | 93 | ![](media/15693113568077.jpg) 94 | 95 | 如果初始归并段数量不能恰好构成严格的 m 叉树,需要添加长度为 0 的“虚段”。 96 | -------------------------------------------------------------------------------- /专业课/数据结构与算法/2.2 栈与队列.md: -------------------------------------------------------------------------------- 1 | # 栈与队列 2 | 3 | ## 栈 4 | 5 | ### 特点 6 | 7 | - 后进先出(FIFO) 8 | 9 | ### 应用 10 | 11 | #### 进制转换(逆序输出) 12 | 13 | ```cpp 14 | while (n > 0) { 15 | int r = n % base; 16 | S.push(r); 17 | n /= base; 18 | } 19 | ``` 20 | 21 | 运行完成后,栈 S 里依次 pop 出来即是转换后的各位数字。 22 | 23 | #### 栈混洗 24 | 25 | 三个栈 A、B、S,其中 B、S 初始为空,A 中有 n 个元素,**自顶向下**构成输入序列 `A = `,称该序列为原输入序列的一个栈混洗(stack permutation)。 28 | 29 | > 王道没有明确提到栈混洗,但它所讨论的“给出输入序列,判断输出序列是否合法”其实就是同一个问题,这里 A 的出栈序列是 S 的输入序列,B 的入栈序列是 S 的输出序列。实际上讨论这个问题时,核心问题在于栈 S,A 和 B 是不是栈甚至存不存在,都和结论没关系。 30 | 31 | 由 n 次 push 和 n 次 pop 操作构成的任何操作序列,只要满足“任一前缀中的 push 不少于 pop”,就必然对应于某个栈混洗。 32 | 33 | 给定输入序列,求所有可能的栈混洗: 34 | 35 | ```cpp 36 | #include 37 | #include 38 | 39 | using namespace std; 40 | 41 | void fun(vector &input, int pos, vector &s, vector &output) { 42 | if (output.size() == input.size()) { 43 | // 输出序列已满,全部输出 44 | cout << "PRINT:"; 45 | for (int a : output) { 46 | cout << " " << a; 47 | } 48 | cout << endl; 49 | return; 50 | } 51 | 52 | if (pos < input.size()) { 53 | // 如果输入序列还有元素 54 | s.push_back(input[pos]); // 就 PUSH 到 S 55 | fun(input, pos + 1, s, output); // 递归处理下一个位置 56 | s.pop_back(); // 把刚刚 PUSH 的元素 POP 出来,恢复当前递归层的原始状态 57 | } 58 | if (s.size() > 0) { 59 | // 如果 S 不为空 60 | int val = s.back(); 61 | s.pop_back(); // 就 POP 62 | output.push_back(val); // 并添加到输出序列 63 | fun(input, pos, s, output); // 递归,注意这里不需要 pos + 1,因为并没有消耗输入序列的元素 64 | output.pop_back(); // 恢复原始状态 65 | s.push_back(val); 66 | } 67 | } 68 | 69 | void fire(vector input) { 70 | vector s, output; 71 | fun(input, 0, s, output); 72 | } 73 | 74 | int main() { 75 | fire({1, 2, 3, 4}); 76 | return 0; 77 | } 78 | ``` 79 | 80 | #### 括号匹配 81 | 82 | #### 逆波兰表达式(RPN,后缀表达式) 83 | 84 | 对中缀表达式求值时,顺序扫描表达式字符串,但计算不能和扫描同步,有时需等待必要的数据已被读取后才能计算,栈结构在此过程中可扮演数据缓冲区的角色。 85 | 86 | 逆波兰表达式特点: 87 | 88 | - 不够直观易读 89 | - 对运算符优先级的表述能力和中缀表达式相当 90 | - 求值算法简单,计算效率高 91 | - 运算符执行次序和其在表达式中出现的次序相同,无需括号强制改变优先级 92 | 93 | 中缀表达式求值并转 RPN 的算法: 94 | 95 | ```cpp 96 | float evaluate(char *S, char *&RPN) { // 对(已剔除空白字符的)表达式 S 求值,并转换为逆波兰式 RPN 97 | Stack opnd; Stack optr; // 运算数栈、运算符栈 98 | optr.push('\0'); // 尾哨兵 '\0' 也作为头哨兵首先入栈 99 | while (!optr.empty()) { // 在运算符栈非空之前,逐个处理表达式中各字符 100 | if (isdigit(*S)) { // 若当前字符为操作数,则 101 | readNumber(S, opnd); 102 | append(RPN, opnd.top()); // 读入操作数,并将其接至 RPN 末尾 103 | } else { // 若当前字符为运算符,则 104 | switch(orderBetween(optr.top(), *S)) { // 视其与栈顶运算符之间优先级高低分别处理 105 | case '<': // 栈顶运算符优先级更低时 106 | optr.push(*S); S++; // 计算推迟,当前运算符进栈 107 | break; 108 | case '=': // 优先级相等(当前运算符为右括号或者尾部哨兵 ’\0‘)时 109 | optr.pop(); S++; // 脱括号并接收下一个字符 110 | break; 111 | case '>': { // 栈顶运算符优先级更高时,可实施相应的计算,并将结果重新入栈 112 | char op = optr.pop(); 113 | append(RPN, op); // 栈顶运算符出栈并续接至 RPN 末尾 114 | if ('!' == op) { // 若属于一元运算符 115 | float pOpnd = opnd.pop(); // 另需取一个操作数,并 116 | opnd.push(calcu(op, pOpnd)); // 实施一元计算,结果入栈 117 | } else { // 对于其它(二元)运算符 118 | float pOpnd2 = opnd.pop(), pOpnd1 = opnd.pop(); // 取出后、前操作数 119 | opnd.push(calcu(pOpnd1, op, pOpnd2)); // 实施二元计算,结果入栈 120 | } 121 | break; 122 | } 123 | default: exit(-1); // 逢语法错误,不做处理直接退出 124 | } // switch 125 | } // else 126 | } // while 127 | return opnd.pop(); // 弹出并返回最后的计算结果 128 | } 129 | ``` 130 | 131 | 中缀表达式转 RPN 的手工转换方法: 132 | 133 | 1. 为每个运算补上括号,使优先级不隐式依赖运算符优先级 134 | 135 | 例如:`( ( ( ( 0 ) ! + 1 ) * ( 2 ^ ( ( 3 ) ! + 4 ) ) ) - ( ( ( 5 ) ! - 67 ) - ( 8 + 9 ) ) )` 136 | 137 | 2. 将运算符向后移动到其对应的右括号右侧 138 | 139 | 例如:`( ( ( ( 0 ) ! 1 ) + ( 2 ( ( 3 ) ! 4 ) + ) ^ ) * ( ( ( 5 ) ! 67 ) - ( 8 9 ) + ) - ) -` 140 | 141 | 3. 去掉所有括号,即得到 RPN 142 | 143 | 例如:`0 ! 1 + 2 3 ! 4 + ^ * 5 ! 67 - 8 9 + - -` 144 | 145 | ## 队列 146 | 147 | ### 特点 148 | 149 | - 先进先出(FIFO) 150 | 151 | ### 应用 152 | 153 | #### 轮值算法(Round-robin) 154 | 155 | #### 排队模拟 156 | -------------------------------------------------------------------------------- /专业课/数据结构与算法/2.3 树与二叉树.md: -------------------------------------------------------------------------------- 1 | # 树与二叉树 2 | 3 | ## 概念和表示 4 | 5 | ### 树 6 | 7 | - 等价于连通无环图 8 | - 每一节点与根节点都有一条路径相连 9 | - 由根节点通往每个节点的路径唯一 10 | - 路径是从上向下的,同一父节点的孩子之间不存在路径 11 | - 树的路径长度是所有路径长度的总和 12 | 13 | ### 二叉树 14 | 15 | - 每个节点的度数不超过 2 16 | - 非空二叉树的叶子节点数等于度为 2 的节点数加 1,即 $n_0 = n_2 + 1$ 17 | - 不含 1 度节点的二叉树称为真二叉树 18 | 19 | ### 多叉树 20 | 21 | #### “父节点”表示法 22 | 23 | - 使用向量或列表 24 | - 每个元素保存节点本身的信息和父节点的秩或位置 25 | - 便于自下向上地确定任一节点的父节点(常数时间) 26 | - 查找任一节点的孩子节点需要遍历所有节点(线性时间) 27 | 28 | #### “孩子节点”表示法 29 | 30 | - 每个元素以向量或列表形式保存孩子节点的秩或位置 31 | - 便于访问任一节点的所有孩子节点 32 | 33 | #### “父节点 + 孩子节点”表示法 34 | 35 | - 每个元素不仅保存父节点的秩或位置,还保存所有孩子节点的秩或位置 36 | - 兼顾了对父节点和孩子节点的定位 37 | - 缺点是在需要频繁插入删除元素时,维护结构消耗太大 38 | 39 | #### 有序多叉树 -> 二叉树:“长子 + 兄弟”表示法 40 | 41 | ![](media/15679091637879.jpg) 42 | 43 | ## 二叉树的遍历 44 | 45 | ### 先序遍历 46 | 47 | 递归版: 48 | 49 | ```cpp 50 | void traverse_pre(Node *x) { 51 | if (!x) return; 52 | visit(x); 53 | traverse_pre(x->lc); 54 | traverse_pre(x->rc); 55 | } 56 | ``` 57 | 58 | 迭代版: 59 | 60 | ```cpp 61 | void traverse_pre_iter(Node *x) { 62 | Stack S; 63 | while (x || !S.empty()) { 64 | if (x) { 65 | visit(x); 66 | S.push(x); 67 | x = x->lc; 68 | } else { 69 | x = S.pop()->rc; 70 | } 71 | } 72 | } 73 | ``` 74 | 75 | ### 中序遍历 76 | 77 | 递归版: 78 | 79 | ```cpp 80 | void traverse_in(Node *x) { 81 | if (!x) return; 82 | traverse_in(x->lc); 83 | visit(x); 84 | traverse_in(x->rc); 85 | } 86 | ``` 87 | 88 | 迭代版: 89 | 90 | ```cpp 91 | void traverse_in_iter(Node *x) { 92 | Stack S; 93 | while (x || !S.empty()) { 94 | if (x) { 95 | S.push(x); 96 | x = x->lc; 97 | } else { 98 | x = S.pop(); 99 | visit(x); 100 | x = x->rc; 101 | } 102 | } 103 | } 104 | ``` 105 | 106 | ### 后序遍历 107 | 108 | 递归版: 109 | 110 | ```cpp 111 | void traverse_post(Node *x) { 112 | if (!x) return; 113 | traverse_post(x->lc); 114 | traverse_post(x->rc); 115 | visit(x); 116 | } 117 | ``` 118 | 119 | 迭代版: 120 | 121 | ```cpp 122 | void traverse_post_iter(Node *x) { 123 | Stack S; 124 | while (x) { // 这里 while (x) 主要是跳过初始时 x == NULL 的情况 125 | if (x->lc) { 126 | S.push(x); 127 | x = x->lc; 128 | } else if (x->rc) { 129 | S.push(x); 130 | x = x->rc; 131 | } else { 132 | visit(x); // 当前节点没有孩子,直接访问 133 | while (!S.empty()) { 134 | auto t = S.top(); // 当前栈顶节点必然是当前节点的父节点 135 | if (t->lc == x && t->rc) { // 如果当前节点是左孩子,且父节点有右孩子 136 | x = t->rc; // 则转向右孩子(不 pop 父节点) 137 | break; 138 | } else { 139 | S.pop(); // 否则 pop 并访问该父节点(此时孩子已经全部访问完) 140 | x = t; // 循环直到栈空(x 为根节点),或父节点有右孩子 141 | visit(x); 142 | } 143 | } 144 | } 145 | if (S.empty()) break; // 如果经过一顿操作,栈空了,说明根节点已被访问,遍历完成 146 | } 147 | } 148 | ``` 149 | 150 | ### 层序遍历 151 | 152 | ```cpp 153 | void traverse_level(Node *x) { 154 | if (!x) return; 155 | 156 | Queue Q; 157 | Q.enqueue(x); 158 | while (!Q.empty()) { 159 | Node *n = Q.dequeue(); 160 | visit(n); 161 | if (n->lc) Q.enqueue(n->lc); 162 | if (n->rc) Q.enqueue(n->rc); 163 | } 164 | } 165 | ``` 166 | 167 | ## 前缀无歧义编码(PFC) 168 | 169 | 算法逻辑: 170 | 171 | 1. 初始化 PFC 森林:将每个字符看作一个单节点二叉树,构造一个森林(具体存储方式无所谓,可以用向量,带权的可以用优先队列) 172 | 2. 构造 PFC 编码树:从 PFC 森林中不断的取两棵树合并,再放回森林,直到森林中只有一棵树,即 PFC 编码树(不同的选取算法会生成不同的 PFC 编码树) 173 | 3. 生成 PFC 编码表:遍历 PFC 编码树的所有从根节点到叶节点的路径,放入字典结构 174 | 4. 编码:依次从 PFC 编码表中获得每个字符对应的编码串,拼接 175 | 5. 解码:从 PFC 编码树的树根开始,依次根据每个编码字符是 0 或 1 来分别深入左、右子树,直到叶节点则完成一个原字符的解码 176 | 177 | 上面解码过程中,扫描无需回溯,属于在线算法。 178 | 179 | ### 最优编码树 180 | 181 | - 平均编码长度:编码树中叶节点的平均深度 182 | - 最优二叉编码树:平均编码长度最小 183 | - 双子性:所有内部节点都是 2 度节点(若不然,则用唯一的孩子取代 1 度节点,可以使平均编码长度减小) 184 | - 层次性:叶节点深度之差不超过 1(若不然,设 $depth(x) - depth(y) \ge 2$,则 $depth(x.parent) - depth(y) \ge 1$,交换 x.parent 和 y,则 x 及其兄弟节点的编码长度全部减 1,y 的编码长度和 x.parent 互换,总体上平均编码长度减小) 185 | - 构造算法:建立一棵规模为 $2|\Sigma|-1$ 的完全二叉树,再将 $\Sigma$ 中的字符任意分配给叶节点 186 | 187 | ### 最优带权编码树 188 | 189 | - 带权平均编码长度:编码树中叶节点的带权平均深度(权重可以是字符在文本中的出现频率) 190 | - 最优带权编码树:带权平均编码长度最小 191 | - 层次性:若字符 x 和 y 的出现频率在所有字符中最低,则必存在某棵最优带权编码树,使 x 和 y 在其中同处于最底层,且互为兄弟(若不然,可以取最底层的一对兄弟叶节点 a、b,分别与 x、y 互换,由于 x、y 权重最小,交换后,带权平均编码长度不会增加,此时仍然是最优带权编码树) 192 | 193 | #### Huffman 编码树 194 | 195 | 算法逻辑:在 PFC 编码树构造算法中,每次取森林中权重最小的两棵树合并。 196 | 197 | **Huffman 编码树只是最优带权编码树中的一棵。** 198 | -------------------------------------------------------------------------------- /专业课/数据结构与算法/2.4 搜索树.md: -------------------------------------------------------------------------------- 1 | # 搜索树 2 | 3 | ## 概念 4 | 5 | - 键值存储(循关键码访问) 6 | - 要求 key 可比较大小 7 | 8 | ## 二叉搜索树 BST 9 | 10 | - 顺序性:任一节点的左子树不大于该节点,右子树不小于该节点,即,中序遍历序列单调非降。 11 | 12 | ### 基本操作 13 | 14 | 下面三个主要算法的最好情况复杂度都是 $O(1)$(根节点处命中),最坏都是 $\Omega(n)$(退化为线性表)。 15 | 16 | | 操作 | 算法描述 | 17 | | --- | --- | 18 | | 查找 | 从根节点开始依次比较,小于则向左深入,大于则向右深入 | 19 | | 插入 | 使用上面查找算法找到插入位置(必在叶节点处),插入节点 | 20 | | 删除 | 使用上面查找算法找到待删节点,若只有一个子树,则直接用该子树的根替换待删节点;若有两个子树,则将其与右子树中的最小(左)节点互换,这时将必只有右子树,按前面的方法删除 | 21 | 22 | ## 平衡二叉搜索树 BBST 23 | 24 | ### 对 BST 的分析 25 | 26 | 随机生成:由 n 个关键码的任意一个排列(共 n! 种),依次调用 `insert(e)`,所得到的 BST,称作由该排列“随机生成”。由随机生成得到 BST 的平均树高为 $\Theta(\log{n})$。 27 | 28 | 随机组成:在遵守顺序性的条件下,随机确定节点间的拓扑连接,称为“随机组成”。由随机组成得到的 BST 的平均树高为 $\Theta(\sqrt{n})$ 29 | 30 | 随机生成相比随机组成,重复统计了多种排列生成相同 BST 的情况。 31 | 32 | ### 适度平衡 33 | 34 | - 将树高限制为渐进地不超过 $O(\log n)$ 35 | - 通过等价变换(旋转、重组,保持顺序性)调整树高 36 | - 经过单次修正操作后,至多只有 $O(\log n)$ 处局部不再满足限制条件 37 | - 可在 $O(\log n)$ 时间内使上述局部重新满足限制条件 38 | 39 | ### 旋转调整 40 | 41 | - 经过 zig、zag 操作之后,参与旋转的两个节点深度发生变化,这一局部的子树(乃至全树)高度可能变化,但幅度不超过一层 42 | 43 | ## AVL 树 44 | 45 | - 平衡因子(左右子树高度差)不超过 1 46 | - 有序的完全二叉树必为 AVL 树 47 | - 平衡性:高度为 h 的 AVL 树至少包含 $fib(h+3)-1$ 个节点,反过来,包含 n 个节点的 AVL 树高为 $O(\log n)$ 48 | 49 | ### 插入 50 | 51 | 插入节点 x 后,失衡节点集 UT 中的节点都是 x 的祖先,且高度不低于 x 的祖父,记其中最深者为 g,p 为 g 的更高的子节点(若等高优先取与 g 同向),v 为 p 的更高的子节点(若等高优先取与 p 同向),x 必然在 v 子树上(x 可能就是 v)。 52 | 53 | 单旋: 54 | 55 | ![](media/15680867861709.jpg) 56 | 57 | 双旋: 58 | 59 | ![](media/15680868764827.jpg) 60 | 61 | 上述单旋和双旋最终都将 g 的高度恢复到原高度,除了这个局部之外,没有其它地方的需要再进行重平衡。因此,在 AVL 树中插入新节点,至多需要两次旋转即可恢复平衡。 62 | 63 | 复杂度:插入新节点 $O(\log n)$,向上检查平衡性(寻找 g)$O(\log n)$,旋转恢复平衡 $O(1)$,总计 $O(\log n)$。 64 | 65 | ### 删除 66 | 67 | 按 BST 的方法删除节点 x 后,失衡节点集 UT 中始终至多包含一个节点,若该节点 g 存在,其高度必与失衡前相同(画示意图容易得出)。g 有可能是 x 的父节点。 68 | 69 | g 不包含 x 的的一侧,必有非空孩子 p,且 p 子树至少有一个孩子,取 v 为 p 孩子中更高者(若等高则取与 p 同向)。 70 | 71 | 单旋: 72 | 73 | ![](media/15680966698060.jpg) 74 | 75 | 双旋: 76 | 77 | ![](media/15680968645866.jpg) 78 | 79 | 这里虚线相连的灰色方块表示不能同时为空,没有连线的灰色方块表示可能为空也可能非空。 80 | 81 | 注意,单旋时,如果 T2 底部的灰色方块为空,则旋转后,g、p、v 这个局部的子树整体高度减小了 1;双旋时,g、p、v 局部子树高度必然减小 1。**因此,经过一次旋转后,失衡可能会向上传播,需要不断向上寻找失衡节点,进行重平衡,直到树根。** 82 | 83 | 复杂度:除了由于失衡向上传播需要多花时间重平衡外,其它与插入相同,总体仍然 $O(\log n)$。 84 | 85 | ### 统一重平衡算法(3+4 重构) 86 | 87 | 用于将单旋和双旋操作统一,将上述旋转中涉及到的 3 个节点、4 棵子树,按中序遍历次序重新排列和连接。实现起来更加方便。 88 | 89 | ## 伸展树 Splay Tree 90 | 91 | - 利用数据局部性: 92 | - 刚刚访问过的节点,极有可能在不久之后再次访问 93 | - 将被访问的下一个节点,极有可能在不久前访问的节点附近 94 | 95 | ### 逐层伸展 96 | 97 | 每访问过一个节点后,反复以其父节点为轴做旋转,将其提升为树根。 98 | 99 | 最坏情况下,每次都放问到最深的叶子结点,退化为 $\Omega(n)$。 100 | 101 | 问题根源在于,树高最快以算术级数的速度减小。 102 | 103 | ### 双层伸展 104 | 105 | 每访问过一个节点 v 后,每次伸展时,根据其父节点 p 和祖父节点 g 的相对位置进行旋转,将 v 提升到原来其祖父节点 g 的位置,重复直到树根。 106 | 107 | - zig-zig/zag-zag(注意这种旋转和 AVL 树中的操作不太相同) 108 | - zig-zag/zag-zig 109 | - zig/zag(父节点为根的情况) 110 | 111 | 旋转时可用 3+4 重构。 112 | 113 | 优势在于,树高以几何级数(大致折半)的速度减小。单次操作分摊时间 $O(\log n)$。 114 | 115 | ## B 树 116 | 117 | - m 阶 B 树 = m 路平衡搜索树 118 | - 所有外部节点深度相同(可能存在于更低层次的存储系统中) 119 | - 每个内部节点有不超过 m-1 个关键码(不超过 m 个分支) 120 | - 除根节点外,每个内部节点有至少 $\lceil m/2 \rceil - 1$ 个关键码(至少 $\lceil m/2 \rceil$ 个分支) 121 | - 非空 B 树的根节点有至少两个分支 122 | - 一个节点的所有关键码和子节点指针分别组织为两个向量 123 | 124 | ### 查找 125 | 126 | 与 BST 类似,区别在于每个节点中需要顺序地(或二分地,但速度提升不大,因为主要时间消耗在访问外存)比较该节点中的所有关键码。 127 | 128 | 对于高度为 h 的 B 树,外存访问不超过 $O(h-1)$ 次($h = \Theta(\log_m{n})$);m 取 256~1024 时,可降低大约一个数量级的外存访问次数。 129 | 130 | ### 插入 131 | 132 | 与 BST 类似,区别在于将插入到关键码向量的对应位置,并在子节点指针向量相应位置插入 NULL 右分支。 133 | 134 | 当节点关键码增加到 m 个时(分支增加到 m+1 个),发生上溢,将第 $s = \lfloor m/2 \rfloor$ 个关键码提升到父节点(或提升为新的根节点),两侧的关键码分裂为两个分支。 135 | 136 | 提升关键码到父节点可能造成上溢的向上传递,重复上述解决方案,直到上溢不再传递。 137 | 138 | 复杂度为 $O(\log_m{n})$。 139 | 140 | ### 删除 141 | 142 | 首先查找得到关键码 e 所属的节点 v,若 v 不是叶节点,则将 e 与 v 的右分支中的最小关键码 u[0](在 v 的右分支最左下角,是其直接后继)互换。 143 | 144 | 此时可确保 e 所属的节点 v 是叶节点(非外部节点),从 v 中删除 e 及其下两个外部节点之一。 145 | 146 | 当节点 v 的关键码减少到 $\lceil m/2 \rceil - 2$ 个时(分支减少到 $\lceil m/2 \rceil - 1$),发生下溢,需要分三种情况处理(分别对应下面三个示意图): 147 | 148 | - v 的左兄弟节点 L 存在,且至少包含 $\lceil m/2 \rceil$ 个关键码($\lceil m/2 \rceil + 1$ 个分支):顺时针旋转 L 的最大关键码、父节点的对应关键码 149 | - v 的右兄弟节点 R 存在,且至少包含 $\lceil m/2 \rceil$ 个关键码($\lceil m/2 \rceil + 1$ 个分支):与上一种情况对称 150 | - L 或 R 不存在,或所包含关键码均不足 $\lceil m/2 \rceil$:将父节点对应关键码下降,合并 L(或 R)与 v 151 | 152 | ![](media/15682702489898.jpg) 153 | 154 | ![](media/15682702490320.jpg) 155 | 156 | ![](media/15682702490739.jpg) 157 | 158 | 对于上面第三种情形,下溢可能会向上传递,重复上述解决方案,直到上溢不再传递。 159 | 160 | 若非空 B 树根节点只剩一个分支(没有关键码),则删除根节点,将唯一的孩子作为新的根节点。 161 | 162 | 复杂度为 $O(\log_m{n})$。 163 | -------------------------------------------------------------------------------- /专业课/数据结构与算法/2.6 散列表.md: -------------------------------------------------------------------------------- 1 | # 散列表 2 | 3 | - 通过散列函数将关键码映射到桶地址 4 | - 桶单元组织为数组 5 | - 所有操作在平均意义上复杂度为 $O(1)$ 6 | - 装填因子:散列表中非空桶数量与桶单元总数的比值 7 | 8 | ## 散列函数 9 | 10 | - key -> address 映射 11 | - 需要能够快速计算(常数时间) 12 | - 所有关键码经映射后应尽量覆盖整个地址空间 13 | - 定义域规模 R 远大于取值域规模 M,散列冲突难以避免 14 | - 关键码映射到各桶的概率应尽量接近 1/M(均匀随机分布) 15 | - 聚集现象:词条集中到散列表内少数若干桶中(或附近) 16 | 17 | ### 除余法 18 | 19 | $$hash(key) = key \mod M$$ 20 | 21 | 其中,散列表长度 M 取素数;若 M 不取素数,则关键码映射到 [0, M) 的均匀度将大幅降低。 22 | 23 | ### MAD 法(Multiply-Add-Divide) 24 | 25 | $$hash(key) = (a \times key + b) \mod M$$ 26 | 27 | 其中,M 取素数,a > 0,b > 0,且 $a \mod M \ne 0$。 28 | 29 | 一定程度上解决了除余法中,连续关键码映射到的地址也连续导致的聚集问题。 30 | 31 | ### 伪随机数法 32 | 33 | $$hash(key) = rand(key) \mod M$$ 34 | 35 | ### 更多散列函数 36 | 37 | - 数字分析法 38 | - 平方取中法 39 | - 折叠法 40 | - 异或法 41 | - …… 42 | 43 | 总而言之产生的地址越随机越均匀越好。 44 | 45 | ## 解决散列冲突 46 | 47 | ### 封闭定址/开散列 48 | 49 | 不改变映射出的地址(封闭定址),而是在产生冲突时通过散列表数组之外的结构(开散列)来存放冲突的词条。 50 | 51 | #### 多槽位法 52 | 53 | 给每个地址分配多个槽位,发生冲突时放到空闲槽位。CPU 的组相联缓存就是这种策略。 54 | 55 | 缺点是装填因子较低,空间浪费大,且聚集现象严重时,小部分地址槽位不够,而大部分地址槽位空闲。 56 | 57 | #### 独立链法 58 | 59 | 每个地址上,将冲突词条组织为一个链表。 60 | 61 | 相对于多槽位法更加灵活,空间浪费较少。但查找过程中发生冲突时,需要遍历整个链表,增加查找成本。 62 | 63 | 建议的装填因子上限为 0.9。 64 | 65 | #### 公共溢出区法 66 | 67 | 在原散列表之外另设一个词典结构,将冲突词条放入其中。此公共溢出区若也实现为散列表,则可理解为递归形式的散列表。 68 | 69 | ### 开放定址/闭散列 70 | 71 | 当发生冲突时,在散列表内部寻找另一空闲地址(开放定址),使所有词条保持在散列表内部,而无需维护额外的结构(闭散列)。 72 | 73 | #### 线性试探法 74 | 75 | 插入时,依次尝试地址 $[hash(key) + i] \mod M, i = 0, 1, 2, \cdots$,直到发现可用地址。 76 | 77 | 查找时操作相同,算出散列地址后依次比较,直到关键码相等(查找成功)或遇到空桶(查找失败)。相互冲突的关键码必属于同一查找链,但同一查找链中的关键码未必相互冲突。 78 | 79 | 删除时,为防止查找链断裂,需要将被删除的词条所在位置标记为“曾经放过词条”,称作懒惰删除法。标记为懒惰删除的桶和普通空桶一样参与插入操作,且再次插入时,懒惰删除标记无需复位(因为即使复位,后续再删除时仍需置位)。 80 | 81 | 优点是冲突词条连续,可充分利用系统缓存。缺点是会加剧聚集的趋势。 82 | 83 | 建议的装填因子上限为 0.5。 84 | 85 | #### 平方试探法 86 | 87 | 插入时,依次尝试地址 $[hash(key) + i^2] \mod M, i = 0, 1, 2, \cdots$。 88 | 89 | 优点是降低了聚集现象。缺点是数据局部性相比线性试探法有所下降,但由于目前 I/O 页面规模已经足够大,只有在查找链极长时才会影响性能。 90 | 91 | 由于取平方,可能出现“明明存在空桶却无法抵达”的现象,解决方法是取散列表长度 M 为素数且保持装填因子小于 0.5。 92 | 93 | #### 伪随机试探法 94 | 95 | #### 再散列法 96 | 97 | 选取一个合适的二级散列函数,插入时依次尝试地址 $[hash(key) + i \times hash_2(key)] \mod M, i = 0, 1, 2, \cdots$。 98 | 99 | ## 散列码转换 100 | 101 | 利用某种散列码转换函数 `hashCode()` 将关键码统一转换为一个整数(散列码),然后再使用散列函数映射为散列地址。 102 | 103 | 被判等器判定为相等的词条,对应的散列码应该相等。反过来,如果两个不相等的词条散列码相同,则散列函数再好也无法消除冲突,但由于词条中是保存原关键码的,所以并不影响查找操作的正确性。 104 | 105 | 转换方法: 106 | 107 | - 强制类型转换为整数 108 | - 对成员对象求和 109 | - 多项式散列码:将字符串 $x_0 x_1 \cdots x_{n-1}$ 转换为 $x_0 a^{n-1} + x_1 a^{n-2} + \cdots + x_{n-1} a^0$ 110 | 111 | ## 应用 112 | 113 | ### 最大间隙 114 | 115 | 问题:设有 n 个点,将数轴分为 n+1 段,求中间 n-1 段中长度最大者。 116 | 117 | #### 平凡算法 118 | 119 | 先对 n 个点坐标排序,然后顺序扫描返回间隙最大者。复杂度为 $O(n \log n)$。 120 | 121 | #### 散列算法 122 | 123 | 通过一趟顺序扫描找到最左和最右的点,坐标分别记为 lo 和 hi,然后建立长度为 n 的散列表,使用散列函数 124 | 125 | $$hash(x) = \lfloor \frac{(n-1)(x-lo)}{hi-lo} \rfloor$$ 126 | 127 | 将各点插入散列表。这相当于把 n 个点的坐标压缩到 [0, n-1] 范围内。 128 | 129 | 然后顺序扫描散列表,在每个非空桶内,确定最靠左和最靠右的点(线性时间),进而可返回全局间隙最大者。 130 | 131 | 时间和空间复杂度均为 $O(n)$。 132 | 133 | ### 桶排序 134 | 135 | 见“排序”单独章节。 136 | 137 | ### 基数排序 138 | 139 | 见“排序”单独章节。 140 | -------------------------------------------------------------------------------- /专业课/数据结构与算法/2.7 优先队列.md: -------------------------------------------------------------------------------- 1 | # 优先队列 2 | 3 | - 循优先级访问 4 | - 维护偏序而不是全序关系 5 | - 基本操作:`insert(e)`、`getMax()`、`delMax()` 6 | 7 | ## 堆 8 | 9 | - 实现为完全二叉树 10 | - 使用向量存储 11 | - 高度 $O(\log n)$ 12 | - 最大(小)堆:除了堆顶之外,每个节点都不大(小)于其父节点——堆序性 13 | 14 | 由于完全二叉树的性质,有: 15 | 16 | - 若 v 有左孩子,则 $idx(lchild(v)) = 2 \times idx(v) + 1$ 17 | - 若 v 有右孩子,则 $idx(rchild(v)) = 2 \times idx(v) + 2$ 18 | - 若 v 有父节点,则 $idx(parent(v)) = \lfloor (idx(v) - 1) / 2 \rfloor = \lceil (idx(v) / 2) \rceil - 1$ 19 | 20 | ### 插入 21 | 22 | - 将新元素插入到向量末尾,然后进行上滤——不断比较与父节点的大小并按需交换,直到恢复堆序性 23 | - 上滤过程累计不超过树高,故插入操作复杂度为 $O(\log n)$ 24 | - 在元素大小随机分布的情况下,新元素平均需要提升的高度非常低(因为完全二叉树的大部分元素在较低层) 25 | - 上滤过程中,与父节点交换时无需完整进行三次赋值,只需要用父节点的值覆盖当前节点(当前节点的值保存在局部变量,不会丢失) 26 | 27 | ### 删除 28 | 29 | - 将最末尾的元素覆盖到堆顶,然后进行下滤——不断比较与较大孩子的大小并按需交换,直到恢复堆序性 30 | - 下滤过程累计不超过树高,故删除操作复杂度为 $O(\log n)$ 31 | 32 | ### 建堆 33 | 34 | #### 蛮力算法 35 | 36 | 对所有元素依次调用插入操作,复杂度为 $O(\log 1 + \log 2 + \cdots + \log n) = O(\log {n!}) = O(n \log n)$。 37 | 38 | 问题在于时间复杂度足以实现全排序,但最终却只得到一个偏序。 39 | 40 | #### 自上而下的上滤 41 | 42 | 将输入元素组织成向量后,首元素可视为规模为 1 的堆,然后从左向右依次上滤。复杂度同蛮力算法,为 $\sum\limits_{i=0}^h (i \cdot 2^i) = O(n \log n)$。 43 | 44 | #### Floyd 算法——自下而上的下滤 45 | 46 | 将输入元素组织成向量后,可直接视为完全二叉树,此时各叶节点自成一个堆,然后自下而上、从右向左,依次对内部节点进行下滤,使其进入两个孩子合并成的更大堆中。 47 | 48 | ![](media/15688574627705.jpg) 49 | 50 | 复杂度为 $\sum\limits_{i=0}^h ((h-i) \cdot 2^i) = O(n)$。 51 | 52 | 优化的根源在于,完全二叉树中低层节点**远多于**高层节点,Floyd 建堆算法减少了低层节点的调整次数,增加了高层节点的调整次数。 53 | 54 | ## 应用 55 | 56 | ### Huffman 编码树 57 | 58 | 使用堆结构来维护 Huffman 森林,可使每次取权值最小的树的复杂度为 $O(\log n)$,于是构造 Huffman 编码树总的复杂度为 $O(n \log n)$。 59 | 60 | ### 堆排序 61 | 62 | 见“排序”单独章节。 63 | -------------------------------------------------------------------------------- /专业课/数据结构与算法/2.8 串.md: -------------------------------------------------------------------------------- 1 | # 串 2 | 3 | ## 字符串匹配 4 | 5 | ### 蛮力算法 6 | 7 | - 复杂度为 $O(mn)$ 8 | - 最好情况下(每次在第一个字符失配),运行时间为 $O(n)$ 9 | - 字符表较大时,最好情况出现概率不算低 10 | 11 | ### KMP 算法 12 | 13 | - 蛮力算法的问题在于没有利用已经匹配的部分带来的信息 14 | - 对模式串 P 进行预处理,构造 next 表 15 | - 构造 next 表的复杂度为 $O(m)$,匹配过程的复杂度为 $O(n)$,总体复杂度为 $O(n + m)$ 16 | 17 | #### 匹配 18 | 19 | ```cpp 20 | int match(char *P, char *T) { 21 | int *next = build_next(P); // 构造 next 表 22 | int n = strlen(T), i = 0; // 文本串指针 23 | int m = strlen(P), j = 0; // 模式串指针 24 | while (j < m && i < n) { 25 | if (j < 0 || T[i] == P[j]) { // 若 P 已移出最左侧,或当前字符匹配 26 | i++; // 则转向下一个字符 27 | j++; 28 | } else { 29 | j = next[j]; // 失配,模式串右移(文本串不用回退,保证了线性复杂度) 30 | } 31 | } 32 | delete[] next; 33 | return i - j; 34 | } 35 | ``` 36 | 37 | #### 构造 next 表 38 | 39 | - `next[0] = -1`,模式串中隐含的下标为 -1 的字符可以认为是 `*` 40 | - 设 `t = next[j]`,若 `P[j] == P[t]`,则 `next[j + 1] = t + 1`,否则令 `t = next[t]`,重复本步骤 41 | 42 | ```cpp 43 | int *build_next(char *P) { 44 | int m = strlen(P); 45 | int *next = new int[m]; 46 | int j = 0; 47 | int t = next[0] = -1; 48 | while (j < m - 1) { 49 | if (t < 0 || P[j] == P[t]) { // 这里是在尝试延长最长相等前后缀,j 和 t 分别是前缀和后缀的尾地址 50 | j++; t++; 51 | next[j] = t; // 此处可改进 52 | } else { // 若失配,则跳到 t 之前的最长相等前后缀,继续尝试延长 53 | t = next[t]; 54 | } 55 | } 56 | return next; 57 | } 58 | ``` 59 | 60 | #### 改进 next 表 61 | 62 | - 上述构造 next 表的算法没有充分利用失配所带来的信息 63 | - 匹配过程中,当发生失配时,如果 `P[next[j]] == P[j]`,则必然继续失配 64 | - 改进办法是在构造时提前比对,保证 `P[next[j]] != P[j]` 65 | 66 | ```cpp 67 | int *build_next(char *P) { 68 | int m = strlen(P); 69 | int *next = new int[m]; 70 | int j = 0; 71 | int t = next[0] = -1; 72 | while (j < m - 1) { 73 | if (t < 0 || P[j] == P[t]) { 74 | j++; t++; 75 | next[j] = P[j] != P[t] ? t : next[t]; 76 | // 这里意思是,如果 P[j] == P[t],那么跳到 t 也没用,不妨直接跳到 next[t] 77 | } else { 78 | t = next[t]; 79 | } 80 | } 81 | return next; 82 | } 83 | ``` 84 | -------------------------------------------------------------------------------- /专业课/数据结构与算法/3.1 递归.md: -------------------------------------------------------------------------------- 1 | # 递归 2 | 3 | ## 递归分析 4 | 5 | ### 递归跟踪 6 | 7 | ### 递推方程 8 | 9 | $T(n) = T(n-1) + O(1) = T(n-1) + c_1$ 10 | 11 | $T(0) = O(1) = c_2$ 12 | 13 | $T(n) = c_1 n + c_2 = O(n)$ 14 | 15 | ### 递归树 16 | 17 | ![](media/15656106316795.png) 18 | 19 | ### 主定理 20 | 21 | 设有递推式 $T(n) = aT(\frac{n}{b})+f(n),a \ge 1,b > 1$。 22 | 23 | #### 情形一 24 | 25 | 若存在常数 $\varepsilon > 0$,有 $f(n) = O(n^{\log_b{a}-\varepsilon})$(多项式地小于),则 $T(n) = \Theta(n^{\log_b{a}})$。 26 | 27 | #### 情形二 28 | 29 | 若存在常数 $k \ge 0$,有 $f(n) = \Theta(n^{\log_b{a}} \log^k{n})$,则 $T(n) = \Theta(n^{\log_b{a}} \log^{k+1}{n})$。 30 | 31 | #### 情形三 32 | 33 | 如存在常数 $\varepsilon > 0$,有 $f(n) = \Omega(n^{\log_b{a}+\varepsilon})$(多项式地大于),同时存在常数 $c < 1$,以及充分大的 $n$,满足 $af(\frac{n}{b}) \le cf(n)$,则 $T(n) = \Theta(f(n))$。 34 | 35 | ## 递归消除 36 | 37 | - 使用迭代(易于消除尾递归) 38 | - 使用栈结构模拟递归调用 39 | 40 | ## 实例 41 | 42 | ### 汉诺塔 43 | 44 | ```cpp 45 | void moveTower(int n, char start, char finish, char tmp) { 46 | if (n == 1) { 47 | moveSingleDisk(start, finish); 48 | } else { 49 | moveTower(n - 1, start, tmp, finish); 50 | moveSingleDisk(start, finish); 51 | moveTower(n - 1, tmp, finish, start); 52 | } 53 | } 54 | ``` 55 | 56 | ### 子集求和问题 57 | 58 | ```cpp 59 | bool subsetSumExists(Set &set, int target) { 60 | if (set.isEmpty()) { 61 | return target == 0; 62 | } else { 63 | int elem = set.first(); 64 | set.remove(elem); 65 | return subsetSumExists(set, target) || subsetSumExists(set, target - elem); 66 | } 67 | } 68 | ``` 69 | 70 | 这种模式称为包含/排除模式(inclusion/exclusion pattern)。 71 | 72 | ### 字符排列 73 | 74 | ```cpp 75 | Set generatePermutations(string chars) { 76 | Set result; 77 | if (chars.empty()) { 78 | result.add(""); 79 | } else { 80 | for (int i = 0; i < chars.length(); i++) { 81 | char ch = chars[i]; 82 | string rest = chars.substr(0, i) + chars.substr(i + 1); 83 | for (string s : generatePermutations(rest)) { 84 | result.add(ch + s); 85 | } 86 | } 87 | } 88 | return result; 89 | } 90 | ``` 91 | 92 | ### 数字的排列和组合 93 | 94 | ```cpp 95 | void permutation(const vector &S, vector &marked, vector &v) { 96 | int n = S.size(); 97 | for (int i = 0; i < n; i++) { 98 | if (marked[i]) continue; 99 | marked[i] = true; 100 | v.push_back(S[i]); 101 | if (v.size() == n) { 102 | print(v); 103 | } else { 104 | permutation(S, marked, v); 105 | } 106 | v.pop_back(); 107 | marked[i] = false; 108 | } 109 | } 110 | 111 | void composition(const vector &S, int k, vector &v, int start = 0) { 112 | int n = S.size(); 113 | for (int i = start; i < n; i++) { 114 | v.push_back(S[i]); 115 | if (v.size() == k) { 116 | print(v); 117 | } else { 118 | composition(S, k, v, i + 1); 119 | } 120 | v.pop_back(); 121 | } 122 | } 123 | ``` 124 | -------------------------------------------------------------------------------- /专业课/数据结构与算法/3.2 回溯.md: -------------------------------------------------------------------------------- 1 | # 回溯 2 | 3 | ## 迷宫寻径 4 | 5 | ```cpp 6 | bool solveMaze(Maze &maze, Point start) { 7 | if (maze.isOutside(start)) return true; 8 | if (maze.isMarked(start)) return false; 9 | maze.mark(start); 10 | for (Direction dir = NORTH; dir != WEST; dir++) { 11 | if (maze.wallExists(start, dir)) continue; 12 | if (solveMaze(maze, adjacentPoint(start, dir))) { 13 | return true; 14 | } 15 | } 16 | maze.unmark(start); 17 | return false; 18 | } 19 | ``` 20 | 21 | 思路是在每一点处,标记该点,然后遍历四个方向,如果不是墙就递归地求解,递归返回后取消标记该点,最终如果能够返回 `true`,则已标记的位置构成出迷宫的路径。 22 | 23 | 这种思路的问题是每次访问一个点后,尽管已经确定从该点不能走出迷宫,还是 `unmark(start)` 了,下次从别的路径仍然有可能到达这个点,造成重复计算。 24 | 25 | 优化方法是每个点一旦做标记,就不再取消,另外使用一个栈来保存已走过的路径: 26 | 27 | ```cpp 28 | bool solveMaze(Maze &maze, Point start) { 29 | if (maze.isOutside(start)) return true; 30 | if (maze.isMarked(start)) return false; 31 | maze.mark(start); 32 | maze.paths.push(start); 33 | for (Direction dir = NORTH; dir != WEST; dir++) { 34 | if (maze.wallExists(start, dir)) continue; 35 | if (solveMaze(maze, adjacentPoint(start, dir))) { 36 | return true; 37 | } 38 | } 39 | maze.paths.pop(); 40 | return false; 41 | } 42 | ``` 43 | 44 | 函数返回后,如果返回 `true`,则 `maze.paths` 中保存的即为出迷宫的路径。 45 | 46 | ## 拿子游戏 47 | 48 | 游戏规则:桌上一开始有 13 枚硬币,每一轮玩家从中任意拿走一枚、两枚或三枚,拿到最后一枚硬币的玩家输。 49 | 50 | ```cpp 51 | const int N_COINS = 13; 52 | const int MAX_MOVE = 3; 53 | const int NO_GOOD_MOVE = -1; 54 | 55 | int findGoodMove(int nCoins) { 56 | int limits = min(nCoins, MAX_MOVE); 57 | for (int nTaken = 1; nTaken <= limits; nTaken++) { 58 | if (isBadPosition(nCoins - nTaken)) { 59 | // 意味着拿走 nTaken 枚之后,对手处在不利位置 60 | return nTaken; 61 | } 62 | } 63 | return NO_GOOD_MOVE; 64 | } 65 | 66 | int isBadPosition(int nCoins) { 67 | if (nCoins == 1) return true; // 不得不拿最后一枚,输 68 | return findGoodMove(nCoins) == NO_GOOD_MOVE; // 没有好的走法,不利 69 | } 70 | ``` 71 | -------------------------------------------------------------------------------- /专业课/数据结构与算法/3.3 动态规划.md: -------------------------------------------------------------------------------- 1 | # 动态规划 2 | 3 | 动态规划适用于求解有大量重复子问题的情况的最优解。自顶向下的动态规划整体代码和递归相同,使用 memoiazation 来缓存已经计算过的项;自底向上的动态规划有点像递归的反向运算,动态规划的状态转移方程实际上就是递推式。 4 | 5 | ## 最长公共子序列 LCS 6 | 7 | 状态转移方程: 8 | 9 | $$ 10 | F[i, j] = 11 | \begin{cases} 12 | F[i-1, j-1] + 1, & x[i] = y[i] \cr 13 | \max\{ F[i, j-1], F[i-1, j] \}, & x[i] \ne y[i] 14 | \end{cases} 15 | $$ 16 | 17 | 伪码: 18 | 19 | ``` 20 | def LengthOfLCS(SX, SY) 21 | M, N = len(SX), len(SY) 22 | F[0..M][0..N] = 0 23 | for i = 1 to M 24 | for j = 1 to N 25 | if SX[i-1] == SY[j-1] # SX 和 SY 下标从 0 开始 26 | F[i][j] = F[i-1][j-1] + 1 27 | else 28 | F[i][j] = max(F[i-1][j], F[i][j-1]) 29 | return F[M][N] 30 | ``` 31 | 32 | 空间和时间复杂度都是 $O(MN)$。 33 | 34 | 空间优化到 $O(\min\{M, N\})$ 的伪码: 35 | 36 | ``` 37 | def LengthOfLCS(SX, SY) 38 | M, N = len(SX), len(SY) 39 | if M < N 40 | swap(SX, SY) 41 | swap(M, N) 42 | F[0..N] = 0 43 | for i = 1 to M 44 | UL = F[0] # UL 指 upper-left,暂存左上方元素 45 | for j = 1 to N 46 | if SX[i-1] == SY[j-1] # SX 和 SY 下标从 0 开始 47 | F[j] = UL + 1 48 | else 49 | UL = F[j] 50 | F[j] = max(F[j-1], F[j]) 51 | return F[N] 52 | ``` 53 | 54 | ## 背包问题 55 | 56 | ### 0-1 背包问题 57 | 58 | 有 $N$ 件物品和一个容量为 $V$ 的背包,第 $i$ 件物品所占空间是 $C_i$(费用),价值是 $W_i$,求将哪些物品放入背包可使总价值最大。 59 | 60 | #### 状态转移方程 61 | 62 | $$ 63 | F[i, v] = \max\{ F[i-1, v], F[i-1, v-C_i] + W_i \} 64 | $$ 65 | 66 | #### 使用二维数组 67 | 68 | ``` 69 | F[0][0..V] = 0 70 | for i = 1 to N 71 | for v = C[i] to V 72 | F[i][v] = max(F[i-1][v], F[i-1][v-C[i]] + W[i]) 73 | ``` 74 | 75 | 空间和时间复杂度都是 $O(VN)$。 76 | 77 | #### 使用一维数组 78 | 79 | 由于每次内层迭代只是比较上一轮(i-1)产生的某些值,且最终只需要最后一次迭代的结果,因此可使用一维数组优化空间复杂度到 $O(V)$: 80 | 81 | ``` 82 | F[0..V] = 0 83 | for i = 1 to N 84 | for v = V to C[i] 85 | F[v] = max(F[v], F[v-C[i]] + W[i]) 86 | ``` 87 | 88 | 这里 `for v = V to C[i]` 意味着每轮内层迭代是从右往左算的,因为需要使用上一轮的左侧的值 $F[i-1, v-C_i]$,从右往左可保证取到的左边的值是上一轮的结果。 89 | 90 | #### 数组的初始化 91 | 92 | 根据问题的两种不同提法,数组的初始值不同。 93 | 94 | 第一种问法,要求背包恰好被装满。这种情况下初始值只有 `F[0]` 是 0,`F[1..V]` 为负无穷(实际中使用数字很大的负数)。 95 | 96 | 第二种问法,不要求恰好装满。这种情况下初始值设为 `F[0..V] = 0`。 97 | 98 | 可以理解为,数组的初始值就是在没有任何物品可以放入背包时的合法状态。 99 | 100 | ### 完全背包问题 101 | 102 | 有 $N$ 种物品和一个容量为 $V$ 的背包,每种物品都有无限件,第 $i$ 种物品所占空间是 $C_i$(费用),价值是 $W_i$,求将哪些物品放入背包可使总价值最大。 103 | 104 | #### 状态转移方程 105 | 106 | $$ 107 | F[i, v] = \max\{ F[i-1, v-kC_i] + kW_i | 0 \le kC_i \le v \} 108 | $$ 109 | 110 | 或 111 | 112 | $$ 113 | F[i, v] = \max\{ F[i-1, v], F[i, v-C_i] + W_i \} 114 | $$ 115 | 116 | #### 数据预处理 117 | 118 | 由于每件物品有无限件,可以先去掉所有费用相同或更高,但价值更小的物品。 119 | 120 | #### 转化为 0-1 背包问题 121 | 122 | 将第 $i$ 种物品拆成费用为 $2^k C_i$、价值为 $2^k W_i$ 的若干件物品,其中 k 取遍满足 $2^k C_i \le V$ 的所有非负整数。 123 | 124 | 时间复杂度优化为 $O(V \sum \log{\lfloor V/C_i \rfloor})$。 125 | 126 | #### 更快的方法 127 | 128 | ``` 129 | F[0..V] = 0 130 | for i = 1 to N 131 | for v = C[i] to V 132 | F[v] = max(F[v], F[v-C[i]] + W[i]) 133 | ``` 134 | 135 | 时间复杂度为 $O(VN)$。 136 | 137 | 相比 0-1 背包问题,区别在于内层迭代的计算顺序,改为了从左往右计算,对应状态转移方程的第二种形式,需要用到当前轮(而不是 0-1 背包问题中用到的上一轮)左边的结果,即 $F[i, v-C_i]$。 138 | 139 | ### 多重背包问题 140 | 141 | 有 $N$ 种物品和一个容量为 $V$ 的背包,第 $i$ 种物品有 $M_i$ 件,所占空间是 $C_i$(费用),价值是 $W_i$,求将哪些物品放入背包可使总价值最大。 142 | 143 | #### 状态转移方程 144 | 145 | $$ 146 | F[i, v] = \max\{ F[i-1, v-kC_i] + kW_i | 0 \le k \le M_i \} 147 | $$ 148 | 149 | #### 转化为 0-1 背包问题 150 | 151 | 将第 $i$ 种物品拆成费用为 $2^0 C_i, 2^1 C_i, \cdots, 2^{k-1} C_i, [M_i - (2^k-1)] C_i$ 的若干件物品,这些物品的费用总和为 $M_i C_i$。 152 | 153 | 伪码: 154 | 155 | ``` 156 | def MultiplePack(F, C, W, M) 157 | if M * C >= V 158 | CompletePack(F, C, W) 159 | return 160 | k = 1 161 | while k < M 162 | ZeroOnePack(k * C, k * W) 163 | M = M - k # 不断从 M 中去除 2 的幂 164 | k = 2 * k 165 | ZeroOnePack(M * C, M * W) # 剩余 M - (2^k - 1) 件 166 | ``` 167 | 168 | 时间复杂度优化为 $O(V \sum \log{M_i})$。 169 | -------------------------------------------------------------------------------- /专业课/数据结构与算法/README.md: -------------------------------------------------------------------------------- 1 | # 数据结构与算法 2 | 3 | ## 目录 4 | 5 | - [1 绪论](1 绪论.md) 6 | - 2 数据结构 7 | - [2.1 线性表](2.1 线性表.md) 8 | - [2.2 栈与队列](2.2 栈与队列.md) 9 | - [2.3 树与二叉树](2.3 树与二叉树.md) 10 | - [2.4 搜索树](2.4 搜索树.md) 11 | - [2.5 图](2.5 图.md) 12 | - [2.6 散列表](2.6 散列表.md) 13 | - [2.7 优先队列](2.7 优先队列.md) 14 | - [2.8 串](2.8 串.md) 15 | - [2.9 排序](2.9 排序.md) 16 | - [2.10 扩展](2.10 扩展.md) 17 | - 3 算法 18 | - [3.1 递归](3.1 递归.md) 19 | - [3.2 回溯](3.2 回溯.md) 20 | - [3.3 动态规划](3.3 动态规划.md) 21 | 22 | ## 参考资料 23 | 24 | - 邓俊辉,《数据结构》 25 | - Eric S. Roberts,《C++程序设计:基础、编程抽象与算法策略》 26 | - Tianyi Cui,《背包问题九讲》 27 | - 《王道考研2020数据结构考研复习指导》 28 | - CLRS,《算法导论》第3版 29 | - Robert Sedgewick,Kevin Wayne,《算法》第4版 30 | -------------------------------------------------------------------------------- /专业课/数据结构与算法/media/15656106316795.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/数据结构与算法/media/15656106316795.png -------------------------------------------------------------------------------- /专业课/数据结构与算法/media/15679091637879.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/数据结构与算法/media/15679091637879.jpg -------------------------------------------------------------------------------- /专业课/数据结构与算法/media/15680867861709.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/数据结构与算法/media/15680867861709.jpg -------------------------------------------------------------------------------- /专业课/数据结构与算法/media/15680868764827.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/数据结构与算法/media/15680868764827.jpg -------------------------------------------------------------------------------- /专业课/数据结构与算法/media/15680966698060.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/数据结构与算法/media/15680966698060.jpg -------------------------------------------------------------------------------- /专业课/数据结构与算法/media/15680968645866.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/数据结构与算法/media/15680968645866.jpg -------------------------------------------------------------------------------- /专业课/数据结构与算法/media/15682702489898.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/数据结构与算法/media/15682702489898.jpg -------------------------------------------------------------------------------- /专业课/数据结构与算法/media/15682702490320.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/数据结构与算法/media/15682702490320.jpg -------------------------------------------------------------------------------- /专业课/数据结构与算法/media/15682702490739.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/数据结构与算法/media/15682702490739.jpg -------------------------------------------------------------------------------- /专业课/数据结构与算法/media/15688574627705.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/数据结构与算法/media/15688574627705.jpg -------------------------------------------------------------------------------- /专业课/数据结构与算法/media/15691500419381.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/数据结构与算法/media/15691500419381.png -------------------------------------------------------------------------------- /专业课/数据结构与算法/media/15693050041271.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/数据结构与算法/media/15693050041271.jpg -------------------------------------------------------------------------------- /专业课/数据结构与算法/media/15693054373118.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/数据结构与算法/media/15693054373118.jpg -------------------------------------------------------------------------------- /专业课/数据结构与算法/media/15693081023758.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/数据结构与算法/media/15693081023758.jpg -------------------------------------------------------------------------------- /专业课/数据结构与算法/media/15693110603949.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/数据结构与算法/media/15693110603949.jpg -------------------------------------------------------------------------------- /专业课/数据结构与算法/media/15693113568077.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/数据结构与算法/media/15693113568077.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/10 系统级 IO.md: -------------------------------------------------------------------------------- 1 | # 第10章 系统级 I/O 2 | 3 | 每个进程开始时,三个打开的文件:stdin(0)、stdout(1)、stderr(2)。 4 | 5 | `open` 函数返回的描述符总是在进程中当前没有打开的最小描述符。 6 | 7 | 内核用来表示打开的文件的三个数据结构: 8 | 9 | - 描述符表:每个进程有独立的描述符表,表项是由进程打开的文件描述符来索引的,每个打开的描述符表项指向文件表中的一个表项 10 | - 文件表:打开文件的集合,所有进程共享,表项包括当前的文件位置、引用计数、指向 v-node 表中对应表项的指针。关闭一个描述符会减少相应文件表表项中的引用计数,减到 0 时删除文件表表项 11 | - v-node 表:所有进程共享,表项包含 stat 结构中的大多数信息,包括 `st_mode`、`st_size` 等 12 | 13 | ## 值得注意的题目 14 | 15 | P625-10.1、P636-10.2-10.3、P637-10.4-10.5、书后-10.6-10.9 16 | -------------------------------------------------------------------------------- /专业课/计算机系统基础/2 信息的处理和表示.md: -------------------------------------------------------------------------------- 1 | # 第2章 信息的处理和表示 2 | 3 | ## C 语言数据类型大小 4 | 5 | `long` 和指针类型在 32 位和 64 位上分别是 4 字节和 8 字节,其它数据类型在两个平台上相同。 6 | 7 | ## 字节序 8 | 9 | 对于 0x100 地址处的十六进制数 0x01234567,大端存储: 10 | 11 | | 内存地址 | ... | 0x100 | 0x101 | 0x102 | 0x103 | ... | 12 | | --- | --- | --- | --- | --- | --- | --- | 13 | | 值 | | 01 | 23 | 45 | 67 | | 14 | 15 | 小端存储: 16 | 17 | | 内存地址 | ... | 0x100 | 0x101 | 0x102 | 0x103 | ... | 18 | | --- | --- | --- | --- | --- | --- | --- | 19 | | 值 | | 67 | 45 | 23 | 01 | | 20 | 21 | 注意内存地址的顺序,并且整个数据的地址始终是各字节地址最小者。 22 | 23 | ## 位运算 24 | 25 | 异或运算的性质:`a ^ a = 0`、`a ^ a ^ b = b`、`x ^ y == (x & ~y) | (~x & y)`。 26 | 27 | 左移:右端补 0;逻辑右移:左端补 0;算数右移:左端补最高有效位。 28 | 29 | ## 整数 30 | 31 | C 语言标准中,除了固定大小的数据类型(如 `int32_t`)之外,只要求正负数对称的取值范围,比如 `char` 只要求 -127 到 127,但在实现中几乎全都是 -128 到 127(补码表示)。 32 | 33 | 补码定义:对位向量 $x = [x_{w-1}, x_{w-2}, \cdots, x_0]$,$B2T_w(x) = - x_{w-1} \cdot 2^{w-1} + \sum\limits_{i=0}^{w-2} x_i \cdot 2^i$。 34 | 35 | 整数的强制类型转换保持位模式不变,数值可能会改变。 36 | 37 | 补码转无符号:$T2U_w(x) = \begin{cases} x + 2^w, & x < 0 \\ x, & x \ge 0 \end{cases} = x + x_{w-1} \cdot 2^w$。 38 | 39 | 无符号转补码:$U2T_w(u) = \begin{cases} u, & u \le TMax_w \\ u - 2^w, & u > TMax_w \end{cases} = - u_{w-1} \cdot 2^w + u$。 40 | 41 | 当执行一个运算时,如果一个运算数是有符号的而另一个是无符号的,C 语言会隐式地将有符号数强制类型转换为无符号数,并假设两个数都是非负的,来执行这个运算。 42 | 43 | 扩展数字的位表示:无符号数——零扩展,补码——符号扩展。 44 | 45 | 截断数字:总是舍弃位模式中的高位,保留低位,然后再转回无符号数或补码。 46 | 47 | 求补码加法逆元的方法:按位取反再加一。 48 | 49 | 补码加法运算形成阿贝尔群,可交换可结合,故 `x + y - x == y`、`x + y - y == x`。 50 | 51 | 无符号数乘法和补码乘法在位级别等价。 52 | 53 | 整数除法总是舍入到零,也就是说,向下舍入正数,向上舍入负数。 54 | 55 | 对于无符号数,使用逻辑右移操作可以直接算出除以 2 的幂(向零舍入)。 56 | 57 | 对于补码,使用算数右移操作可产生 $\lfloor x/2^k \rfloor$,对于非负数来说这个值是正确的,对于负数来说舍入方向错误。可通过对负数加上“偏置”来修正舍入方向,具体地,`(x + (1 << k) - 1) >> k` 可以产生 $\lceil x/2^k \rceil$,原理是 $\lceil x/y \rceil = \lfloor (x+y-1)/y \rfloor$。综合起来,`(x < 0 ? x+(1<> k` 可对补码产生正确的 $x/2^k$。 58 | 59 | ## 浮点数 60 | 61 | 使用 IEEE 754 标准。 62 | 63 | 精度 | 符号位 | 阶码位 | 尾数位 64 | --- | --- | --- | --- 65 | 单精度 | 1 | 8 | 23 66 | 双精度 | 1 | 11 | 52 67 | 68 | 以单精度为例,有 4 种数值分类: 69 | 70 | ![](media/15694007840046.jpg) 71 | 72 | 其中包含三种情况: 73 | 74 | - 规格化的值:最普遍的情况。e 的位模式不全为 0,也不全为 1(对于单精度,exp 范围在 1~254),阶码值 $E=e-Bias$,Bias 是 $2^{k-1} - 1$(单精度 127,双精度 1023)的偏置。因此指数范围为单精度 -126~+127、双精度 -1022~+1023;f 表示带隐含 1 的尾数,即尾数值 $M=1+f$。 75 | - 非规格化的值:e 的位模式全为 0,阶码值 $E=1-Bias$,尾数值 $M=f$(不包含隐含 1)。 76 | - 特殊值:e 的位模式全为 1,当小数域全为 0 时,表示无穷,小数域不为 0 时,表示 NaN。 77 | 78 | 浮点数在数轴上分布的示例: 79 | 80 | ![](media/15694020982063.jpg) 81 | 82 | 一些取值的示例: 83 | 84 | ![](media/15694021393672.jpg) 85 | 86 | 可以发现,非规格化数,由于阶码是固定的,也就是说指数是固定的 $E=1-Bias$,从而小数部分的变化相当于线性的增减 $2^E$,所以非规格化数在数轴上是均匀等距分布的;而对于规格化数,每个指数的取值下,小数的可能的取值数是一样的,而指数变化表现为数量级的变化,因此指数值越大,浮点数在数轴上分布越分散。 87 | 88 | 非规格化数的阶码部分解释为 $E=1-Bias$ 可使得非规格化数能够平滑过渡到规格化数(最大的非规格化数的位模式加 1 得到最小的规格化数),这个巧妙之处在于,最大的非规格化数的尾数部分加 1 溢出,变为 0,而阶码部分也加 1,但偏置算法变了,于是阶码表示的指数值没有变,而尾数部分多了隐含 1,于是整个数平滑变化了。 89 | 90 | 单精度和双精度的一些边界值: 91 | 92 | ![](media/15694090876548.jpg) 93 | 94 | ![](media/15694091045481.jpg) 95 | 96 | 四种舍入方式: 97 | 98 | - 向偶数舍入(默认方式):试图向最接近的值舍入,如果数值在中间(距离两边相等),则向上或向下舍入使得结果的最低有效位是偶数。注意,这不同于“四舍五入”。 99 | - 向零舍入:正数向下舍入,负数向上舍入 100 | - 向下舍入 101 | - 向上舍入 102 | 103 | 向偶数舍入的好处:如果使用向上或向下舍入,则在计算一组数的平均值时,将会偏大或偏小,而使用向偶数舍入的话,50% 的可能性向上,50% 的可能性向下,在大多数情况下可以避免平均值的统计偏差。 104 | 105 | 向偶数舍入的例子: 106 | 107 | - 十进制:1.2349999 -> 1.23、1.2350001 -> 1.24、1.2350000 -> 1.24、1.2450000 -> 1.24。 108 | - 二进制:10.00011 -> 10.00、10.00110 -> 10.01、10.11100 -> 11.00、10.10100 -> 10.10。 109 | 110 | C 语言中涉及浮点数的强制类型转换规则: 111 | 112 | - int 转 float,数字不会溢出,但可能被舍入 113 | - int 或 float 转 double,能够保留精确数值 114 | - double 转 float,可能溢出为无穷大,也可能被舍入 115 | - float 或 double 转 int,向零舍入,若不能找到合理的近似(如数字过大),可能会溢出,且结果未定义 116 | 117 | ## 值得注意的题目 118 | 119 | P65-2.31-2.32、P71-2.39-2.40、P74-2.42、P75-2.44、P83-2.49、P84-2.52、P86-2.53 120 | -------------------------------------------------------------------------------- /专业课/计算机系统基础/6 存储器层次结构.md: -------------------------------------------------------------------------------- 1 | # 第6章 存储器层次结构 2 | 3 | ## 存储技术 4 | 5 | ### SRAM 6 | 7 | 双稳态,只要有电,就会保持它的值,受到干扰后可以自动恢复稳态。 8 | 9 | ### DRAM 10 | 11 | 每个位对应一个电容的充电,对干扰很敏感,不能自动恢复状态,必须周期性的读出重新写入来刷新,或者使用纠错码。 12 | 13 | #### DRAM 芯片 14 | 15 | 芯片中的单元(位)分成 d 个超单元,每个超单元由 w 个单元组成,超单元组织成 r 行 c 列的阵列(d=rc)。 16 | 17 | 内存控制器一次可以传送 w 位到每个 DRAM 芯片或从每个 DRAM 芯片传出 w 位。读超单元需要两步,先发行地址 i,称 RAS(行访问选通脉冲),这时 DRAM 芯片把第 i 行整个复制到内部行缓冲区,然后再发列地址 j,称 CAS,这时 DRAM 芯片从行缓冲区中复制出指定超单元的内容。RAS 和 CAS 共享一根地址线,所以必须分两步发送。 18 | 19 | #### 内存模块 20 | 21 | 多个 DRAM 芯片(这里以 8 个为例)同时连到内存控制器,在读字的时候,内存控制器算出字地址对应的超单元地址 (i, j),然后同时向 8 个 DRAM 芯片发送读取请求,读到的 8 个超单元(这里以 8 位超单元为例)合并为一个 64 位字。 22 | 23 | ### 磁盘 24 | 25 | 磁盘构造: 26 | 27 | ![](media/15696559995405.jpg) 28 | 29 | $磁盘容量 = \frac{字节数}{扇区} \times \frac{平均扇区数}{磁道} \times \frac{磁道数}{盘面} \times \frac{盘面数}{盘片} \times \frac{盘片数}{磁盘}$。 30 | 31 | #### 磁盘读写 32 | 33 | 任何时刻,读写头都位于同一个柱面上。 34 | 35 | 访问时间包括: 36 | 37 | - 寻道时间:平均寻道时间 $T_{avgseek}$ 通常为 3~9ms,最大寻道时间 $T_{maxseek}$ 可高达 20ms。 38 | - 旋转时间:最大旋转时间 $T_{maxrot} = \frac{1}{RPM} \times \frac{60s}{1min}$,平均旋转时间 $T_{avgrot}$ 是 $T_{maxrot}$ 的一半。 39 | - 传送时间:一个扇区的平均传送时间 $T_{avgtrans} = \frac{1}{平均扇区数/磁道} \times \frac{1}{RPM} \times \frac{60s}{1min}$,传送时间实际上就是访问完所有要读的扇区所需的旋转时间。当要读取的扇区很少时,几乎可以忽略不计。 40 | 41 | #### 逻辑磁盘块 42 | 43 | 现代磁盘对外呈现为连续的逻辑块,以扇区为单位,磁盘控制器维护逻辑块号和物理磁盘扇区之间的映射。 44 | 45 | #### DMA 46 | 47 | CPU 给磁盘控制器发出读命令后,不再需要 CPU 干涉,磁盘控制器可以自行读写总线,将读出的内容直接送入内存,称为 DMA(直接内存访问)。直到读取完成再通过中断通知 CPU。 48 | 49 | ### 固态硬盘 50 | 51 | 基于闪存。由 B 个块的序列组成,每个块由 P 页组成。数据读写以页为单位,只有在一页所属的块整个被擦除之后,才能写这一页。在大约进行 100000 次重复写之后,块就会磨损坏,从而不能再使用。 52 | 53 | ## 高速缓存 54 | 55 | 示例: 56 | 57 | ![](media/15696666477048.jpg) 58 | 59 | 参数: 60 | 61 | ![](media/15696664918738.jpg) 62 | 63 | ### 写策略 64 | 65 | 当要写一个已经缓存了的字 w 时(写命中),在 cache 更新后,更新 w 在更低一层的存储器中的副本的方法: 66 | 67 | - 直写(write-through):立即将 w 写到低一层中。优点是简单,缺点是每次写都会引起总线流量。 68 | - 写回(write-back):尽可能推迟更新,只有当替换算法要驱逐这个更新过的块时,才写入到低一层。优点是能利用局部性,显著减少总线流量,缺点是增加了复杂性,需要维护一个修改位(dirty bit)。 69 | 70 | 写不命中的处理方法: 71 | 72 | - 写分配(write-allocate):加载相应的低一层的块到 cache,然后更新这个 cache 块。优点是能利用写的空间局部性,缺点是每次不命中都会导致一个一个块从低一层传送到 cache。 73 | - 非写分配(non-write-allocate):避开 cache,直接把这个字写到低一层中。 74 | 75 | 直写策略通常和非写分配策略搭配(特点是都立即写低一层),写回策略通常和写分配策略搭配(特点是都优先写 cache,推迟写低一层)。 76 | 77 | ### 真实处理器的高速缓存 78 | 79 | - i-cache:只缓存指令 80 | - d-cache:只缓存数据 81 | - 统一的高速缓存:即缓存指令也缓存数据 82 | 83 | L1 缓存通常是区分 i-cache 和 d-cache 的,L2 和 L3 通常是统一的。区分 i-cache 和 d-cache 可以使处理器能够同时读一个指令字和一个数据字,并且可以针对不同的访问模式来优化这两个 cache,可以有不同的参数,除此之外,还可以确保指令访问和数据访问不会造成冲突不命中;代价是可能会引起容量不命中。 84 | 85 | ### 高速缓存参数对性能的影响 86 | 87 | Cache 大小的影响: 88 | 89 | - 较大的容量可能提高命中率 90 | - 较大的容量可能导致较慢的速度,增加命中时间 91 | 92 | 块大小的影响: 93 | 94 | - 较大的块能利用空间局部性,提高命中率 95 | - Cache 总大小固定时,块更大意味着行数更少,损害时间局部性比空间局部性更好的程序中的命中率 96 | - 较大的块导致更高的不命中惩罚,因为块越大传送所需时间越大 97 | 98 | 相联度的影响: 99 | 100 | - 较高的相联度降低了由于冲突不命中出现抖动的可能性 101 | - 较高的相联度需要较高的成本,每一行需要额外的标记位和控制逻辑 102 | - 较高的相联度会增加命中时间和不命中惩罚,因为匹配逻辑和选择牺牲行的逻辑更复杂 103 | - 通常会在不命中惩罚较低的地方使用较低的相联度,比如 L1 cache;在不命中惩罚较高的地方使用较高的相联度,比如虚拟内存 104 | 105 | 写策略的影响: 106 | 107 | - 直写策略比较容易实现;能使用独立于 cache 的写缓冲区来更新内存;读不命中开销较小,因为不会触发额外的内存写 108 | - 写回策略引起的内存和 cache 之间的数据传送较少,允许更多的内存的带宽用于执行 DMA 的 I/O 109 | - 层次结构越往下,传送时间增加,越可能使用写回而不是直写 110 | 111 | ## 值得注意的题目 112 | 113 | P410-6.3、P411-6.4、P433-6.11、P436-6.12-6.13-6.14-6.15-6.16、P442-6.17-6.18-6.19-6.20、P447-6.21、书后-6.25-6.26-6.29-6.30-6.31-6.32-6.33-6.34-6.35-6.36-6.38-6.39-6.40-6.41 114 | -------------------------------------------------------------------------------- /专业课/计算机系统基础/8 异常控制流.md: -------------------------------------------------------------------------------- 1 | # 第8章 异常控制流(ECF) 2 | 3 | - 硬件中断触发异常处理程序 4 | - 内核切换用户进程 5 | - 一个进程向另一个进程发送信号,触发信号处理函数 6 | - 通过非本地跳转执行到其他函数的任意位置 7 | 8 | ## 异常 9 | 10 | 异常处理完成后,根据引起异常的事件类型,分为三种情况: 11 | 12 | - 将控制返回给异常发生时正在执行的指令 $I_{curr}$ 13 | - 将控制返回给 $I_{next}$,即如果没有发生异常则应该执行的下一条指令 14 | - 终止被中断的程序 15 | 16 | 异常和过程调用的不同之处: 17 | 18 | - 过程调用时,在跳转到被调函数之前,将返回地址(下一条指令)入栈;异常时,返回地址可能是当前指令,也可能是下一条指令,也可能直接终止程序 19 | - 异常时一些额外的内容会被压栈,比如 EFLAGS 寄存器 20 | - 如果控制从用户程序转移到内核,内容被压到内核栈而不是用户栈 21 | - 异常处理程序运行在内核模式 22 | 23 | 异常的类别: 24 | 25 | ![](media/15714443422695.jpg) 26 | 27 | 系统调用属于陷阱异常(trap)。 28 | 29 | 虚拟内存缺页(page fault)属于故障异常(fault)。 30 | 31 | ## 进程 32 | 33 | 两个关键抽象: 34 | 35 | - 独立的逻辑控制流 36 | - 私有的地址空间 37 | 38 | 并发:两个逻辑控制流的执行在时间上有重叠。与处理器核数和计算机数无关。 39 | 40 | 并行:两个流并发地运行在不同的处理器核或计算机上。 41 | 42 | 进程上下文包括:通用寄存器、浮点寄存器、程序计数器、用户栈、状态寄存器、内核栈、各种内核数据结构(包括描述地址空间的页表、包含当前进程信息的进程表、包含已打开文件信息的文件表)。 43 | 44 | 上下文切换: 45 | 46 | 1. 保存当前进程上下文 47 | 2. 恢复某个先前被抢占的进程被保存的上下文 48 | 3. 将控制转移到新恢复的进程 49 | 50 | 上下文切换过程: 51 | 52 | ![](media/15714465776092.jpg) 53 | 54 | ## 进程控制 55 | 56 | 进程的三种状态: 57 | 58 | - 运行:要么在 CPU 上运行,要么等待被执行且最终会被内核调度 59 | - 停止:被挂起,且不会被调度。当收到 SIGSTOP、SIGTSTP、SIGTTIN、SIGTTOU 信号时,进程就会停止,直到收到 SIGCONT 信号继续运行 60 | - 终止:永远的停止。有三个原因:收到一个信号,该信号默认行为是终止程序;从主程序返回;调用 exit 函数 61 | 62 | `fork` 创建的子进程得到与父进程用户级虚拟地址空间相同但独立的副本,包括代码和数据段、堆、共享库、用户栈,子进程还获得父进程打开的所有文件描述符副本。父进程和新创建的子进程最大的区别是有不同的 PID。 63 | 64 | `fork` 调用一次,返回两次,父进程中返回子进程 PID,子进程中返回 0。 65 | 66 | `waitpid` 如果参数 pid > 0,则等待单独进程,如果 pid = -1,则等待所有子进程。默认情况下挂起调用进程的执行,直到等待集合中有进程终止。 67 | 68 | `waitpid` 的选项: 69 | 70 | - WNOHANG:无论是否有子进程终止,都立即返回,如果没有终止,返回 0 71 | - WUNTRACED:挂起调用进程,直到等待集合中有进程终止**或停止** 72 | - WCONTINUED:挂起调用进程,直到等待集合中一个正在运行的进程终止或一个停止的进程收到 SIGCONT 继续执行 73 | 74 | `wait(&status)` 等价于 `waitpid(-1, &status, 0)`。 75 | 76 | `sleep` 让调用进程休眠,返回还剩下的要休眠的秒数,如果不是 0,那么可能因为 `sleep` 函数被信号中断了。 77 | 78 | `pause` 让调用进程休眠,直到收到一个信号。 79 | 80 | `execve` 从指定路径加载并运行一个新程序,会覆盖当前进程的地址空间,而不是创建新进程。新的程序有相同的 PID,且继承了原进程已打开的文件描述符。 81 | 82 | `execve` 调用一次,从不返回。 83 | 84 | ## 信号 85 | 86 | 信号处理函数是用户层函数,是在用户模式运行的,而不是内核模式。 87 | 88 | 发出而没有被接收的信号称为待处理信号。对于一个进程,任何时刻,一种信号类型至多只会有一个待处理信号,接下来发送到这个进程的同类型信号会被直接丢弃,而不是排队等待。 89 | 90 | 一个进程可以选择性地阻塞接收某种信号。 91 | 92 | 待处理信号和阻塞是通过每个进程对应的一个 `pending` 和 `blocked` 位向量实现的。 93 | 94 | `kill` 函数发送指定信号给其他进程(或自己),如果 `pid` 参数大于 0,则直接发给该进程,如果等于 0,则发给调用进程所在进程组中的所有进程,如果小于 0,则发给进程组 `|pid|` 中的所有进程。 95 | 96 | `alarm` 函数安排内核在指定秒数后给自己发送 SIGALRM 信号,会取消之前已经设定的 alarm,并返回它还剩下的秒数,如果没有待处理 alarm,返回 0。 97 | 98 | 内核把进程从内核模式切换到用户模式时,检查未被阻塞的待处理信号,如果有,则选择一个接收。 99 | 100 | 不同信号的默认行为有: 101 | 102 | - 进程终止 103 | - 进程终止并转储内存 104 | - 进程停止直到被 SIGCONT 重启 105 | - 进程忽略该信号 106 | 107 | SIGSTOP 和 SIGKILL 的默认行为不可修改。 108 | 109 | `signal` 函数用来设置某个信号的处理函数。`handler` 参数 SIG_IGN 表示忽略,SIG_DFL 表示恢复默认行为。 110 | 111 | 信号处理函数返回时,返回到程序被信号中断时的下一条指令位置。 112 | 113 | 信号处理函数可以被其他信号中断,也就是说信号处理可嵌套。 114 | 115 | 隐式阻塞机制:内核默认阻塞当前正在处理的信号类型的待处理信号。 116 | 117 | 显式阻塞机制:可通过 `sigprocmask` 等相关函数来明确地阻塞和接触阻塞特定信号。 118 | 119 | ## 非本地跳转 120 | 121 | `setjmp` 在 `env` 参数中保存当前调用环境,以供后面的 `longjmp` 使用,并返回 0。 122 | 123 | `longjmp` 从 `env` 缓冲区恢复调用环境,然后触发最近一次 `setjmp` 调用再次返回,返回值为 `longjmp` 的 `retval` 参数。 124 | 125 | `setjmp` 调用一次,返回一次或多次;`longjmp` 调用一次,从不返回。 126 | 127 | ## 值得注意的题目 128 | 129 | P518-8.3、P520-8.4、P539-8.8、书后-8.10-8.11-8.12-8.13-8.14-8.15-8.16-8.18-8.21-8.23 130 | -------------------------------------------------------------------------------- /专业课/计算机系统基础/9 虚拟内存.md: -------------------------------------------------------------------------------- 1 | # 第9章 虚拟内存 2 | 3 | 虚拟内存三个重要能力: 4 | 5 | - 将主存看成是磁盘上的地址空间的高速缓存 6 | - 为每个进程提供一致的地址空间 7 | - 保护每个进程的地址空间不被其他进程破坏 8 | 9 | ## 寻址 10 | 11 | CPU 上的内存管理单元(MMU),利用存放在主存中的查询表来动态翻译虚拟地址,该表的内容由操作系统管理。 12 | 13 | ## 虚拟内存作为缓存工具 14 | 15 | DRAM 缓存不命中要由磁盘来服务,因此不命中开销巨大。于是虚拟页通常很大,4KB~2MB;并且使用全相联,即任何虚拟页都可以放在任何物理页中;不命中时的替换算法也更精密复杂;最后,总是使用写回(换出时写入磁盘),而不是直写。 16 | 17 | 页表项的含义: 18 | 19 | - 有效 && 地址非 0:CPU 完成地址翻译 20 | - 无效 && 地址非 0:虚拟页在硬盘上,OS 换页 21 | - 无效 && 地址是 0:未分配 22 | 23 | 局部性原则保证了在任意时刻,程序趋向于在较小的活动页面集合上工作,称为工作集或常驻集。在初始开销将工作集换入到内存中后,接下来对这个工作集的引用全部命中。 24 | 25 | 如果工作集超过了物理内存大小,会发生抖动,此时页面不断地换入换出。 26 | 27 | ## 内存映射 28 | 29 | 虚拟内存区域可以映射到两种类型的对象: 30 | 31 | - Linux 文件系统中的普通文件:按需页面调度,在第一次引用时调入内存 32 | - 匿名文件:直接在内存初始化一个页,而不是映射到磁盘文件 33 | 34 | ## 值得注意的题目 35 | 36 | P575-9.4、P593-9.6、P596-9.7、书后-9.11-9.12-9.13-9.15-9.16-9.19 37 | -------------------------------------------------------------------------------- /专业课/计算机系统基础/README.md: -------------------------------------------------------------------------------- 1 | # 计算机系统基础 2 | 3 | ## 目录 4 | 5 | - [2 信息的处理和表示](2%20信息的处理和表示.md) 6 | - [3 程序的机器级表示](3%20程序的机器级表示.md) 7 | - [6 存储器层次结构](6%20存储器层次结构.md) 8 | - [8 异常控制流](8%20异常控制流.md) 9 | - [9 虚拟内存](9%20虚拟内存.md) 10 | - [10 系统级 I/O](10%20系统级%20IO.md) 11 | - [重要图示](重要图示.md) 12 | - [本科课程资料](本科课程资料) 13 | - [本科作业](本科作业.pdf) 14 | 15 | ## 参考资料 16 | 17 | - Randal E.Bryant,David O'Hallaron,《深入理解计算机系统》第3版 18 | -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15694007840046.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15694007840046.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15694020982063.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15694020982063.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15694021393672.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15694021393672.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15694090876548.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15694090876548.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15694091045481.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15694091045481.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15696559995405.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15696559995405.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15696664918738.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15696664918738.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15696666477048.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15696666477048.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15714443422695.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15714443422695.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15714465776092.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15714465776092.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15723944115795.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15723944115795.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15723945443198.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15723945443198.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15723962201121.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15723962201121.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15723962368661.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15723962368661.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15723962506586.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15723962506586.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15724032647476.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15724032647476.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15724035265021.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15724035265021.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15724158467942.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15724158467942.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15725071164541.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15725071164541.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15725074231716.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15725074231716.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15725075744677.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15725075744677.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15725093926392.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15725093926392.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15725102973324.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15725102973324.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15725192403749.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15725192403749.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15728458695230.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15728458695230.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/media/15728462751605.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/media/15728462751605.jpg -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科作业.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科作业.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/2018_schedule_files/ics.css: -------------------------------------------------------------------------------- 1 | table.calendar { 2 | font-family: arial, helvetica; 3 | font-size: 10pt; 4 | empty-cells: show; 5 | border: 1px solid #000000; 6 | } 7 | table.calendar tr td { 8 | border: 1px solid #aaaaaa; 9 | } 10 | table.calendar tr { 11 | vertical-align: top; 12 | height: 75px; 13 | background: #EEEEEE; 14 | } 15 | table.calendar tr.header { 16 | text-align: center; 17 | height: auto; 18 | font-weight: bold; 19 | } 20 | .Preparation {color: #003399} 21 | .Due { 22 | color: #aa0000; 23 | font-weight: bold; 24 | } 25 | .ImportantDate { 26 | color: #ff0000; 27 | font-weight: bold; 28 | font-style: italic; 29 | } 30 | 31 | .DateFormat {font-size: 16pt} 32 | .ClassDesc { 33 | font-size: 9px; 34 | font-style: italic; 35 | } 36 | 37 | .menuHead { 38 | text-align: center; 39 | padding-top: 8px; 40 | padding-bottom: 8px; 41 | } 42 | 43 | .menuItem { 44 | font-family: "Trebuchet MS", Arial, Verdana; 45 | color: rgb(255, 255, 255); 46 | text-decoration: none; 47 | font-weight: bold; 48 | font-size: 16px; 49 | } 50 | 51 | .titleHead { 52 | font-family: "Trebuchet MS", Arial, Verdana; 53 | font-size: 28px; 54 | } 55 | 56 | .titleHead.header{ 57 | padding-left: 58px; 58 | padding-top: 2px; 59 | color: white; 60 | } 61 | -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2011/ics1.fe.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2011/ics1.fe.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2011/ics1.fe.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2011/ics1.fe.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2011/ics1.me1.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2011/ics1.me1.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2011/ics1.me1.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2011/ics1.me1.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2011/ics1.me2.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2011/ics1.me2.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2011/ics1.me2.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2011/ics1.me2.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2011/ics2.fe.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2011/ics2.fe.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2011/ics2.fe.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2011/ics2.fe.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2011/ics2.me.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2011/ics2.me.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2011/ics2.me.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2011/ics2.me.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2012/ics1.fe.A.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2012/ics1.fe.A.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2012/ics1.fe.A.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2012/ics1.fe.A.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2012/ics1.fe.B.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2012/ics1.fe.B.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2012/ics1.fe.B.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2012/ics1.fe.B.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2012/ics1.me.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2012/ics1.me.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2012/ics1.me.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2012/ics1.me.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2012/ics2.fe.A.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2012/ics2.fe.A.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2012/ics2.fe.A.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2012/ics2.fe.A.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2012/ics2.fe.B.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2012/ics2.fe.B.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2012/ics2.fe.B.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2012/ics2.fe.B.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2012/ics2.me.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2012/ics2.me.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2012/ics2.me.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2012/ics2.me.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2013/ics1.fe.A.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2013/ics1.fe.A.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2013/ics1.fe.A.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2013/ics1.fe.A.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2013/ics1.fe.B.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2013/ics1.fe.B.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2013/ics1.fe.B.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2013/ics1.fe.B.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2013/ics1.me.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2013/ics1.me.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2013/ics1.me.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2013/ics1.me.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2013/ics2.fe.A.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2013/ics2.fe.A.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2013/ics2.fe.A.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2013/ics2.fe.A.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2013/ics2.fe.B.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2013/ics2.fe.B.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2013/ics2.fe.B.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2013/ics2.fe.B.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2013/ics2.me.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2013/ics2.me.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2013/ics2.me.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2013/ics2.me.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2014/ics1.fe.A.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2014/ics1.fe.A.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2014/ics1.fe.A.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2014/ics1.fe.A.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2014/ics1.fe.B.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2014/ics1.fe.B.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2014/ics1.fe.B.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2014/ics1.fe.B.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2014/ics1.me.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2014/ics1.me.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2014/ics1.me.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2014/ics1.me.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2014/ics2.fe.A.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2014/ics2.fe.A.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2014/ics2.fe.A.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2014/ics2.fe.A.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2014/ics2.fe.B.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2014/ics2.fe.B.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2014/ics2.fe.B.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2014/ics2.fe.B.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2014/ics2.me.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2014/ics2.me.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2014/ics2.me.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2014/ics2.me.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2015/ics1.fe.A.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2015/ics1.fe.A.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2015/ics1.fe.A.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2015/ics1.fe.A.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2015/ics1.fe.B.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2015/ics1.fe.B.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2015/ics1.fe.B.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2015/ics1.fe.B.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2015/ics1.me.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2015/ics1.me.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2015/ics1.me.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2015/ics1.me.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2016/ics1.fe.A.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2016/ics1.fe.A.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2016/ics1.fe.A.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2016/ics1.fe.A.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2016/ics1.fe.B.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2016/ics1.fe.B.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2016/ics1.fe.B.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2016/ics1.fe.B.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2016/ics1.me.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2016/ics1.me.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2016/ics1.me.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2016/ics1.me.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2016/ics2.fe.A.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2016/ics2.fe.A.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2016/ics2.fe.A.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2016/ics2.fe.A.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2016/ics2.fe.B.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2016/ics2.fe.B.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2016/ics2.fe.B.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2016/ics2.fe.B.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2016/ics2.me.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2016/ics2.me.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2016/ics2.me.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2016/ics2.me.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2017/ics1.fe.A.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2017/ics1.fe.A.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2017/ics1.fe.A.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2017/ics1.fe.A.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2017/ics1.fe.B.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2017/ics1.fe.B.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2017/ics1.fe.B.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2017/ics1.fe.B.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2017/ics1.me.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2017/ics1.me.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2017/ics1.me.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2017/ics1.me.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2017/ics2.fe.A.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2017/ics2.fe.A.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2017/ics2.fe.A.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2017/ics2.fe.A.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2017/ics2.fe.B.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2017/ics2.fe.B.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2017/ics2.fe.B.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2017/ics2.fe.B.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2017/ics2.me.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2017/ics2.me.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2017/ics2.me.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2017/ics2.me.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2018/ics1.fe.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2018/ics1.fe.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2018/ics1.fe.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2018/ics1.fe.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2018/ics1.me.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2018/ics1.me.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2018/ics1.me.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2018/ics1.me.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2018/ics2.fe.A.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2018/ics2.fe.A.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2018/ics2.fe.A.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2018/ics2.fe.A.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2018/ics2.fe.B.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2018/ics2.fe.B.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2018/ics2.fe.B.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2018/ics2.fe.B.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2018/ics2.me.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2018/ics2.me.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2018/ics2.me.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2018/ics2.me.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2019/ics2.fe.A.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2019/ics2.fe.A.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2019/ics2.fe.A.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2019/ics2.fe.A.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2019/ics2.fe.B.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2019/ics2.fe.B.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2019/ics2.fe.B.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2019/ics2.fe.B.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2019/ics2.me.paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2019/ics2.me.paper.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/exams/2019/ics2.me.sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/exams/2019/ics2.me.sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-1-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-1-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-1.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-10-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-10-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-10.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-10.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-11-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-11-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-11.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-11.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-12-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-12-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-12.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-12.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-13-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-13-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-13.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-13.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-2-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-2-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-2.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-3-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-3-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-3.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-4-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-4-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-4.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-5-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-5-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-5.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-5.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-6-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-6-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-6.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-6.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-7-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-7-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-7.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-7.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-8-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-8-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-8.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-8.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-9-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-9-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-1-9.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-1-9.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-1-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-1-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-1.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-10-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-10-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-10.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-10.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-11-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-11-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-11.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-11.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-12-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-12-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-12.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-12.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-13-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-13-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-13.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-13.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-14-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-14-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-14.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-14.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-2-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-2-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-2.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-3-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-3-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-3.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-4-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-4-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-4.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-5-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-5-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-5.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-5.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-6-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-6-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-6.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-6.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-7-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-7-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-7.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-7.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-8-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-8-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-8.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-8.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-9-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-9-sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/hws/hw-2-9.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/hws/hw-2-9.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/labs/lab1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/labs/lab1.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/labs/lab10.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/labs/lab10.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/labs/lab2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/labs/lab2.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/labs/lab3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/labs/lab3.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/labs/lab4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/labs/lab4.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/labs/lab5.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/labs/lab5.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/labs/lab6.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/labs/lab6.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/labs/lab7.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/labs/lab7.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/labs/lab8.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/labs/lab8.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/labs/lab9.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/labs/lab9.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/labs/waside-blocking.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/labs/waside-blocking.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-1-intro.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-1-intro.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-10-func.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-10-func.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-11-array.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-11-array.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-12-struct.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-12-struct.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-13-pointer.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-13-pointer.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-14-float.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-14-float.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-15-fpinstr.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-15-fpinstr.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-16-risc.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-16-risc.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-17-hcl.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-17-hcl.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-18-seq.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-18-seq.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-19-seq2.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-19-seq2.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-2-bits.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-2-bits.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-20-seq3.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-20-seq3.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-21-pipe.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-21-pipe.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-22-chazard.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-22-chazard.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-23-exception.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-23-exception.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-24-mio.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-24-mio.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-25-tuning.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-25-tuning.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-26-opt.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-26-opt.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-27-dma.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-27-dma.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-28-sma.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-28-sma.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-29-misc.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-29-misc.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-3-bops.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-3-bops.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-4-encoding.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-4-encoding.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-5-arith.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-5-arith.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-6-x86.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-6-x86.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-7-mov.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-7-mov.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-8-cc.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-8-cc.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/1-9-jmp.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/1-9-jmp.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-1-ram.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-1-ram.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-10-process.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-10-process.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-11-wait.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-11-wait.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-12-signal.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-12-signal.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-13-ljmp.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-13-ljmp.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-14-io.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-14-io.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-15-rio.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-15-rio.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-16-network.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-16-network.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-17-socket.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-17-socket.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-18-web.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-18-web.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-19-con.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-19-con.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-2-locality.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-2-locality.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-20-sync.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-20-sync.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-21-issue.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-21-issue.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-22-vm.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-22-vm.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-23-trans.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-23-trans.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-24-intel.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-24-intel.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-25-linux.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-25-linux.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-26-replacement.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-26-replacement.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-27-lock.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-27-lock.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-28-sched.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-28-sched.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-3-cache.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-3-cache.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-4-mics.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-4-mics.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-5-linking.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-5-linking.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-6-symbol.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-6-symbol.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-7-relocation.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-7-relocation.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-8-dl.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-8-dl.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/slides/2-9-os.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/slides/2-9-os.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/tutorials/debian.step-by-step.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/tutorials/debian.step-by-step.pptx -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/tutorials/practice/ICS1-week15.Sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/tutorials/practice/ICS1-week15.Sol.pdf -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/tutorials/practice/ICS1-week6.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/tutorials/practice/ICS1-week6.ppt -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/tutorials/tutorial-asm.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/tutorials/tutorial-asm.pptx -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/tutorials/tutorial-debug.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/tutorials/tutorial-debug.pptx -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/tutorials/tutorial-linux.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/tutorials/tutorial-linux.pptx -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/tutorials/tutorial-tools.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/tutorials/tutorial-tools.pptx -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/tutorials/vmware.step-by-step.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/tutorials/vmware.step-by-step.pptx -------------------------------------------------------------------------------- /专业课/计算机系统基础/本科课程资料/tutorials/y86asm-intro.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/计算机系统基础/本科课程资料/tutorials/y86asm-intro.pptx -------------------------------------------------------------------------------- /专业课/计算机系统基础/重要图示.md: -------------------------------------------------------------------------------- 1 | - P29 大小端序 2 | - P61 无符号加法 3 | - P64 补码加法 4 | - P78 IEEE 浮点数位结构 5 | - P80 规格化和非规格化数数轴 6 | - P164 栈帧结构 7 | - P166 call 和 ret 8 | - P172 函数 call_proc 的栈帧 9 | - P402 DRAM 读取 10 | - P408 磁盘构造 11 | - P413 磁盘读 12 | - P421 存储器层次结构 13 | - P426 高速缓存的通用组织 14 | - P428 直接映射 15 | - P432 为什么用中间位做索引 16 | - P433 组相联 17 | - P445 存储器山 18 | - P448 矩阵乘法的不同版本 19 | - P510 进程地址空间 20 | - P511 进程上下文切换 21 | - P515 进程图 22 | - P564 缺页处理 23 | - P566 进程独立的地址空间 24 | - P567 页面级内存保护 25 | - P568 地址翻译 26 | - P570 地址翻译+高速缓存 27 | - P571 TLB 28 | - P583 共享对象 29 | - P584 私有对象的写时复制 30 | - P585 加载器映射用户地址空间区域 31 | - P589 双字对齐的 malloc 和 free 32 | - P592 简单的堆块格式 33 | - P593 隐式空闲链表 34 | - P595 使用边界标记的堆块格式 35 | - P603 显示空闲链表 36 | - P608 标记清除 37 | - P635、P636 描述符表、文件表、v-node 表 38 | - P637 文件重定向 39 | -------------------------------------------------------------------------------- /专业课/软件工程/1 软件过程.md: -------------------------------------------------------------------------------- 1 | # 软件过程 2 | 3 | 软件过程是指软件生存周期中的一系列相关过程。其中,过程是活动的集合,活动时任务的集合,任务要起到把输入加工成输出的作用。活动的执行可以是顺序的、迭代的、并行的、嵌套的,或是有条件引发的。 4 | 5 | ## 软件生命周期模型 6 | 7 | ### 瀑布模型 8 | 9 | 又称线性顺序模型。 10 | 11 | 需求分析、设计、实现、测试、交付、使用和维护依次顺序执行。每个阶段结束处设有评审,通过评审才能进入下一阶段。 12 | 13 | 缺点是太过理想化,不能适应快速变化的现实环境。 14 | 15 | 以下情况下**不适合**使用瀑布模型: 16 | 17 | - 需求未被充分理解 18 | - 系统太大而不能一次开发完成 19 | - 实现打算采用的技术迅速发生变化 20 | - 需求迅速发生变化 21 | - 资源有限,如工作人员/资金不足 22 | - 无法利用中间产品 23 | 24 | ### 增量模型 25 | 26 | ![](media/15737127724750.jpg) 27 | 28 | 又称有计划的产品改进模型。从一组给定的需求开始,通过构造一系列可执行版本来实施开发活动。第一个版本纳入部分需求,下一个版本纳入更多需求,以此类推。分析和架构设计只需要进行一次,而软件详细设计、编码、测试、集成、验收在每个版本中都需要进行。 29 | 30 | 相比瀑布模型的特点: 31 | 32 | - 多个版本可以并行开发 33 | - 每个版本都是可运行的产品 34 | - 需求在开发早期是明确的 35 | 36 | 以下情况下**不适合**使用增量模型: 37 | 38 | - 需求未被很好的理解 39 | - 突然提出一些功能 40 | - 实现打算采用的技术迅速发生变化 41 | - 需求迅速发生变化 42 | - 在较长时间内没有充足资源保证 43 | 44 | 以下情况下**适合**使用增量模型: 45 | 46 | - 需要早期获得功能 47 | - 中间产品可以使用 48 | - 系统被自然地分为增量 49 | - 工作人员/资金可逐步增加 50 | 51 | ### 演化模型 52 | 53 | ![](media/15737131758960.jpg) 54 | 55 | 只要核心需求能够被很好理解,就可以进行渐进式开发,其余需求在后续迭代中逐渐定义和实现,这种过程模型称为演化模型。 56 | 57 | 特点: 58 | 59 | - 渐进地开发各可执行版本,逐步完善 60 | - 支持并行开发,增量式交付产品 61 | - 通过迭代缓解技术风险和系统集成风险 62 | - 只需要理解核心需求即可开始开发 63 | - 允许需求变更 64 | 65 | 演化模型是目前最广泛使用的模型,包括统一软件过程(RUP)、许多敏捷过程(XP、Scrum 等)。 66 | 67 | 演化模型的缺点是复杂,比较难规划和控制迭代,这也是其成功的关键。 68 | 69 | #### 迭代化开发原则 70 | 71 | 迭代的安排和计划是由风险驱动的。 72 | 73 | #### 原型模型 74 | 75 | ![](media/15737137645499.jpg) 76 | 77 | 对原型有两种处理方式: 78 | 79 | - 抛弃式原型 80 | - 演化式原型:原型作为最终产品的一部分,经用户试用反馈后不断演进,最终成为完整产品。通常需要经过多个迭代 81 | 82 | 原型模型可能存在的问题: 83 | 84 | - 不切实际的进度和费用预算:用户可能会以为开发完整产品也和开发原型一样简单快速 85 | - 建立原型耗时太长 86 | - 设计欠佳:设计不能适应用户的需求变更 87 | 88 | #### 螺旋模型 89 | 90 | ![](media/15737140919222.jpg) 91 | 92 | 螺旋模型将原型的迭代特征与瀑布模型中控制和系统化的方面结合起来,并增加了风险分析,使软件的快速迭代开发成为可能。 93 | 94 | ## 统一软件过程 RUP 95 | 96 | 是一个风险驱动的、基于 UML 和构建式架构的迭代、演化开发过程。 97 | 98 | ![](media/15737149604549.jpg) 99 | 100 | 把软件开发生命周期分为四个阶段: 101 | 102 | - 先启(Inception):所有项目干系人之间就项目目标达成共识 103 | - 精化(Elaboration)建立软件架构基线,解决技术风险,为软件的详细设计和实现提供稳定基础。精化的结束是架构里程碑 104 | - 构建(Construction):基于已建立基线的架构完成开发。构建的结束是软件初始能力里程碑 105 | - 产品化(Transition):确保最终用户可以使用软件。产品化的结束是软件产品发布里程碑 106 | 107 | 每个阶段都可以细分为若干迭代,每个迭代的结束标志是一个技术里程碑(小里程碑)。 108 | 109 | ## 敏捷过程 110 | 111 | 强调以人为本,快速响应需求和变化,把注意力集中到项目主要目标——可用软件上,在保证质量的情况下,做到文档适度。 112 | 113 | 基于适应而非预测,弱化了针对未来需求的设计而注重当前系统的简化,依赖重构来适应需求的变化,通过快速、短迭代的开发,不断产出和演化可运行软件。 114 | 115 | 适合采用敏捷过程的情况: 116 | 117 | - 需求不确定 118 | - 有责任感和积极向上的开发人员 119 | - 用户容易沟通并能参与 120 | - 小于 10 个人的项目团队 121 | 122 | ### XP 123 | 124 | 价值目标:沟通、简化、反馈、勇气。 125 | 126 | XP 生命周期中的四个基本活动:编码、测试、聆听、设计。 127 | 128 | 状态变迁图: 129 | 130 | ![](media/15737163108960.jpg) 131 | 132 | 计划/反馈循环: 133 | 134 | ![](media/15737166601416.jpg) 135 | 136 | XP 的特点是,首先开发最重要的特性,迅速向客户提供所需功能,随着代码的演进通过重构来满足新的需求,从而将整个项目失败的风险减到最小。从需求定义开始,省略了常规的系统和架构设计步骤,直接进入编码迭代,编码和设计同时进行,并且特别强调测试的重要性。 137 | 138 | XP 弱化了针对未来需求的设计,而是注重当前的简化。 139 | 140 | ### Scrum 141 | 142 | XP 关注的是敏捷软件开发技术,而 Scrum 关注的是敏捷软件开发管理。 143 | 144 | Scrum 方法将传统开发中的分析、设计、实现视为一个黑箱,认为应加强黑箱内部的混沌性,使项目组工作在混沌的边缘,充分发挥人的创造性。 145 | 146 | 核心准则是自我管理和迭代开发。 147 | 148 | #### 自我管理 149 | 150 | Scrum 团队自组织、跨职能,以迭代的方式工作。每个 Scrum 团队有三个角色: 151 | 152 | - Scrum 主管(相当于项目经理):负责确保成员都能理解并遵循过程,通过指引让 Scrum 团队更高效地工作 153 | - 产品负责人(Product Owner):定义和维护产品需求,负责最大化 Scrum 团队的工作价值 154 | - 团队:负责具体工作,理想规模是 5~9 个人 155 | 156 | Scrum 过程中没有中心控制者,强调发挥个人的创造力和能动性,鼓励团队成员进行自我管理,使用自己认为最好的方法和工具进行开发。 157 | 158 | #### 迭代开发 159 | 160 | Scrum 是一种演进型的迭代开发过程,核心是 Sprint,即贯穿于开发工作着保持不变的一个月(或更短时间的)迭代。每个 Sprint 都会提交一个经测试可发布的软件产品增量版本。 161 | -------------------------------------------------------------------------------- /专业课/软件工程/2 软件建模.md: -------------------------------------------------------------------------------- 1 | # 软件建模 2 | 3 | ## 模型和建模 4 | 5 | 模型的作用: 6 | 7 | - 在正式启动项目之前,通过模型的分析和实验,能发现设计中的错误和遗漏,降低项目的风险 8 | - 通过模型,研究和比较不同的解决方案,从而选出最佳方案 9 | - 用于同项目组其他成员、客户、领导等相关人员之间交流 10 | - 指导和促进工程的实现 11 | 12 | 有用模型的特征: 13 | 14 | - 抽象性 15 | - 可理解性 16 | - 精确性 17 | - 说明性 18 | - 经济性 19 | 20 | 模型的三个层次: 21 | 22 | - 计算无关模型(CIM):描述系统的用途,而不是如何应用,例如系统的业务模型 23 | - 平台无关模型(PIM):描述系统该如何创建,不涉及具体的实现技术,例如系统的分析模型 24 | - 平台相关模型(PSM):关联于某一具体的技术平台,例如系统的设计模型 25 | 26 | ## 结构化方法 27 | 28 | 核心是数据和处理,以数据流为中心,构建软件的分析模型、设计模型、实现模型。基于模块化思想,采用“自顶向下,逐步求精”的技术对系统进行划分,包括结构化分析、结构化设计、结构化编程。 29 | 30 | ### 结构化分析 31 | 32 | 模型的核心是数据字典(DD),它是系统所涉及的各种数据对象的总和。从 DD 出发可构建三种图: 33 | 34 | - 实体关系图(ERD):描述数据对象之间的关系,是软件的数据模型 35 | - 数据流图(DFD):指明系统中的数据是如何流动和变换的,并描述数据流变换的功能,与加工说明(PSPEC)一起构成软件的功能模型 36 | - 状态变迁图(STD):指明系统在外部事件的作用下将会如何动作,表明了系统的各状态及各状态间的变迁,是软件的行为模型 37 | 38 | #### 实体关系图 39 | 40 | ![](media/15758731905772.jpg) 41 | 42 | #### 数据流图 43 | 44 | 顶层 DFD 中,把整个系统当成一个大的加工过程,识别系统的源和宿,并标明系统的输入输出数据流: 45 | 46 | ![](media/15758734520982.jpg) 47 | 48 | 0 层 DFD 中,把系统分解为主要的几大加工过程,定义其共同使用的数据文件(下图中的考生名册): 49 | 50 | ![](media/15758735342783.jpg) 51 | 52 | 继续分解可得到 1 层 DFD: 53 | 54 | ![](media/15758735622804.jpg) 55 | 56 | ### 结构化设计 57 | 58 | 分为结构设计(概要设计)和过程设计(详细设计)。是把用 DFD 表示的分析模型转换为以结构图(SC)表示的设计模型。 59 | 60 | #### 结构图 61 | 62 | 第一级分解: 63 | 64 | ![](media/15758739308694.jpg) 65 | 66 | 第二级分解: 67 | 68 | ![](media/15758739417203.jpg) 69 | 70 | ## 面向对象方法 71 | 72 | 核心概念:对象、类、继承、消息。 73 | 74 | 基本原则: 75 | 76 | - 抽象 77 | - 封装:将对象特征的实现方式隐藏在公共接口之后的黑盒中,从而带来“多态”,即一个接口可以有多种实现 78 | - 模块化:通过分解技术将软件划分为一组高内聚、低耦合的模块,以降低软件的复杂性,减少开发成本 79 | - 层次:不同级别的抽象组成的树状结构 80 | 81 | ### 面向对象分析 82 | 83 | OOA 的基本步骤: 84 | 85 | - 对软件的功能进行用例建模 86 | - 识别出软件的关键抽象,即概念类,用类图建立概念模型 87 | - 对每个用例进行用例分析,识别出分析类,建立类图和交互图 88 | 89 | ### 面向对象设计 90 | 91 | OOD 和 OOA 采用相同的表示法和模型结构,这是面向对象方法优于结构化方法的重要因素之一。从 OOA 到 OOD 不存在转换,只需要进行局部的修改或调整,并增加与实现有关的独立部分。因此两者能够紧密衔接,大大降低从 OOA 过渡到 OOD 的难度、工作量和出错率。 92 | 93 | OOD 的基本步骤: 94 | 95 | - 从多个视图设计软件的架构,并选定设计模式。常见的架构视图包括逻辑视图、进程视图、开发视图、物理视图、用例视图、数据视图 96 | - 在架构设计的基础上,确定子系统之间的接口,并对子系统内部进行设计 97 | - 进行详细的类设计和优化 98 | 99 | ### 与结构化方法的比较 100 | 101 | 相同点:采用分解和抽象技术,以模块化原则来开发软件、追求模块的高内聚和低耦合 102 | 103 | 不同点: 104 | 105 | - 结构化方法着眼于过程抽象和数据抽象,OO 方法则有效集成了这两种抽象,将数据和操作封装成了对象 106 | - OO 方法在模块信息隐藏和软件复用方面做得更好,从而更适合开发大型复杂的软件系统 107 | - OO 方法中,分析和设计阶段采用一致的概念和表示法,使两个阶段能平滑过渡,降低开发成本 108 | 109 | ## 基于构件的开发方法 110 | 111 | 通过构造和组装可复用构件来开发新系统。 112 | 113 | 构件是软件复用的重要手段,是核心和基础。构件包含构件规约(接口)和构件实现。 114 | 115 | ### 与面向对象方法的比较 116 | 117 | 相同点: 118 | 119 | - 构件和对象都必须同时包含数据和操作,具有相同的外部特征 120 | - OO 方法的一些设计原则对基于构件的方法也同样重要 121 | 122 | 不同点: 123 | 124 | - 构件在粒度上比类更粗,通常会包含多个类 125 | - 构件的内部设计可以是面向对象的,也可以不是,只要保证外部特征具有很好的封装性、抽象性和通用性即可 126 | - 与 OO 方法相比,基于构件的方法更注重黑盒复用 127 | 128 | ## 面向服务方法 129 | 130 | ## 模型驱动开发方法 131 | 132 | ## 形式化方法 133 | 134 | 是一种用数学理论进行建模的方法。 135 | 136 | 优点: 137 | 138 | - 无二义性 139 | - 一致性 140 | - 正确性 141 | - 完整性 142 | -------------------------------------------------------------------------------- /专业课/软件工程/3 需求工程.md: -------------------------------------------------------------------------------- 1 | # 需求工程 2 | 3 | 需求就是系统必须符合的条件或能力。 4 | 5 | 软件需求的 FURPS+ 模型: 6 | 7 | - 功能性(Funtionality):特性、功能和安全性 8 | - 易用性(Usability):用户友好,软件使用起来简单易上手 9 | - 可靠性(Reliability):软件无故障执行一段时间的概率,相关指标有故障频率、可恢复性、可预见性、准确性、平均失效间隔时间(MTBF) 10 | - 性能(Performance):速度、效率、可用性、准确性、吞吐量、响应时间、资源使用情况 11 | - 可支持性(Supportability):系统测试、安装、扩展、移植、本地化等工作所需的工作量大小 12 | 13 | 其中,URPS 合称为非功能需求,或软件质量属性,FURPS+ 的 + 是一些补充需求,例如: 14 | 15 | - 设计约束:指不允许有一个以上设计选项的需求,例如必须采用某种算法、某种数据库系统等 16 | - 实现需求:规定了系统的编码或构建,如所需标准、编程语言、数据库完整性策略、资源限制和操作环境等 17 | - 接口需求:规定了系统必须与之交互的外部软件或硬件,及这种交互所采用的格式、时间等约束 18 | - 物理需求:规定了系统必须具备的物理特征,可用来代表硬件要求,例如物理网络配置要求 19 | 20 | 需求的三个层次: 21 | 22 | - 项目干系人需求:即原始需求 23 | - 前景文档:即概要需求 24 | - 软件需求规约:即正式的详细软件需求 25 | 26 | 单个需求规格说明应具有的特性: 27 | 28 | - 完整性 29 | - 正确性 30 | - 可行性 31 | - 必要性 32 | - 划分优先级 33 | - 无二义性 34 | - 可验证性 35 | 36 | 多个需求规格说明应具有的特性: 37 | 38 | - 完整性 39 | - 一致性 40 | - 可修改性 41 | - 可跟踪性 42 | 43 | 需求工程的 5 个阶段: 44 | 45 | - 需求获取 46 | - 需求分析 47 | - 需求定义 48 | - 需求验证 49 | - 需求管理 50 | 51 | 需求分析建模的原则: 52 | 53 | - 必须描述并理解问题的信息域 54 | - 必须确定软件所要实现的功能 55 | - 必须描述软件的行为(作为外部事件的结果) 56 | - 描述信息、功能和行为的模型必须以一种能提示分层(或者分级)细节的方式分解开来,即必须对复杂问题做分解 57 | - 分析任务应该从本质信息转向实现细节 58 | 59 | 需求验证手段:需求评审、原型确认 60 | 61 | 原型确认根据目的划分: 62 | 63 | - 水平原型确认:水平原型也称行为原型,例如用户界面原型 64 | - 垂直原型确认:也称结构化原型或概念验证,相比水平原型,除了导航功能,还实现了部分应用功能。垂直原型更多用于设计验证而不是需求开发 65 | 66 | 原型确认根据用途划分: 67 | 68 | - 抛弃型原型确认 69 | - 演进型原型确认 70 | -------------------------------------------------------------------------------- /专业课/软件工程/4 面向对象分析.md: -------------------------------------------------------------------------------- 1 | # 面向对象分析 2 | 3 | ## 用例图 4 | 5 | ![](media/15739719340379.jpg) 6 | 7 | 基本元素: 8 | 9 | - 执行者:与系统交互的实体,可以是人、外界的硬件设备或系统 10 | - 用例:代表执行者希望系统为他们做什么,用椭圆表示。从执行者看来,用例必须是一个完整的活动流程 11 | - 关系:包括执行者和用例间的关系、用例和用例间的关系以及执行者和执行者间的关系。执行者和用例间只有一种关系:关联;用例间有三种关系:包含、扩展、泛化;执行者间只有一种关系:泛化 12 | 13 | 用例间的三种关系: 14 | 15 | - 包含:复用已有用例 16 | - 扩展:可以理解为可选的/有条件的包含(但箭头方向相反,扩展是从扩展用例指向基本用例) 17 | - 泛化:子用例继承父用例的行为和含义,并增加或覆盖部分行为 18 | 19 | 优化后的用例图: 20 | 21 | ![](media/15739766613376.jpg) 22 | 23 | ## 活动图 24 | 25 | ![](media/15739722910659.jpg) 26 | 27 | 活动图可利用分区或称泳道来分组: 28 | 29 | ![](media/15739723737135.jpg) 30 | 31 | ## 类图 32 | 33 | ![](media/15739723886827.jpg) 34 | 35 | ![](media/15739769148583.jpg) 36 | 37 | ![](media/15739781603468.jpg) 38 | 39 | ![](media/15758691838763.jpg) 40 | 41 | 类图的基本元素是类和类之间的关系。类之间的关系包括继承/泛化、关联、依赖。 42 | 43 | ### 类的关系 44 | 45 | #### 继承/泛化 46 | 47 | A is a kind of B. 48 | 49 | 用空三角箭头表示。 50 | 51 | Liskov 替换准则要求:在继承时,子类应该能出现在原本父类出现的场合。 52 | 53 | #### 关联 54 | 55 | 两个相对独立的类,当一个类的实例与另外一个类的特定实例存在固定关系时,这两个类之间存在关联关系。 56 | 57 | 关联的多重度(基数)表示两个类之间的数量关系,写在表示关联的实线两端,例如: 58 | 59 | ![](media/15739758110763.jpg) 60 | 61 | 关联可分为单向关联和双向关联。单向关联中,只有一个类知道联系的存在,用单向箭头表示;双向关联中,两个类都知道关联的存在,用不带箭头的实线表示。 62 | 63 | 聚合是一种特殊的关联,表示部分与整体的关系(A is a part of B),用带空菱形的实线表示,空菱形与聚合类相连接。 64 | 65 | 组合是一种更强形式的聚合,整体有管理部分的职责,用带实菱形的实线表示。 66 | 67 | 聚合和组合的区别在于,整体和部分的生命周期是否独立,发生聚合的两个类独立存在(例如车队和卡车的关系,车队解散了,卡车仍然可以独立存在),而组合关系中,部分依赖于整体而存在,整体消亡时部分也随之消亡(例如卡车和拖车的关系,拖车不能离开卡车单独存在)。 68 | 69 | #### 依赖 70 | 71 | 用虚线箭头表示,用一个衍型的关键字来区分它的种类: 72 | 73 | ![](media/15739751724517.jpg) 74 | 75 | 依赖和关联的区别在于,依赖是一种临时的非结构型关系(例如在局部变量、全局变量、函数参数中使用另一个类),而关联时一种永久的结构型关系(例如类的成员变量)。 76 | 77 | #### 接口和实现 78 | 79 | 用带空三角的虚线表示: 80 | 81 | ![](media/15739753391441.jpg) 82 | 83 | ### 分析类的识别 84 | 85 | MVC 设计模式中,M、V、C 分别对应实体类、边界类、控制类。 86 | 87 | - 边界类:用于描述系统外部环境与系统的交互,主要负责内容的翻译和形式的转换,并表达相应结果,包括: 88 | - 用户界面类 89 | - 系统接口类 90 | - 设备接口类 91 | - 控制类:用于描述一个或几个用例所特有的事件流控制行为,如事务管理器、资源协调器和错误处理器等 92 | - 实体类:用于描述必须存储的信息和相关行为 93 | 94 | ## 时序图 95 | 96 | ## 通信图 97 | 98 | ## 包图 99 | 100 | ## 分析建模的步骤 101 | 102 | - 用例建模 103 | - 建立概念模型 104 | - 识别用例实现 105 | - 识别分析类 106 | - 完成用例分析 107 | -------------------------------------------------------------------------------- /专业课/软件工程/6 面向对象设计.md: -------------------------------------------------------------------------------- 1 | # 面向对象设计 2 | 3 | ## 面向对象的设计模型 4 | 5 | 设计建模过程: 6 | 7 | - 架构设计 8 | - 包和子系统设计 9 | - 类设计 10 | - 持久化设计 11 | 12 | ### 构件图 13 | 14 | ### 部署图 15 | 16 | ### 状态机图 17 | 18 | ## 架构设计 19 | 20 | 4+1 架构视图: 21 | 22 | - 逻辑视图:表示软件的逻辑结构,用于支持功能性需求,即系统应该向用户提供的服务 23 | - 进程视图:表示软件的进程架构,关注的是非功能性需求,例如性能和可用性 24 | - 开发视图:表示软件的开发架构,关注在软件开发环境中软件模块的实际组织方式 25 | - 物理视图(部署视图):表示软件的物理架构,关注的是非功能需求,例如可用性、可靠性、性能、可扩展性等 26 | - 场景视图(用例视图):将上面 4 个视图有机结合,对其进行验证,观察能否在用例的实例下将它们集成到一起 27 | 28 | ## 包和子系统设计 29 | 30 | ### 包设计原则 31 | 32 | 内聚性原则: 33 | 34 | - 重用-发布等价原则:一个包中的所有元素,即类和接口,被当成单一的可重用单元看待,要么全都能被重用,要么都不能被重用 35 | - 共同重用原则:实际上是类设计的“接口隔离原则”在包上的扩展,即不要把用户不会用到的类和需要用到的类放在同一个包中 36 | - 共同封闭原则:指在同一个包中的所有类应该对同类型变更封闭,当某项变更影响到一个包时,会影响到这个包中的所有类,但不会影响到这个包之外的任何类 37 | 38 | 耦合性原则: 39 | 40 | - 无环依赖原则:发生依赖循环时,有两种解决方案: 41 | - 将循环依赖中的部分类独立出来,创建一个新的包 42 | - 应用“依赖倒置原则”,将依赖关系逆转 43 | - 稳定依赖原则:包之间应该朝着稳定的方向依赖,每个包应该只依赖比它更稳定的包 44 | - 稳定抽象原则:指最稳定的包应该是最抽象的包,不稳定的包应该是具体的包,(稳定)接口应和(易变)实现分开 45 | 46 | ## 类设计 47 | 48 | ### 类设计原则 49 | 50 | - 单一职责原则:每个类都应该只有一个职责 51 | - 里氏替换原则:子类必须能够替换父类,任何能够传给父类的参数都能传给子类,任何子类返回的值都是一种父类返回值的类型 52 | - 依赖倒置原则:高层模块不应该依赖于低层模块,它们都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象 53 | - 接口隔离原则:指客户端不应该被迫依赖它们不需要使用的接口,类与类的依赖关系应该建立在最小的接口上 54 | - 开放关闭原则:类、模块、函数等,应该对扩展开放,对修改关闭 55 | -------------------------------------------------------------------------------- /专业课/软件工程/7 软件测试.md: -------------------------------------------------------------------------------- 1 | # 软件测试 2 | 3 | ## 软件测试策略 4 | 5 | ### 软件测试层次 6 | 7 | #### 单元测试 8 | 9 | 又称模块测试,是针对软件结构中独立的基本单元(函数、类等)进行测试。 10 | 11 | 重点关注基本单元的接口、局部数据结构、边界条件、独立的路径、错误处理路径。 12 | 13 | 可以提前到开发之前,即测试驱动开发。 14 | 15 | 是编码的一部分,应该由程序员完成。 16 | 17 | 单元测试中涉及的两种特殊模块: 18 | 19 | - 驱动模块:用于启动被测模块,相当于被测模块的主程序 20 | - 桩模块:用于代替被测模块需要调用的子模块 21 | 22 | #### 集成测试 23 | 24 | 又称为组装测试,是指根据设计将软件模块组装起来,进行有序的、递增的测试,并通过测试评价它们之间的交互。 25 | 26 | 有两种: 27 | 28 | - 一次性集成:首先对各模块进行单元测试,然后把所有模块集成在一起进行测试 29 | - 增量式测试:首先对各模块进行单元测试,然后将各模块依次集成至较大系统中,在集成的过程中边连接边测试,以发现连接过程中产生的问题 30 | - 自顶向下集成:从主控模块开始,沿着控制层次结构逐步向下,将桩模块替换为真实模块;不需要驱动模块 31 | - 自底向上集成:从原子模块开始,向上逐步集成;不需要桩模块 32 | - 混合集成:中上层使用自顶向下,中下层使用自底向上 33 | 34 | 一次性集成的缺点是接口错误发现晚、难以进行错误定位,增量式的优点是错误发现早、易于错误定位;一次性的优点是可以并行测试和调试所有软件单元,增量式的缺点是必须顺序测试。 35 | 36 | #### 系统测试 37 | 38 | 软件集成和集成测试完成后,对整个软件系统进行测试。 39 | 40 | 目的是验证系统是否满足需求规约,包括功能性测试和非功能性测试,其中非功能性测试常常是系统测试的重点,如可靠性测试、性能测试(包括压力测试)、易用性测试、可维护性测试、可移植性测试等。 41 | 42 | ### 其他软件测试策略 43 | 44 | #### 验收测试 45 | 46 | #### Alpha 和 Beta 测试 47 | 48 | #### 安装测试 49 | 50 | #### 回归测试 51 | 52 | 用来保证软件的改动没有带来不可预期的软件行为或其他错误。 53 | 54 | 应重新执行所有执行过的测试,或者对受影响的软件部分进行局部回归测试。仅仅对修改的部分进行重新测试是不够的。 55 | 56 | ## 软件测试技术 57 | 58 | 测试技术的分类: 59 | 60 | ![](media/15742404489597.jpg) 61 | 62 | ![](media/15742402748683.jpg) 63 | 64 | ### 基于直觉和经验的测试 65 | 66 | #### 即兴测试 67 | 68 | 是一种临时的测试,主要根据测试者的经验、技能和直觉对软件进行功能和性能抽查,是正式测试的重要补充手段。 69 | 70 | #### 探索式测试 71 | 72 | 是一种自由的软件测试技术,强调测试人员同时开展测试学习、测试设计、测试执行和测试结果评估等活动,以持续优化测试工作。 73 | 74 | ### 基于代码的测试 75 | 76 | #### 控制流测试 77 | 78 | 按代码的控制结构进行测试。 79 | 80 | 包括: 81 | 82 | - 语句测试:使每个可执行语句至少执行一次 83 | - 判定测试(分支测试):使每个判定(整个条件表达式)至少都获得一次“真”和“假”值 84 | - 条件测试:使每个判定中的每个条件的可能取值至少满足一次,比判定测试要强,但 100% 条件覆盖不一定满足 100% 判定覆盖 85 | - 判定/条件测试:使判定中的每个条件和每个判定本身的判定结果均至少出现一次,100% 的判定/条件覆盖一定同时满足 100% 的判定覆盖、条件覆盖、语句覆盖 86 | - 条件组合测试:使每个判定中条件的各种可能组合都至少出现一次,是前 5 种测试中最强的测试,满足 100% 条件组合覆盖,一定同时满足上面 4 种覆盖 87 | - 路径测试:覆盖程序中所有可能的路径(注意,和基本路径测试不同,控制流测试中的路径覆盖不需要将条件表达式拆开),考虑了各种判定结果的所有可能组合,但不能替代条件测试、判定/条件测试、条件组合测试 88 | 89 | #### 基本路径测试 90 | 91 | 对于较复杂的程序,可能难以覆盖所有路径,因此提出基本路径测试,使每一条基本测试至少执行一次。 92 | 93 | 首先根据程序或程序流程图画出控制流图(如果判定条件中包含了复合条件,必须先将其拆分成等价的简单条件),并计算其区域数,然后确定一组独立的程序执行路径,最后设计测试用例使每一条基本路径至少执行一次。 94 | 95 | 在流图中,独立路径至少包含一条在定义该路径之前未曾用到过的边。 96 | 97 | ![](media/15758704451483.jpg) 98 | 99 | #### 数据流测试 100 | 101 | 根据变量的定义和使用位置来选择测试路径。 102 | 103 | ### 基于规约的测试 104 | 105 | #### 等价类划分 106 | 107 | 将所有可能的输入数据划分成若干个等价类,然后在每个等价类中选一组(通常是一个)有代表性的数据作为测试用例。 108 | 109 | 这是黑盒测试,划分是从逻辑(而不是代码)的角度来进行的,比如需求要求输入的范围在 0~10,则有一个有效等价类(在 0 到 10 范围内)、两个无效等价类(小于 0 和大于 10),不关心代码中的分支等结构。 110 | 111 | #### 边界值分析 112 | 113 | 设计一些测试用例,使软件运行在输入或输出范围的边界附近。 114 | 115 | #### 随机测试 116 | 117 | 在输入域上随机选择输入数据进行测试。 118 | 119 | ### 基于错误的测试 120 | 121 | #### 错误猜测 122 | 123 | 凭经验、知识和直觉推测可能存在的错误,列举程序中所有可能的错误和容易发生错误的特殊情况,然后根据这些猜测设计测试用例。 124 | 125 | ### 基于模型的测试 126 | 127 | #### 因果图/判定表 128 | 129 | 既考虑输入的组合关系,又考虑输出(动作)对输入(条件)的依赖关系,即因果关系。 130 | 131 | ### 基于应用类型的测试 132 | -------------------------------------------------------------------------------- /专业课/软件工程/README.md: -------------------------------------------------------------------------------- 1 | # 软件工程 2 | 3 | ## 目录 4 | 5 | - [1 软件过程](1%20软件过程.md) 6 | - [2 软件建模](2%20软件建模.md) 7 | - [3 需求工程](3%20需求工程.md) 8 | - [4 面向对象分析](4%20面向对象分析.md) 9 | - [5 设计工程](5%20设计工程.md) 10 | - [6 面向对象设计](6%20面向对象设计.md) 11 | - [7 软件测试](7%20软件测试.md) 12 | - [本科课件](本科课件.pdf) 13 | 14 | ## 参考资料 15 | 16 | - 沈备军,《软件工程原理》 17 | - [图说设计模式](https://design-patterns.readthedocs.io/zh_CN/latest/) 18 | -------------------------------------------------------------------------------- /专业课/软件工程/media/15737127724750.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15737127724750.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15737131758960.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15737131758960.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15737137645499.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15737137645499.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15737140919222.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15737140919222.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15737149604549.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15737149604549.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15737163108960.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15737163108960.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15737166601416.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15737166601416.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15739719340379.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15739719340379.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15739722910659.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15739722910659.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15739723737135.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15739723737135.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15739723886827.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15739723886827.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15739751724517.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15739751724517.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15739753391441.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15739753391441.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15739758110763.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15739758110763.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15739766613376.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15739766613376.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15739769148583.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15739769148583.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15739781603468.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15739781603468.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15739800423515.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15739800423515.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15741466259039.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15741466259039.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15741501346605.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15741501346605.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15741518399178.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15741518399178.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15741524121983.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15741524121983.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15741526535251.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15741526535251.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15741543024424.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15741543024424.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15741593276071.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15741593276071.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15741598155178.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15741598155178.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15741602516040.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15741602516040.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15741616424056.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15741616424056.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15741622282692.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15741622282692.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15741626230072.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15741626230072.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15742402748683.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15742402748683.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15742404489597.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15742404489597.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15758691838763.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15758691838763.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15758704451483.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15758704451483.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15758731905772.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15758731905772.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15758734520982.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15758734520982.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15758735342783.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15758735342783.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15758735622804.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15758735622804.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15758739308694.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15758739308694.jpg -------------------------------------------------------------------------------- /专业课/软件工程/media/15758739417203.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/media/15758739417203.jpg -------------------------------------------------------------------------------- /专业课/软件工程/本科课件.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/专业课/软件工程/本科课件.pdf -------------------------------------------------------------------------------- /政治/README.md: -------------------------------------------------------------------------------- 1 | # 政治 2 | 3 | ## 目录 4 | 5 | - [金柳安难点点播](金柳安难点点播) 6 | - [金柳安分析题笔记](金柳安分析题笔记.md) 7 | - [分析题终极](分析题终极.md)(通用答题框架 + 2020 年预测要点,后者可能过时) 8 | - [肖四分析题整理](肖四分析题整理.md)(使用通用答题框架重写肖四第一套,可能过时) 9 | -------------------------------------------------------------------------------- /政治/肖四分析题整理.md: -------------------------------------------------------------------------------- 1 | # 肖四分析题整理 2 | 3 | ## 马原 4 | 5 | ### 一(1) 6 | 7 | 运用唯物辩证法有关矛盾的原理,说明为什么“实现伟大梦想必须进行伟大斗争”?(或为什么“必须发扬斗争精神,增强斗争本领”?) 8 | 9 | 考点: 10 | 11 | - 矛盾同一性和斗争性 12 | 13 | 思路: 14 | 15 | 1. 原理: 16 | 1. **矛盾是普遍的**,任何事物中都充满矛盾 17 | 2. **同一性和斗争性**是矛盾的两个基本属性:**同一性**指矛盾双方**相互依存、相互贯通**的趋势,是**有条件的、相对的**;**斗争性**指矛盾双方**相互排斥、相互分离**的趋势,是**无条件的、绝对的** 18 | 3. **斗争性对事物发展的作用**有:推动矛盾双方力量变化,引发**量变**;推动矛盾双方地位或性质变化,引发**质变** 19 | 4. 同一性和斗争性两者互为存在的前提,**共同构成了矛盾运动,推动着事物的发展** 20 | 2. 结合材料: 21 | 1. 社会发展也是在矛盾运动中进行,必然需要斗争 22 | 2. 党领导人民的革命、建设和改革的历史,就是一部伟大的斗争史 23 | 3. 实现中华民族伟大复兴的中国梦要求我们继续进行伟大斗争 24 | 25 | ### 一(2) 26 | 27 | 运用矛盾分析法说明为什么“要注重策略方法,讲求斗争艺术”? 28 | 29 | 考点: 30 | 31 | - 矛盾普遍性和特殊性 32 | - 矛盾分析法 33 | 34 | 思路: 35 | 36 | 1. 原理: 37 | 1. **矛盾既具有普遍性又具有特殊性**:**普遍性**即共性,**无处不在**,无时不有,是**绝对的、无条件的**;**特殊性**即个性,表现在**不同矛盾和同一矛盾的不同阶段各有特点**,是**相对的、有条件的** $\Rightarrow$ **要具体问题具体分析,把握普遍性和特殊性的统一** 38 | 2. 事物中包含着多种矛盾,事物的性质是由其**主要矛盾的主要方面**所规定的 $\Rightarrow$ **要抓住主要矛盾的主要方面,两点论与重点论相结合** 39 | 3. **同一性和斗争性既相互制约又相互结合** $\Rightarrow$ **要在对立中把握统一,在统一中把握对立** 40 | 2. 结合材料: 41 | 1. 习近平总书记所指出的“……”正是要求我们…… 42 | 43 | ### 一(3) 44 | 45 | 坚持底线思维体现了怎样的辩证法思想? 46 | 47 | 考点: 48 | 49 | - 质、量、度的关系 50 | 51 | 思路: 52 | 53 | 1. 原理: 54 | 1. **事物是质和量的统一,质和量的统一在度中体现** 55 | 2. **度是**保持事物性质稳定性的**数量界限**,即范围、幅度和限度,**超出了度将引发质变** 56 | 2. 结合材料: 57 | 1. 底线是事物质变的临界点,突破底线对事物发展有着巨大危害,会造成严重后果 58 | 2. 必须坚持底线思维,客观地设定最低目标,立足最低点,争取最大期望 59 | 60 | ## 毛中特 61 | 62 | ### 一(1) 63 | 64 | 如何理解中国特色社会主义制度是当代中国发展进步的根本保障? 65 | 66 | 考点: 67 | 68 | - 中特制度优越性 69 | 70 | 思路: 71 | 72 | 1. 是什么: 73 | 1. 中特制度是**根本制度** 74 | 2. **马主义中国化**的重要成果 75 | 2. 优势: 76 | 1. 将**根本制度、基本制度、各项重要制度**有机结合 77 | 2. 将**党的领导、人民当家做主、依法治国**有机结合(忘记 1、3,只取这三点展开也可) 78 | 3. 将**国家层面民主制度和基层民主制度**有机结合 79 | 4. 植根**中华优秀传统文化**,吸收**人类文明有益成果**,符合**中国实际** 80 | 3. 总结:**长期实践证明**了中特制度是中国**政治**稳定、**经济**发展、**文化**繁荣、**社会**安定、**国家**统一的有力保障,是**当代中国发展进步的根本保障**(点题) 81 | 82 | ### 一(2) 83 | 84 | 为什么要“突出党的领导制度在国家治理体系中的统摄性地位”?(必要性) 85 | 86 | 考点: 87 | 88 | - 党的领导必要性 89 | 90 | 思路: 91 | 92 | 1. 是什么: 93 | 1. 党的领导制度是**根本领导制度**,是**中特最本质的特征** 94 | 2. 党在国家制度体系中**总揽全局、协调各方**,居于**统领地位** 95 | 2. 优势: 96 | 1. 党的领导是**中特制度最大优势** 97 | 2. 党是**中特制度的创建者** 98 | 3. 党自身的优势是**中特制度优势的主要来源** 99 | 4. 党的领导是充分发挥制度优势的**根本保证** 100 | 3. 必要性: 101 | 1. **马主义理论**的科学真理要求 102 | 2. **历史和人民的选择** 103 | 3. 新时代实现**两个一百年奋斗目标**、进而建设社会主义**现代化强国**、最终实现中华民族**伟大复兴**的中国梦的必然要求 104 | 4. 解决中国发展的**实际问题**的必然要求 105 | 106 | ### 一(3) 107 | 108 | 如何把制度优势更好转化为国家治理效能,开辟“中国之治”新境界?(怎么做) 109 | 110 | 思路(毛中特所有的措施基本都一样): 111 | 112 | 1. **党的领导** 113 | 2. 不断深化**改革**,完善相关**制度**,巩固优势 114 | 3. 完善**法律法规**,建立**评估体系** 115 | 4. 充分发挥**中央和地方两个积极性**,做好扎实细致的**具体实施工作**,将制度优势**落到实处** 116 | 117 | ## 史纲 118 | 119 | ### 一(1) 120 | 121 | 如何理解新中国的成立使中华民族走上了实现伟大复兴的壮阔道路?(意义) 122 | 123 | 考点: 124 | 125 | - 新中国成立的意义 126 | 127 | 思路: 128 | 129 | 1. 结束了**帝国主义**的压迫和奴役、**封建主义和官僚资本主义**的统治、**战乱频仍**动荡不安的局势,使中国**摆脱了两半社会**,基本实现了**民族独立和人民解放**,建立了**新民主主义社会** 130 | 2. **从根本上改变了中国社会发展方向**,为实现新民主主义**向社会主义过渡**、进而实现**国家富强和人民富裕**创造了条件 131 | 3. **中国共产党成为全国范围内的执政党**,从而可以充分发挥其自身优势,造福于中国人民,造福于中华民族 132 | 133 | ### 一(2) 134 | 135 | 为什么说中国人民和中华民族的前进步伐不可阻挡?(原因) 136 | 137 | 考点: 138 | 139 | - 中国未来发展趋势 140 | 141 | 思路: 142 | 143 | 1. **民心所向**:前进步伐不可阻挡是因为前进是民心所向,符合中国实际情况 144 | 2. **时代潮流**:……是因为前进是顺应和引领时代发展潮流的 145 | 3. **中国精神**:……是因为有中国人民和中华民族的伟大民族精神和时代精神 146 | 4. **制度优势**:……是因为有党和中特制度的独特优势 147 | 148 | ### 一(3) 149 | 150 | 如何不断创造新的历史伟业,使中国的明天更加美好?(怎么做) 151 | 152 | 考点: 153 | 154 | - 新中国历史经验 155 | 156 | 思路: 157 | 158 | 1. **党的领导** 159 | 2. **中特道路** 160 | 3. **马主义指导** 161 | 4. **人民主体地位** 162 | 163 | ## 思修法基 164 | 165 | ### 一(1) 166 | 167 | 为什么要在全社会大力弘扬家国情怀?(意义、作用、必要性) 168 | 169 | 考点: 170 | 171 | - 家国情怀(XX精神、XX情怀) 172 | 173 | 思路: 174 | 175 | 1. 是什么: 176 | 1. 家国情怀是**爱家和爱国的统一**,家是国的基础,国是家的延伸 177 | 2. 是中华**传统美德**的体现 178 | 3. 是爱国主义为核心的**民族精神**的体现 179 | 4. 是优秀**个人品德**的体现 180 | 2. 意义: 181 | 1. **民族、国家**:有利于实现中华民族伟大复兴的中国梦 182 | 2. **社会**:有利于全面建成小康社会,实现两个一百年奋斗目标 183 | 3. **个人**:有利于提高每个人的个人修养,实现个人价值和社会价值 184 | 185 | ### 一(2) 186 | 187 | 为什么说“爱国是本分,也是职责,是心之所系、情之所归”?(如何理解) 188 | 189 | 考点: 190 | 191 | - 爱国主义(XX精神、XX情怀) 192 | - 道德和法律 193 | 194 | 思路: 195 | 196 | 1. **爱国主义是人们对祖国的深厚感情** 197 | 2. 是**传统美德**的体现 198 | 3. 是**民族精神**的体现 199 | 4. 是优秀**个人品德**的体现 200 | 5. 是**法律**对每个人的基本要求 201 | 6. 是**社会主义核心价值观**的要求 202 | 203 | ### 一(3) 204 | 205 | 怎样向英雄模范学习,做新时代的爱国者?(怎么做) 206 | 207 | 考点: 208 | 209 | - 学习模范人物 210 | - 如何爱国 211 | 212 | 思路(所有向模范人物学习基本都一样): 213 | 214 | - **思想**上:高度重视 215 | - **行动**上:积极将爱国精神付诸实践,做好本职工作 216 | - **能力**上:不断提高自身能力,为实现社会理想奋斗和奉献的过程中实现个人理想 217 | - **学习先进模范人物的光荣事迹,不断改进自我** 218 | 219 | ## 当代 220 | 221 | ### 一(1)(3) 222 | 223 | 如何理解今日之中国是“世界之中国”? 224 | 225 | 为什么说“中国发展是属于全人类进步的伟大事业”? 226 | 227 | 考点: 228 | 229 | - 中国对世界的贡献 230 | 231 | 思路: 232 | 233 | 1. 中国**已走近世界舞台中央**,在实现自身发展的同时,为世界和平和人类发展**做出了巨大的贡献** 234 | 2. 列举贡献: 235 | 1. **政治**上:中国致力于推动各国之间**政治互信**,积极参与**全球治理**,推动“一带一路”等**合作平台**的建立 236 | 2. **制度**上:中国的发展为其他发展中国家提供了**制度经验和借鉴** 237 | 3. **经济**上:中国是**世界经济增长的主要稳定器和动力源**,是世界经济增长的最大贡献者 238 | 4. **安全**上:以实际行动**维护世界和平**,对重大国际安全问题的和平解决发挥了建设性作用 239 | 240 | ### 一(2) 241 | 242 | 如何理解当今世界正经历百年未有之大变局?中国为此提供怎样的解决方案? 243 | 244 | 考点: 245 | 246 | - 当今世界特点 247 | - 中国方案 248 | 249 | 思路: 250 | 251 | 1. 当今世界特点: 252 | 1. 发展中国家崛起 253 | 2. 政治多极化、经济全球化、社会信息化、文化多样化 254 | 3. 非传统安全问题突出 255 | 4. 单边主义和贸易保护主义抬头 256 | 2. 方案: 257 | 1. 政治 258 | 2. 经济 259 | 3. 安全 260 | 4. 文化 261 | 5. 生态 262 | -------------------------------------------------------------------------------- /政治/金柳安难点点播/media/15749284373809.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/政治/金柳安难点点播/media/15749284373809.jpg -------------------------------------------------------------------------------- /政治/金柳安难点点播/media/15749292522018.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/政治/金柳安难点点播/media/15749292522018.jpg -------------------------------------------------------------------------------- /政治/金柳安难点点播/media/15752682395741.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/政治/金柳安难点点播/media/15752682395741.jpg -------------------------------------------------------------------------------- /政治/金柳安难点点播/media/15752682469619.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/政治/金柳安难点点播/media/15752682469619.jpg -------------------------------------------------------------------------------- /政治/金柳安难点点播/media/15752686467905.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/政治/金柳安难点点播/media/15752686467905.jpg -------------------------------------------------------------------------------- /政治/金柳安难点点播/media/15752721961330.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/政治/金柳安难点点播/media/15752721961330.jpg -------------------------------------------------------------------------------- /政治/金柳安难点点播/media/15752722563426.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/政治/金柳安难点点播/media/15752722563426.jpg -------------------------------------------------------------------------------- /政治/金柳安难点点播/使用价值与价值.md: -------------------------------------------------------------------------------- 1 | 使用价值是指商品的有用性,能满足人们某种需要的属性,是一切劳动产品共有的属性,体现商品的自然属性,自然属性差异形成不同的使用价值。**使用价值是交换价值和价值的物质承担者。** 2 | 3 | 交换价值是一种使用价值同另一种使用价值交换的量的关系或比例。决定商品交换比例的,不是商品的使用价值,而是价值。**交换商品时看起来是在交换“使用价值”,实际上是在交换“价值”。** 4 | 5 | 价值是凝结在商品中的无差别的一般人类劳动,即人类脑力和体力的耗费。是商品特有的**社会属性**,**体现生产者之间的社会关系**,即交换劳动的关系。 6 | 7 | ![](media/15749284373809.jpg) 8 | -------------------------------------------------------------------------------- /政治/金柳安难点点播/供给侧结构性改革.md: -------------------------------------------------------------------------------- 1 | 深化供给侧结构性改革的原因: 2 | 3 | 供给侧结构性改革,是顺应中国特色社会主义进入新时代,是适应社会主要矛盾变化的需要,贯彻新发展理念、建设现代化经济体系必然。 4 | 5 | 供给侧结构性改革的根本和重点: 6 | 7 | 供给侧结构性改革的根本,就是要使我国供给能力更好满足广大人民日益增长的美好生活需要。**供给侧结构性改革的重点,是解放和发展生产力,用改革的办法推进结构调整,减少无效和低端供给,扩大有效和中高端供给,增强供给结构对需求变化的适应性和灵活性,提高全要素生产率。** 8 | 9 | 深化供给侧结构性改革的措施: 10 | 11 | 第一,推进增长动能转换,以加快发展**先进制造业**为重点全面提升**实体经济**。推进中国制造向中国创造转变,中国速度向中国质量转变,制造大国向制造强国转变。 12 | 13 | 第二,深化**要素市场化配置改革**,实现由以价取胜向以质取胜的转变。破除无效供给,把处置“僵尸企业”作为重要抓手,推动化解过剩产能;调整产业结构,淘汰落后产能。培育新动能,强化科技创新,推动传统产业优化升级,培育一批具有创新能力的排头兵企业,积极推进军民融合深度发展。降低实体经济成本,降低制度性交易成本,继续清理涉企收费,加大对乱收费的查处和整治力度,深化电力、石油天然气、铁路等行业改革,降低用能、物流成本。优化存量资源配置,提质升级存量供给,扩大优质增量供给,在各行各业开展产品质量、工程质量和服务质量提升行动,显著增强我国经济质量优势。 14 | 15 | 第三,加大人力资本培育力度,更加**注重调动和保护人的积极性**。人是生产力中最活跃的因素。高素质的企业家、工匠和劳模是推动供给侧结构性改革、振兴实体经济发展的重要力量。要塑造良好社会文化生态,营造鼓励创新、终生学习和勇于冒险的社会氛围,厚植企业家精神土壤;厘清政府、市场边界,拓展企业家精神生长空间,激发和保护企业家精神。要建设知识型、技能型、创新型、劳动者大军。要弘扬劳模精神和工匠精神,营造劳动光荣的社会风尚和精益求精的敬业风气。 16 | 17 | 第四,持续推进**“三去一降一补”**,优化市场供求结构。坚持**去产能、去库存、去杠杆、降成本、补短板**,优化存量资源配置,扩大优质增量供给。继续推动钢铁、煤炭等行业化解过剩产能。完善房地产调控措施,因地因城去库存,优化房地产市场供求关系,加快建立健全房地产基础性制度和长效机制。打好防范化解重大风险攻坚战,积极稳妥去杠杆,重点控制宏观杠杆率,促进形成金融和实体经济、金融和房地产、金融体系内部的良性循环,防范化解金融风险,有效控制国有企业债务和地方政府债务风险。加大减税、降费力度,降低要素成本和物流成本,切实降低企业负担。增强微观主体内生动力,扎实有效补短板。 18 | -------------------------------------------------------------------------------- /政治/金柳安难点点播/具体劳动与抽象劳动.md: -------------------------------------------------------------------------------- 1 | 具体劳动是指生产一定使用价值的具体形式的劳动,即有用劳动。**具体劳动形成商品的使用价值**。——个性 2 | 3 | 抽象劳动是指撇开一切具体形式的、无差别的一般人类劳动,即人的体力和脑力的消耗。**抽象劳动形成商品的价值实体**。——共性 4 | 5 | 生产商品的**劳动二重性决定了商品的二因素**。具体劳动和抽象劳动是对立统一的关系:具体劳动所反映的是人与自然的关系,它是劳动的自然属性,而抽象劳动所反映的是商品生产者之间的社会关系,它是劳动的社会属性。具体劳动和抽象劳动在时间上和空间上是统一的,是商品生产者同一劳动过程的两个方面或两重属性,而不是两次劳动或两种劳动。 6 | -------------------------------------------------------------------------------- /政治/金柳安难点点播/商品价值量.md: -------------------------------------------------------------------------------- 1 | 商品的价值不仅有质的规定性,而且还有量的规定性。商品价值的质即实体是凝结在商品中的劳动。商品价值的量是由生产商品所耗费的劳动量决定的,而劳动量则是按劳动时间来计量的。**决定商品价值量的不是个别劳动时间,而是社会必要劳动时间。** 2 | 3 | 社会必要劳动时间是指在现有社会正常生产条件下,在社会平均劳动熟练程度和劳动强度下制造某种使用价值所需要的劳动时间,即同行平均时间。 4 | 5 | 商品的价值量与劳动生产率的关系,商品的价值量与生产商品所耗费的劳动时间成正比,与劳动生产率成反比。商品价值量是以简单劳动为尺度计量的,复杂劳动等于自乘的或多倍的简单劳动。 6 | -------------------------------------------------------------------------------- /政治/金柳安难点点播/平均利润与生产价格.md: -------------------------------------------------------------------------------- 1 | 利润:资本家把全部预付资本的产物称作为利润。剩余价值是利润的本质,利润是剩余价值的转化形式。当剩余价值转化为利润时,剥削关系被掩盖了。 2 | 3 | 剩余价值转化为利润,剩余价值率就转化为利润率。利润率是剩余价值和全部预付资本的比率。**不同部门之间利润率不同,资本家之间展开激烈的竞争,使资本从利润率低的部门转向利润率高的部门,从而导致利润率趋于平均化,不同部门的资本家按照等量资本获得等量利润的原则来瓜分剩余价值。**在利润率平均化的过程中,形成了社会的平均利润率。**平均利润率是剩余价值总量对社会总资本的比率,即全社会的剩余价值总额和全社会的预付资本总额的比率。** 4 | 5 | 按照平均利润率来计算和获得的利润,叫做平均利润。随着利润转化为平均利润,商品价值就转化为生产价格,即商品的成本价格加平均利润。 6 | 7 | ![](media/15752682395741.jpg) 8 | 9 | ![](media/15752682469619.jpg) 10 | -------------------------------------------------------------------------------- /政治/金柳安难点点播/时空观.md: -------------------------------------------------------------------------------- 1 | **时间**是物质运动的**持续性和顺序性**,具有一维性;**空间**是物质存在的**广延性和伸张性**,具有三维性的特点。 2 | 3 | 时空与物质运动的关系:**运动是物质的存在方式,时空是运动的存在方式。**时空与物质运动是相互依赖辩证统一的。一方面,物质运动离不开时间空间;另一方面,时间和空间也不能脱离物质的运动,离开物质运动的“纯粹”时间和空间也是无法存在的。物质、运动、时间、空间具有内在的统一性。从根本上说,世界上除了运动的物质,什么也没有。 4 | 5 | 时空的四个特点: 6 | 7 | **时空既是有限的又是无限的。**时空的有限性是指每一个具体事物都要占据有限的空间,都要经历有限的时间,而时空的无限性则是指整个宇宙在时间的持续性上无始无终,在空间的伸展性上无边无际。 8 | 9 | **时空既是绝对的又是相对的。**时空的绝对性是指时空的客观性,时间空间作为物质的存在方式是不以人的意志为转移的;时空的相对性是指两个方面,一方面时空的具体特性是可变的如质量速度密度,另一方面人们关于时间空间的观念、态度也是变化发展的。 10 | -------------------------------------------------------------------------------- /政治/金柳安难点点播/真理.md: -------------------------------------------------------------------------------- 1 | 绝对真理=真理的绝对性,相对真理=真理的相对性 2 | 3 | 真理是人们对客观事物及其规律的正确认识,客观的理性认识称为真理。**真理的本性是主客观相符合。** 4 | 5 | 真理的绝对性: 6 | 7 | 1. 从真理的内容来看,任何真理都有不依赖于主体、不依赖于人或人类的客观内容,即**内容绝对正确**。 8 | 2. 从人类的认识本性来看,人类能够正确认识无限多样的永恒发展的物质世界,即**世界绝对可知**。 9 | 3. 是从真理的发展趋势来看,无数相对真理的总和构成绝对真理,即**穷尽所有条件**。 10 | 11 | 真理的相对性:是指真理的有**条件性、有限性**。在一定条件下,人们对事物的客观过程及其发展规律的正确认识总是有局限的、不完全的,有待于扩展,有待于深化。 12 | 13 | 关系: 14 | 15 | 第一,具有绝对性的真理和具有相对性的真理是相互渗透和相互包含的。一方面,相对之中有绝对,绝对寓于相对之中,即**一定条件下有绝对正确的内容,绝对正确的内容总是在一定条件下的**;具有相对性的真理之中,包含着绝对性的颗粒。另一方面,真理的绝对性通过相对性表现出来,无数具有相对性的真理之总和构成具有绝对性的真理。 16 | 17 | 第二,具有相对性的真理向具有绝对性的真理转化。真理永远处在由相对向绝对的转化和发展中,人类认识的过程,就是不断地从相对性真理走向绝对性真理、接近绝对性真理的过程,即**穷尽所有条件**。任何真理性的认识都是由相对性真理向绝对性真理转化过程中的一个环节。 18 | 19 | 方法论意义: 20 | 21 | 在绝对真理和相对真理的问题上,必须反对两种错误观点:一种是夸大真理的绝对性否认相对性的绝对主义错误;另一种是夸大真理的相对性否认绝对性的相对主义错误。 22 | -------------------------------------------------------------------------------- /政治/金柳安难点点播/社会主义改造.md: -------------------------------------------------------------------------------- 1 | ![](media/15752721961330.jpg) 2 | 3 | ![](media/15752722563426.jpg) 4 | 5 | 新中国成立后为进行现代化建设而进行的制度选择: 6 | 7 | 第一,提出国家工业化的任务;第二,选择社会主义工业化道路。从世界历史看,实现国家工业化,主要有两条道路:一条是资本主义工业化道路;一条是社会主义工业化道路。资本主义工业化道路在中国行不通。 8 | 9 | 提出过渡时期总路线的必要性: 10 | 11 | 一方面,随着民主革命遗留任务的彻底完成,国内的阶级关系和主要矛盾发生了深刻的变化。另一方面,随着国民经济的恢复和初步发展,中国社会的经济成分(即生产关系)发生了重要变化。 12 | 13 | 正是从以上两个方面变化了的实际情况出发,中共中央在 1952 年底开始酝酿并于 1953 年正式提出党在过渡时期的总路线,明确规定:“党在这个过渡时期的总路线和总任务,是要在一个相当长的时期内,逐步实现国家的社会主义工业化,并逐步实现国家对农业、对手工业和对资本主义工商业的社会主义改造。” 14 | 15 | 实行社会主义改造的必要性和条件: 16 | 17 | 国民经济恢复任务完成以后,当时中国之所以要着力进行和可能进行社会主义改造,主要是因为:第一,社会主义性质的国营经济力量相对来说比较强大,它是实现国家工业化的主要基础。第二,资本主义经济力量弱小,技术设备落后,资金不足,发展困难,不可能成为中国工业起飞的基础。第三,对个体农业进行社会主义改造,是保证工业发展、实现国家工业化的一个必要条件。第四,当时的国际环境也促使中国选择社会主义。 18 | -------------------------------------------------------------------------------- /政治/金柳安难点点播/社会再生产.md: -------------------------------------------------------------------------------- 1 | 社会再生产的核心问题是社会总产品的实现问题,即社会总产品的价值补偿和实物补偿问题。 2 | 3 | 社会总产品在物质形态上,按用途分为两大部类生产资料和消费资料,第 I 部类由生产生产资料的部门构成,其产品进入生产领域,第 II 部类由生产消费资料的部门构成,其产品进入生活消费领域。**社会再生产要求生产中所耗费的资本在价值上得到补偿(生产的商品卖得出去),同时要求所耗费的生产资料和消费资料得到实物替换(买得到足够的原料),因此要求两大部类内各产业部门之间和两大部类之间保持一定的比例关系。**社会再生产的实现条件是两大部类的生产不仅在规模上,而且在结构上保持一定比例,也就是通常所说的“总量平衡,结构合理”。 4 | -------------------------------------------------------------------------------- /政治/金柳安难点点播/货币的本质与职能.md: -------------------------------------------------------------------------------- 1 | 货币是在长期交换过程中形成的固定地充当一般等价物的商品。 2 | 3 | 货币的职能有五种:**价值尺度**、**流通手段**、储藏手段、**支付手段**和世界货币,其中价值尺度和流通手段是货币最基本的职能。 4 | 5 | ![](media/15752686467905.jpg) 6 | 7 | 货币的产生使整个商品世界分化为两极,**商品内在的使用价值和价值的矛盾就发展成为外在的商品和货币的矛盾**。货币出现**有利于解决商品交换的困难,但没有也不可能解决私人劳动和社会劳动的矛盾**。马克思指出,商品转换成货币是“商品惊险的跳跃,跳跃如果不成功摔坏的不是商品,一定是商品占有者”。 8 | -------------------------------------------------------------------------------- /政治/金柳安难点点播/资本有机构成.md: -------------------------------------------------------------------------------- 1 | ![](media/15749292522018.jpg) 2 | 3 | 资本的技术构成:由技术决定的生产资料与劳动力之比,即 C 比 V,这是**实物之比**,是由技术决定的,技术水平高对劳动力的需求就少。 4 | 5 | 资本的价值构成:是不变资本与可变资本之比,同样是 C 比 V,这是**价值之比**。 6 | 7 | 资本的有机构成:有三个因素影响 C 比 V 的结果,即生产资料与劳动力之比的结果:第一个因素是生产资料价格上涨;第二个因素是劳动力价格上涨即工资上涨;第三个因素是技术,技术进步导致对劳动力的需求减少,导致生产资料与劳动力比例变化。 8 | 9 | **生产资料价格上涨、劳动力价格上涨会导致价值构成变化,但不会改变技术构成(因为实物之比没有变);而技术构成变化(购入更多自动化设备、裁员)导致的价值构成称为有机构成。** 10 | 11 | 人类社会有一个不可逆转的趋势就是技术不断进步,最后导致对劳动力的需求减少,工人失业,资本有机构成不断提高。所以,随着资本主义社会资本家资本积累的规模不断增大有三个结果:贫富分化、工人失业、资本有机构成不断提高。 12 | -------------------------------------------------------------------------------- /政治/金柳安难点点播/非传统安全问题.md: -------------------------------------------------------------------------------- 1 | 传统安全是指国家面临的军事威胁及威胁国际安全的军事因素,它是以国家主权的维护为核心,也就是通常所说的国家主权安全,国家应对主权被侵犯的战争和军事要素,涉及政治、军事、外交等领域。 2 | 3 | 非传统安全是指除军事、政治和外交冲突以外的其他对主权国家生存与发展构成重大威胁的安全问题,如经济安全、信息安全、生态安全、恐怖主义、环境污染、民族宗教冲突和高危传染性疾病等。 4 | 5 | 冷战结束后非传统安全问题趋于突出的原因: 6 | 7 | 冷战结束使冷战时期被两极对抗所掩盖的地区性矛盾与冲突纷纷爆发;长期以来人类过度崇尚经济主义使环境保护、能源的合理利用等问题日益突出,亟待解决。经济全球化所导致的全球相互依存关系日益加深。各国的命运也更多地与外部的稳定和发展紧密相联。 8 | 9 | 非传统安全的特点: 10 | 11 | 第一,安全内涵和主体的多元化。第二,爆发方式复杂。第三,影响范围广泛。第四,治理难度增大。 12 | 13 | 如何应对非传统安全: 14 | 15 | 首先,加强国际合作。其次,心态更需开放。再次,发挥国际组织的作用。 16 | -------------------------------------------------------------------------------- /数学一/1 函数、极限、连续.md: -------------------------------------------------------------------------------- 1 | # 函数、极限、连续 2 | 3 | ## 题型 4 | 5 | ### ✅ 求函数极限、无穷小比阶、给出极限求参数 6 | 7 | - 等价无穷小代换 8 | - 去绝对值符号,分别求两侧极限 9 | - 洛必达法则(只能在极限确实存在的情况下使用) 10 | - 泰勒公式 11 | - 化数列极限为函数极限 12 | 13 | ### ✅ 求间断点及其类型 14 | 15 | - 找出**所有**无定义点 16 | - 分别求左右极限 17 | 18 | ### ✅ 判断/证明函数连续性、给出连续条件求参数 19 | 20 | - 求分界点处左右极限 21 | - 🤔 使用夹逼定理 22 | - 1800:P98.44 23 | 24 | ### ✅ 求反函数 25 | 26 | - 直接反推 27 | - 利用奇偶性列出方程求解 28 | - 1800:P98.49 29 | 30 | ### ✅ 证明零点存在 31 | 32 | - 介值定理/零点定理 33 | - 极限保号性 34 | 35 | ### 🤔 数列和的极限 36 | 37 | - 定积分定义(凑出 $\frac{i}{n} 和 \frac{1}{n}$) 38 | - 1800:P99.50.(1) 39 | - 放缩(局部放缩)+ 夹逼定理 40 | - 1800:P9.61、P9.65、P98.35、P99.50.(2)、P99.54 41 | - 单位区间积分再求和 42 | - 1800:P98.39、P99.52 43 | - 列项相消 44 | - 1000:1.75、1.76 45 | 46 | ### 🤔 数列积的极限 47 | 48 | - 合并乘积项(二倍角公式等) 49 | - 1800:P8.59 50 | - 拆分为数列和(对数等) 51 | - 1800:P9.63、P9.64、P9.66 52 | 53 | ### 🤔 给出数列递推式证明收敛并求极限 54 | 55 | 单调有界数列必有极限,关键在于证明单调和有界。 56 | 57 | 1800:P4.15、P10.96、P10.97、P10.98、P10.99、P98.39、P98.40、P98.41、P98.43、P99.55 58 | 59 | #### 单调性 60 | 61 | - 判断 $a_{n+1} - a_n$ 的正负 62 | - 由递推式得出 $a_{n+1} \ge (或 \le) a_n$ 63 | - 根据递推式设函数,导数大于等于 0 则单调(可用微分中值定理证明) 64 | 65 | #### 有界性 66 | 67 | - 根据前若干项设出上下界,利用归纳法证明 68 | - 对递推式放缩(利用常见不等式) 69 | - 极限保号性 70 | - 反证法 71 | 72 | ## 公式定理 73 | 74 | ### 等价无穷小 75 | 76 | ![](media/15725989122155.jpg) 77 | 78 | ### 常用放缩 79 | 80 | $$\frac{1}{n+1} \le \frac{1}{n+\frac{i}{n}} \le \frac{1}{n}$$ 81 | 82 | $$\frac{1}{n+1} \le \frac{1}{n+\frac{1}{i}} \le \frac{1}{n}$$ 83 | 84 | $$n(1+\frac{i^2}{n^2}) \le n+\frac{i^2+1}{n} = n(1+\frac{i^2+1}{n^2}) \le n(1+\frac{(i+1)^2}{n^2})$$ 85 | 86 | $$\sum\limits_{k=1}^n \int_{k}^{k+1} \frac{1}{x} dx \le \sum\limits_{k=1}^n \frac{1}{k} \le 1 + \sum\limits_{k=2}^n \int_{k-1}^k \frac{1}{x} dx$$ 87 | 88 | $$4 \le (2^n + 3^n + 4^n)^\frac{1}{n} \le (3 \cdot 4^n)^\frac{1}{n}$$ 89 | 90 | $$\frac{i}{n^2+n+n} \le \frac{i}{n^2+n+i} \le \frac{i}{n^2+n+1}$$ 91 | 92 | ### 选择题常用反例 93 | 94 | #### $f(x)$ 是偶函数,但原函数 $F(x)$ 不是奇函数 95 | 96 | $$f(x) = \cos x, F(x) = \sin x + C (C \ne 0)$$ 97 | 98 | #### $f(x)$ 是周期函数,但原函数 $F(x)$ 不是周期函数 99 | 100 | $$f(x) = \cos^2 x, F(x) = \frac{1}{2} x + \frac{1}{4} \sin{2x} + C$$ 101 | 102 | #### $f(x)$ 单调增,但原函数 $F(x)$ 不单调增 103 | 104 | $$f(x) = -\frac{1}{x}, F(x) = -\ln{x}$$ 105 | -------------------------------------------------------------------------------- /数学一/10 微分方程.md: -------------------------------------------------------------------------------- 1 | # 微分方程 2 | 3 | ## 题型 4 | 5 | ### 🤔 直接解方程 6 | 7 | 1800:P124.10、P125.12、P125.14、P125.16、P125.19 8 | 9 | - 应用通解公式、变换法等 10 | - 注意代入条件所给初值,求出常数 11 | - 利用函数奇偶性可以得到初值 12 | - 方程中含有变限积分时可以取定 $x$ 得到初值 13 | - 方程中含有变限积分时通常需要两边求导(可能需要求两次导) 14 | - 当方程中需要对未知函数 $f(x)$ 积分时,写成 $\int_0^x f(x) \mathrm{d}x + C$ 15 | - 方程是全微分方程 $\Rightarrow \frac{\partial Q}{\partial x} = \frac{\partial P}{\partial y}$,求出 $P$、$Q$ 中的未知函数后,利用不定积分法求原函数 16 | - 遇到形如 $\ln{|y|} = \ln{|f(x)|} + C_1$ 的步骤,不用写到答题纸,直接写 $y = C f(x)$,有时需要判断一下 $C$ 是任意常数还是非负 17 | - 常系数非齐次线性微分方程的特解 $y_* = R(x)e^{\lambda x}$ 求导,$y_*' = (\lambda R(x) + R'(x))e^{\lambda x}$,$y_*'' = (\lambda^2 R(x) + 2\lambda R'(x) + R''(x))e^{\lambda x}$ 18 | 19 | ### 🤔 应用题 20 | 21 | 1800:P125.22、P125.23、P125.24、P126.34 22 | 23 | - 几何相关问题,关键在于正确写出相应的几何量、图形的式子 24 | - 数量增长相关问题,关键在于列出变化率关于总量的方程 25 | - 溶液流进流出相关问题,关键在于分别考虑流进和流出的量,然后可列出变化率的方程 26 | - 速度大小不变方向变化,求运动轨迹问题,关键在于 $v = \sqrt{(\frac{\mathrm{d}x}{\mathrm{d}t})^2 + (\frac{\mathrm{d}y}{\mathrm{d}t})^2} = |\frac{\mathrm{d}x}{\mathrm{d}t}| \sqrt{1 + (\frac{\mathrm{d}y}{\mathrm{d}x})^2}$,从而消除 $y$ 关于 $x$ 的方程中的 $\frac{\mathrm{d}t}{\mathrm{d}x}$ 27 | 28 | ## 公式定理 29 | 30 | ### 常系数非齐次线性微分方程 31 | 32 | #### $f(x) = e^{\lambda x} [P_l(x) \cos{\omega x} + Q_n(x) \sin{\omega x}]$ 型 33 | 34 | 令 $R_{m1}(x)$、$R_{m2}(x)$ 分别为 $m = \max\{l,n\}$ 次多项式,设特解 $y_* = x^k e^{\lambda x} [R_{m1}(x) \cos{\omega x} + R_{m2}(x) \sin{\omega x}]$,其中,$k$ 按 $\lambda \pm \omega i$ 不是、是特征方程的根分别取 0、1。 35 | 36 | ### 欧拉方程的微分算子法 37 | 38 | 方程形如 $x^{n} y^{(n)}+a_{1} x^{n-1} y^{(n-1)}+\cdots+a_{n-1} x y^{\prime}+a_{n} y=f(x)$。 39 | 40 | 令 $x = e^t$,则有: 41 | 42 | $$ 43 | x \frac{\mathrm{d}y}{\mathrm{d}x} = x \frac{\mathrm{d}y}{\mathrm{d}t} \frac{\mathrm{d}t}{\mathrm{d}x} = \frac{\mathrm{d}y}{\mathrm{d}t} = \mathrm{D}y 44 | $$ 45 | 46 | $$ 47 | x^2 \frac{\mathrm{d}^2 y}{\mathrm{d} x^2} = \mathrm{D}(\mathrm{D} - 1)y 48 | $$ 49 | 50 | $$ 51 | x^3 \frac{\mathrm{d}^3 y}{\mathrm{d} x^3} = \mathrm{D}(\mathrm{D} - 1)(\mathrm{D} - 2)y 52 | $$ 53 | 54 | 其中,$\mathrm{D} = \frac{\mathrm{d}}{\mathrm{d}t}$。 55 | 56 | 令 $x = -e^t$ 算得 $x$ 为负的情况。 57 | 58 | 以 $x^2y'' + pxy' + qy = f(x)$ 为例,由上面方法化为 $\mathrm{D}(\mathrm{D}-1)y + p\mathrm{D}y + qy = f(\pm e^t)$,进而化为 $\frac{\mathrm{d}^2 y}{\mathrm{d}t^2}+(p-1) \frac{\mathrm{d}y}{\mathrm{d}t}+q y=f(\pm e^t)$。 59 | -------------------------------------------------------------------------------- /数学一/11 行列式与矩阵.md: -------------------------------------------------------------------------------- 1 | # 行列式与矩阵 2 | -------------------------------------------------------------------------------- /数学一/12 向量组与线性方程组.md: -------------------------------------------------------------------------------- 1 | # 向量组与线性方程组 2 | 3 | ## 题型 4 | 5 | ### ✅ 给定条件,判断向量组关系、矩阵性质等(选择题) 6 | 7 | 1800:P131.9 8 | 9 | ### ✅ 证明向量组线性无关 10 | 11 | 1800:P131.10、P132.15 12 | 13 | ### ✅ 证明向量组线性相关 14 | 15 | 1800:P132.16 16 | 17 | ### 🤔 讨论含参方程组解的情况 18 | 19 | 1800:P133.9、P133.10、P135.24、P135.25、P135.26 20 | 21 | - 对增广矩阵进行初等行变换 22 | - 讨论 $r(A) 可以把**从 $\eta_1, \eta_2, \cdots, \eta_k$ 到 $\xi_1, \xi_2, \cdots, \xi_k$ 的过渡矩阵**理解为**使用 $\eta_1, \eta_2, \cdots, \eta_k$ 表示 $\xi_1, \xi_2, \cdots, \xi_k$ 的系数矩阵**。 67 | -------------------------------------------------------------------------------- /数学一/13 特征值与二次型.md: -------------------------------------------------------------------------------- 1 | # 特征值与二次型 2 | -------------------------------------------------------------------------------- /数学一/2 一元函数微分学.md: -------------------------------------------------------------------------------- 1 | # 一元函数微分学 2 | 3 | ## 题型 4 | 5 | ### ✅ 求导、隐函数导数 6 | 7 | - 求导公式 8 | - 复合函数求导法 9 | - 对数求导法 10 | - 隐函数求导公式($y'(x) = -\frac{F'_x}{F'_y}$) 11 | 12 | ### ✅ 讨论具体函数的单调性、极值点、凹凸性、拐点 13 | 14 | 1800:P21.45 15 | 16 | - 求导判断正负得单调性 17 | - 求二阶导数判断正负得凹凸性 18 | - 注意极值点和拐点是二维平面上的点(不同于间断点,后者是一维数轴上的点) 19 | 20 | ### ✅ 求函数渐近线 21 | 22 | 1800:P18.7、P19.17、P21.45、P100.17 23 | 24 | - 求间断点处的极限得铅直渐近线 25 | - 求无穷远处的极限得水平渐近线(注意 $+\infty$ 和 $-\infty$ 可能不同,利用奇偶性有时可以只需求其中之一) 26 | - 分别求 $\lim\limits_{x \to \infty} \frac{f(x)}{x} = k$ 和 $\lim\limits_{x \to \infty} [f(x)-kx] = b$ 得 $y=kx+b$(注意 $+\infty$ 和 $-\infty$ 可能不同) 27 | 28 | ### ✅ 判断函数在某点的可导性及导函数连续性、给出可导条件求参数 29 | 30 | 1800:P12.13、P14.25、P16.47、P103.47、P103.48、P104.50 31 | 32 | - 分别求**左右导数**,都存在且相等则可导 33 | - 分别求**左侧导数的右极限和右侧导数的左极限**,等于分界点处的导数则导函数连续 34 | - 利用导数存在和连续的定义式列方程求解 35 | 36 | ### ✅ 给出抽象函数可导条件求极限 37 | 38 | 1800:P99.7、P100.20 39 | 40 | - 利用导数定义 41 | - 利用洛必达法则 42 | - 一般用不着中值定理 43 | 44 | ### ✅ 求微分中值的极限 45 | 46 | 1800:P16.3、P100.19 47 | 48 | - 反推中值关于 $x$ 的函数,求极限 49 | 50 | ### ✅ 求高阶导数 51 | 52 | 1800:P17.21 53 | 54 | - 泰勒公式 55 | - n 阶导数公式 56 | - 数学归纳法 57 | 58 | ### ✅ 求曲率 59 | 60 | 1800:P16.9、P104.49 61 | 62 | - 曲率公式(注意不同形式) 63 | 64 | ### 🤔 求极值的应用题 65 | 66 | 1800:P20.37、P103.46 67 | 68 | - 根据题意设出函数,求极值 69 | - 对于几何类型的问题,注意化简函数表达式 70 | 71 | ### 🤔 关于导数、极值、连续定义的选择题 72 | 73 | 1800:P14.23、P101.22、P101.28、P101.29、P101.30、P102.32、P102.33、P102.34、P102.36、P102.38 74 | 75 | - 利用定义式所蕴含的条件(某点函数值、极限保号性等) 76 | - 利用定义求出导数或极限,以证明可导或连续 77 | - 对导数定义式的分子进行等价无穷小代换(注意确保两侧导数都存在) 78 | - 利用反例(有理数和无理数分段、特殊三角函数震荡间断点等) 79 | - 利用定理及其逆否命题 80 | - 一般由两个导数定义式加起来的极限存在不能保证导数存在(1800 P101.30.(A)) 81 | 82 | ## 公式定理 83 | 84 | ### 求导公式 85 | 86 | ![](media/15656046567915.jpg) 87 | 88 | ### n 阶导数公式 89 | 90 | ![](media/15656047801857.jpg) 91 | 92 | ### 凹凸性不等式 93 | 94 | ![](media/15656047290836.jpg) 95 | 96 | > 注意,上面的琴生不等式对凹凸性的定义是国际主流定义,而同济教材上的定义是反的,考研应该以同济教材为准。 97 | 98 | ### 微分中值定理 99 | 100 | **费马引理**:若 $y=f(x)$ 在点 $x=x_0$ 处可导且取极值,则 $f'(x_0) = 0$。 101 | 102 | **罗尔定理**:设 $f(x)$ 在 $[a,b]$ 上连续,在 $(a,b)$ 内可导,又 $f(a)=f(b)$,则 $\exists \xi \in (a,b)$ 使得 $f'(\xi)=0$。 103 | 104 | **拉格朗日中值定理**:设 $f(x)$ 在 $[a,b]$ 上连续,在 $(a,b)$ 内可导,则 $\exists \xi \in (a,b)$ 使得 $f(b)-f(a)=f'(\xi)(b-a)$。 105 | 106 | > 其它形式: 107 | > - $f(x) = f(x_0) + f'(\xi)(x-x_0)$,$\xi$ 在 $x_0$ 与 $x$ 之间 108 | > - 有限增量公式:$\Delta y = f(x + \Delta x) - f(x) = f'(x + \theta x) \cdot \Delta x,0 < \theta < 1$ 109 | 110 | **柯西中值定理**:设 $f(x)$、$g(x)$ 在 $[a,b]$ 上连续,在 $(a,b)$ 内可导且 $g'(x) \ne 0$,则 $\exists \xi \in (a,b)$ 使得 $\frac{f(b)-f(a)}{g(b)-g(a)}=\frac{f'(\xi)}{g'(\xi)}$。 111 | 112 | ### 麦克劳林公式 113 | 114 | ![](media/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202019-08-12%2018.15.25.png) 115 | 116 | ### 选择题常用反例 117 | 118 | #### 两函数不连续不可导,但乘积或和连续且可导 119 | 120 | $$ 121 | f(x) = 122 | \begin{cases} 123 | 1, & x \in \bf{Q} \cr 124 | -1, & x \in \bf{R}\backslash\bf{Q} 125 | \end{cases} 126 | $$ 127 | 128 | $$ 129 | g(x) = 130 | \begin{cases} 131 | -1, & x \in \bf{Q} \cr 132 | 1, & x \in \bf{R}\backslash\bf{Q} 133 | \end{cases} 134 | $$ 135 | 136 | #### 在 $x_0$ 处连续,$x_0$ 的邻域内不连续 137 | 138 | $$ 139 | f(x) = 140 | \begin{cases} 141 | 0, & x \in \bf{Q} \cr 142 | x^2, & x \in \bf{R}\backslash\bf{Q} 143 | \end{cases} 144 | $$ 145 | 146 | #### 在某邻域内可导,但导函数不连续 147 | 148 | $$ 149 | f(x) = 150 | \begin{cases} 151 | 0, & x = 0 \cr 152 | x^2 \cos{\frac{1}{x}}, & x \ne 0 153 | \end{cases} 154 | $$ 155 | 156 | $$ 157 | f'(x) = 158 | \begin{cases} 159 | 0, & x = 0 \cr 160 | 2x \cos{\frac{1}{x}} + \sin{\frac{1}{x}}, & x \ne 0 161 | \end{cases} 162 | $$ 163 | 164 | #### $\lim\limits_{x \to a^+} f(x) = \infty$,但 $\lim\limits_{x \to a^+} f'(x) \ne \infty$(导函数可能是震荡的) 165 | 166 | $$ 167 | f(x) = \frac{1}{x} + \sin{\frac{1}{x}} 168 | $$ 169 | 170 | $$ 171 | f'(x) = - \frac{1}{x^2} (1 + \cos{\frac{1}{x}}),f'(\frac{1}{(2k+1)\pi})=0 172 | $$ 173 | 174 | #### $f'(x_0) < 0$,但 $f(x)$ 在邻域内不单调减(而是震荡) 175 | 176 | $$ 177 | f(x) = 178 | \begin{cases} 179 | 0, & x = 0 \cr 180 | -\frac{x}{2} + x^2 \cos{\frac{1}{x}}, & x \ne 0 181 | \end{cases} 182 | $$ 183 | 184 | $$ 185 | f'(x) = 186 | \begin{cases} 187 | -\frac{1}{2}, & x = 0 \cr 188 | -\frac{1}{2} + 2x \cos{\frac{1}{x}} + \sin{\frac{1}{x}}, & x \ne 0 189 | \end{cases} 190 | $$ 191 | -------------------------------------------------------------------------------- /数学一/3 一元函数积分学.md: -------------------------------------------------------------------------------- 1 | # 一元函数积分学 2 | 3 | ## 题型 4 | 5 | ### 🤔 求积分 6 | 7 | 1800:P107.3、P107.5、P107.6、P107.9、P107.10、P107.11、P107.12、P108.14、P108.16、P109.32、P109.33、P109.35、P109.37、P111.72、P111.73、P112.78、P112.79 8 | 9 | - 不定积分要加任意常数 $C$ 10 | - 注意 $\int \frac{1}{x} \mathrm{d}x= \ln{|x|}$,需要观察自然定义域来决定是否可以去掉绝对值符号 11 | - 被积函数中含有 $1+x$ 和 $e^x$,考虑凑出 $\rm{d}(xe^x)$ 12 | - 被积函数中含有 $1+e^x$,考虑分式上下同乘 $e^{-x}$ 13 | - 被积函数中含有 $\min$、$\max$ 函数,分段讨论 14 | - 被积函数中同时出现 $\sin{x}\cos{x}$、$\sin^2{x}$、$\cos^2{x}$,考虑上下同除 $\cos^2{x}$,可得到关于 $\sec^2{x}$ 和 $\tan^2{x}$ 的式子 15 | - 被积函数中含有极限式,有时需要分段讨论,并确保极限计算正确 16 | - 注意积分区间中是否有无定义点,需分段按反常积分计算 17 | - 使用换元法时,注意积分限要跟着变 18 | - 被积函数分母为 $1+x^2$,且没有明显的凑微分方向时,尝试换元 $x=\frac{1-t}{1+t}$ 19 | - 被积函数中含有取整函数,取整数 $k \in (x-1, x]$,分别考虑 $k$ 左边和右边 20 | 21 | ### 🤔 判断积分或未知函数的符号 22 | 23 | 1800:P108.23、P109.28 24 | 25 | - 利用奇偶性、周期性 26 | - 拆分积分区间,分别换元,使得被积函数在相应区间内 $\ge 0$ 或 $\le 0$ 27 | 28 | ## 注意 29 | 30 | - 积分中值定理的中值点所在区间是闭区间,因为是通过介值定理推论证明的(介值定理推论也是闭区间) 31 | - 如果被积函数连续,则可用变上限积分辅助函数+拉格朗日中值定理得到中值点在开区间 32 | - 要证明积分的范围,在被积函数很难积的情况下,可尝试对被积函数的部分做放缩 33 | 34 | ## 公式定理 35 | 36 | ### 不定积分 37 | 38 | ![](media/15675624725699.jpg) 39 | 40 | ### 不定积分(原函数)存在定理 41 | 42 | - 若 $f(x)$ 连续,则 $F(x)$ 存在 43 | - 若 $f(x)$ 有第一类间断点、无穷间断点,则在包含间断点的区间内 $F(x)$ 不存在 44 | - 若 $f(x)$ 有震荡间断点,则 $F(x)$ 可能存在 45 | 46 | ### 定积分 47 | 48 | ![](media/15675625228815.jpg) 49 | 50 | ### 三角函数万能公式 51 | 52 | ![](media/15725996967626.jpg) 53 | 54 | ### 几个常见的反常积分 55 | 56 | ![](media/15675627966016.jpg) 57 | 58 | ### $\Gamma$ 函数 59 | 60 | ![](media/15675629264766.jpg) 61 | -------------------------------------------------------------------------------- /数学一/4 一元微积分证明题.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/数学一/4 一元微积分证明题.md -------------------------------------------------------------------------------- /数学一/5 向量代数与空间解析几何.md: -------------------------------------------------------------------------------- 1 | # 向量代数与空间解析几何 2 | 3 | ## 题型 4 | 5 | ### ✅ 求向量点积、叉积、夹角 6 | 7 | 1800:P34.1、P36.16、P36.17、P36.25 8 | 9 | - 注意两向量夹角可以大于 $\frac{\pi}{2}$,两直线、直线与平面、两平面夹角不可以 10 | - $\lvert \bf{a} \times \bf{b} \rvert$ 等于 $\bf{a}$ 和 $\bf{b}$ 所围平行四边形面积 11 | 12 | ### ✅ 判断两直线、直线与平面的关系 13 | 14 | 1800:P36.13、P113.14 15 | 16 | - 两直线方向向量和连接两直线的某个向量的混合积等于 0 则共面,否则异面 17 | - 直线方向向量垂直于平面法向量则与平面平行或在平面内,平行平面法向量则与平面垂直 18 | 19 | ### ✅ 求符合过定点、平行、垂直、距离等条件的直线或平面 20 | 21 | 1800:P113.10、P114.15、P114.18 22 | 23 | - 利用叉积求方向向量或法向量 24 | - 利用混合积可以直接列出某些平面的方程(找出共面的三个向量,其中一个是 $(x-x_0, y-y_0, z-z_0)$ 25 | - 写出平面束方程,求符合条件的参数 26 | - 给出距离之比时,或要求椭球体切平面时,需要注意会有两个符合条件的平面 27 | 28 | ### ✅ 求距离 29 | 30 | 1800:P35.9、P112.3、P114.17 31 | 32 | - 利用叉积的模等于平行四边形面积的性质 33 | - 利用距离公式 34 | - 求异面直线间距离,先求过其中一条与另一条平行的平面,转化为求点到平面距离 35 | 36 | ### ✅ 求直线或曲线在平面上的投影 37 | 38 | 1800:P113.7、P113.8、P113.13 39 | 40 | - 求直线投影,先求过直线与平面垂直的平面,两平面交线即投影直线 41 | - 求曲线投影,直接利用曲线方程消去一个变量,注意最后要加上这个变量等于 0 的条件(例如 $z=0$) 42 | 43 | ### ✅ 求法向量或切平面 44 | 45 | 1800:P35.11、P113.9 46 | 47 | - 将曲面方程分别对 $x$、$y$、$z$ 求导,注意如果方程是 $z=f(x,y)$ 表示的,则法向量是 $(f_x, f_y, -1)$ 48 | - 如果要求单位法向量**不要忘记单位化** 49 | 50 | ### ✅ 求旋转曲面,及其与两平面围成区域的体积和质心 51 | 52 | 1800:P34.5、P37.27、P113.13、P114.16 53 | 54 | - 以绕 $z$ 轴旋转为例,设旋转曲面上一点 $P(x,y,z)$,对应原直线/曲线上点 $P_0(x_0, y_0, z)$,有 $x^2+y^2=x_0^2+y_0^2$,再由原直线/曲线方程得到 $x_0^2=f(z)$ 和 $y_0^2=g(z)$,代入等式即得旋转曲面方程 55 | - 求体积,利用微元法,被积函数为截面面积(以旋转轴变量为自变量) 56 | - 求质心,利用对称性可直接得到两个坐标轴的值,利用质心公式求剩下的一个,最后不要忘记写成完整的坐标形式 $(\bar{x}, \bar{y}, \bar{z})$ 57 | 58 | ## 公式定理 59 | 60 | ### 距离公式 61 | 62 | $P=(x,y,z)$ 是要求距离的外部点,$P_0=(x_0,y_0,z_0)$ 是直线或平面上的某个内部点,$\bf{S}$ 是直线方向向量,$\bf{n}$ 是平面法向量。 63 | 64 | #### 点到直线 65 | 66 | $$ 67 | d = \frac{\lvert \vec{P_0P} \times \bf{S} \rvert}{\lvert \bf{S} \rvert} 68 | $$ 69 | 70 | #### 点到平面 71 | 72 | $$ 73 | d = \frac{\lvert \vec{P_0P} \cdot \bf{n} \rvert}{\lvert \bf{n} \rvert} 74 | = \frac{\lvert A(x-x_0) + B(y-y_0) + C(z-z_0) \rvert}{\lvert \bf{n} \rvert} 75 | = \frac{\lvert Ax + By + Cz + D \rvert}{\sqrt{A^2 + B^2 + C^2}} 76 | $$ 77 | 78 | #### 两平行平面间 79 | 80 | $$ 81 | d = \frac{\lvert D_2 - D_1 \rvert}{\sqrt{A^2+B^2+C^2}} 82 | $$ 83 | 84 | #### 二次曲面方程 85 | 86 | ![](media/15723307515712.jpg) 87 | -------------------------------------------------------------------------------- /数学一/6 多元函数微分学.md: -------------------------------------------------------------------------------- 1 | # 多元函数微分学 2 | 3 | ## 题型 4 | 5 | ### ✅ 抽象函数求偏导 6 | 7 | 1800:P37.7、P38.1、P114.1 8 | 9 | - 关键在于看清楚自变量位置哪些与要求偏导的变量有关 10 | - 🤔 通过 $f’_x(x,y)=0$ 可证明 $f(x,y)$ 仅为 $y$ 的函数(与 $x$ 无关) 11 | - 1800:P115.13 12 | 13 | ### ✅ 求某一点处的微分 14 | 15 | - 对方程两边求全微分 16 | 17 | ### ✅ 根据偏导函数或全微分求原函数 18 | 19 | - 对 $x$ 求积分,附带一项 $\varphi(y)$,再求导,得到 $\varphi’(y)$ 20 | 21 | ### ✅ 求方向导数 22 | 23 | 1800:P114.5、P116.23 24 | 25 | - 分别求偏导,再点乘**单位**方向向量 26 | - 梯度方向的方向导数最大,$\frac{\partial f(x_0,y_0)}{\partial l} = \lvert \nabla f(x_0,y_0) \rvert$;逆梯度方向的方向导数最小,$\frac{\partial f(x_0,y_0)}{\partial l} = - \lvert \nabla f(x_0,y_0) \rvert$;与梯度垂直方向的方向导数为 0 27 | 28 | ### 🤔 求方程所确定隐函数的偏导 29 | 30 | 1800:P38.19、P115.9、P115.16 31 | 32 | - 对方程(组)两边对某一参数求导 33 | - 有时需要分别对 $x$ 和 $y$ 求导,得出方程组求解 34 | 35 | ### 🤔 判断连续性、可偏导性、可微性 36 | 37 | 1800:P39.17、P114.6、P114.7、P115.10、P115.11、P116.22 38 | 39 | - 利用定义 40 | 1. 先求极限,判断某点处连续性 41 | 2. 若连续,用定义求某点处偏导数 42 | 3. 若可偏导,写出 $\Delta f(x, y) = Adx + Bdy + g(x, y)$,判断 $g(x, y)$ 是否 $\rho \to 0$ 时的 $o(\rho)$($\rho = \sqrt{x^2 + y^2}$),若是则可微 43 | 4. 通常前 3 步足够,有时邻域内偏导数易求,可用偏导数连续来推出可微(充分条件) 44 | - 利用连续、可偏导、可微之间的关系 45 | 46 | ### 🤔 给出形如 $f(tx, ty) = t^k f(x, y)$ 的题 47 | 48 | 1800:P114.2、P115.14 49 | 50 | - 对 $t$ 求导,再令 $t = 1$ 51 | 52 | ### 🤔 变量变换相关的题 53 | 54 | 1800:P116.18、P116.24 55 | 56 | - 利用 $\frac{\partial g}{\partial u} = \frac{\partial g}{\partial x}\frac{\partial x}{\partial u} + \frac{\partial g}{\partial y}\frac{\partial y}{\partial u}$ 或 $\frac{\partial g}{\partial x} = \frac{\partial g}{\partial u}\frac{\partial u}{\partial x} + \frac{\partial g}{\partial v}\frac{\partial v}{\partial x}$ 可得到一个方程组,求解后再代入题中给出的等式即可 57 | 58 | ### 🤔 极值和最值问题 59 | 60 | 1800:P38.23、P114.8、P116.19 61 | 62 | - 求出所有驻点和导数不存在的点(注意若边界方程是圆或椭圆,代入时应使用参数方程,避免遗漏两个导数不存在的点) 63 | - 条件极值:直接带入条件、拉格朗日乘数法 64 | - 利用极值充分条件判断是否是极值 65 | - 根据题目含义可知唯一驻点必为所求极值点 66 | - 直接比较各可能的极值点处函数值大小得到最大最小值 67 | 68 | ## 公式定理 69 | 70 | ### 二元函数极值充分条件 71 | 72 | ![](media/15660333934114.jpg) 73 | 74 | ### 全微分定义 75 | 76 | 若有 77 | 78 | $$ 79 | \Delta z = f(\Delta x, \Delta y) - f(x, y) = A \Delta x + B \Delta y + o(\rho) 80 | $$ 81 | 82 | 其中 $\rho = \sqrt{(\Delta x)^2 + (\Delta y)^2}$,则全微分 83 | 84 | $$ 85 | \mathrm{d}z = A \mathrm{d}x + B \mathrm{d}y 86 | $$ 87 | 88 | ### 连续、可偏导、可微的关系 89 | 90 | ![](media/15660335200907.jpg) 91 | -------------------------------------------------------------------------------- /数学一/7 重积分.md: -------------------------------------------------------------------------------- 1 | # 重积分 2 | 3 | ## 题型 4 | 5 | ### ✅ 求积分 6 | 7 | 1800:P118.20 8 | 9 | - 注意将区域 $D$ 转换为极坐标表示时,需确定 $\theta$ 的定义域 10 | - 拆分被积函数或积分区域,然后利用对称性 11 | 12 | ### 🤔 证明题 13 | 14 | 1800:P118.23、P118.24、P118.25、P118.30 15 | 16 | - 运用积分中值定理 17 | - 变换积分变量,从而在定积分和二重积分间转换,同时可利用对称性 18 | 19 | ## 公式定理 20 | 21 | ### 三重积分的球坐标替换 22 | 23 | $$ 24 | \iiint\limits_\Omega f(x,y,z) \rm{d}V = \int_{\theta_1}^{\theta_2} \rm{d}\theta \int_{\varphi_1}^{\varphi_2} \rm{d}\varphi \int_{\rho_1}^{\rho_2} f(\rho\sin\varphi\cos\theta, \rho\sin\varphi\sin\theta, \rho\cos\varphi) \rho^2 \sin\varphi \rm{d}\rho 25 | $$ 26 | 27 | ### 物理应用公式 28 | 29 | #### 质心 30 | 31 | $$ 32 | \bar{x} = \frac{\iiint\limits_\Omega x\rho(x,y,z) \rm{d}V}{\iiint\limits_\Omega \rho(x,y,z) \rm{d}V} 33 | $$ 34 | 35 | #### 转动惯量 36 | 37 | $$ 38 | I_x = \iiint\limits_\Omega (y^2 + z^2)\rho(x,y,z) \rm{d}V 39 | $$ 40 | 41 | $$ 42 | I_o = \iiint\limits_\Omega (x^2 + y^2 + z^2)\rho(x,y,z) \rm{d}V 43 | $$ 44 | -------------------------------------------------------------------------------- /数学一/8 曲线积分与曲面积分.md: -------------------------------------------------------------------------------- 1 | # 曲线积分与曲面积分 2 | 3 | 🤔 4 | 5 | 1800:P119.8、P119.9、P119.12、P120.15、P120.17、P120.18、P120.19、P120.21、P120.23、P120.24 6 | 7 | ## 注意 8 | 9 | - 应用格林公式或高斯公式时,注意挖去被积函数没有定义的点 10 | - 取法向量、将曲面投影到坐标平面等时候,一定要注意曲面的方向(**正负号!**) 11 | - 当曲面积分被积函数中有未知函数时,尝试使用 $(\cos\alpha, \cos\beta, \cos\gamma) \mathrm{d}S = (\mathrm{d}y \mathrm{d}z, \mathrm{d}z \mathrm{d}x, \mathrm{d}x \mathrm{d}y)$ 来消去 12 | - 1800:P119.8 13 | - 具体函数求积分的题,不要急着算,先充分利用对称性 14 | - 一种容易忘的对称性:在球面 $\Sigma$ 上,$\iint\limits_\Sigma x^2 \mathrm{d}S = \iint\limits_\Sigma y^2 \mathrm{d}S = \iint\limits_\Sigma z^2 \mathrm{d}S$ 15 | - 1800:P120.15 16 | - 应用斯托克斯公式时,如果曲线所围的曲面/平面**单位法向量**易求,可直接转为曲面积分 $\iint\limits_\Sigma \begin{vmatrix}{\cos\alpha} & {\cos\beta} & {\cos\gamma} \\ {\frac{\partial}{\partial x}} & {\frac{\partial}{\partial y}} & {\frac{\partial}{\partial z}} \\ {P} & {Q} & {R}\end{vmatrix} \mathrm{d}S$ 17 | - 1800:P120.17、P120.18 18 | - 遇到 $x \frac{\partial f}{\partial x} + y \frac{\partial f}{\partial y}$,可以考虑转为极坐标:$\frac{\partial f}{\partial r} = \frac{\partial f}{\partial x} \cos\theta + \frac{\partial f}{\partial y} \sin\theta \Rightarrow r \frac{\partial f}{\partial r} = \frac{\partial f}{\partial x} r \cos\theta + \frac{\partial f}{\partial y} r \sin\theta \Rightarrow r \frac{\partial f}{\partial r} = x \frac{\partial f}{\partial x} + y \frac{\partial f}{\partial y}$ 19 | - 1800:P120.21 20 | 21 | ## 公式定理 22 | 23 | ### 已知极坐标方程求一型曲线积分 24 | 25 | $$ 26 | \mathrm{d}s = \sqrt{r^2(\theta)+r'^2(\theta)} \mathrm{d}\theta 27 | $$ 28 | 29 | ### 格林公式 30 | 31 | $$ 32 | \iint\limits_{D}\left(\frac{\partial Q}{\partial x}-\frac{\partial P}{\partial y}\right) \mathrm{d} x \mathrm{d} y=\oint_{L} P \mathrm{d} x+Q \mathrm{d} y 33 | $$ 34 | 35 | ### 高斯公式 36 | 37 | $$ 38 | \iiint\limits_{\Omega}\left(\frac{\partial P}{\partial x}+\frac{\partial Q}{\partial y}+\frac{\partial R}{\partial z}\right) \mathrm{d} V=\iint\limits_{S} P \mathrm{d} y \mathrm{d} z+Q \mathrm{d} z \mathrm{d} x+R \mathrm{d} x \mathrm{d} y 39 | $$ 40 | 41 | 或 42 | 43 | $$ 44 | \iiint\limits_{\Omega}\left(\frac{\partial P}{\partial x}+\frac{\partial Q}{\partial y}+\frac{\partial R}{\partial z}\right) \mathrm{d} V=\iint\limits_{S}(P \cos \alpha+Q \cos \beta+R \cos \gamma) \mathrm{d} S 45 | $$ 46 | 47 | 其中,$\mathrm{div} \boldsymbol{F} = \frac{\partial P}{\partial x}+\frac{\partial Q}{\partial y}+\frac{\partial R}{\partial z}$ 即为散度。 48 | 49 | ### 斯托克斯公式 50 | 51 | $$ 52 | \iint\limits_{S}\begin{vmatrix}{\mathrm{d} y \mathrm{d} z} & {\mathrm{d} z \mathrm{d} x} & {\mathrm{d} x \mathrm{d} y} \\ {\frac{\partial}{\partial x}} & {\frac{\partial}{\partial y}} & {\frac{\partial}{\partial z}} \\ {P} & {Q} & {R}\end{vmatrix}=\int_{\Gamma} P \mathrm{d} x+Q \mathrm{d} y+R \mathrm{d} z 53 | $$ 54 | 55 | 或 56 | 57 | $$ 58 | \iint\limits_{S}\begin{vmatrix}{\cos\alpha} & {\cos\beta} & {\cos\gamma} \\ {\frac{\partial}{\partial x}} & {\frac{\partial}{\partial y}} & {\frac{\partial}{\partial z}} \\ {P} & {Q} & {R}\end{vmatrix} \mathrm{d}S = \int_{\Gamma} P \mathrm{d} x+Q \mathrm{d} y+R \mathrm{d} z 59 | $$ 60 | 61 | 其中,$\mathbf{rot} \boldsymbol{F} = \begin{vmatrix}\boldsymbol{i} & \boldsymbol{j} & \boldsymbol{k} \\ {\frac{\partial}{\partial x}} & {\frac{\partial}{\partial y}} & {\frac{\partial}{\partial z}} \\ {P} & {Q} & {R}\end{vmatrix}$ 即为旋度。 62 | -------------------------------------------------------------------------------- /数学一/9 无穷级数.md: -------------------------------------------------------------------------------- 1 | # 无穷级数 2 | 3 | ## 注意 4 | 5 | - 求和函数时,先导后积 $\int_a^x S'(x) \mathrm{d}x + S(a)$,其中 $a$ 取展开点 6 | 7 | ## 公式定理 8 | 9 | ### 几个重要级数 10 | 11 | #### 等比级数 12 | 13 | $$ 14 | \sum_{n=0}^{\infty} aq^n = a + aq + aq^2 + \cdots + aq^n + \cdots 15 | \begin{cases} 16 | = \frac{a}{1-q}, & |q| < 1 \cr 17 | 发散, & |q| \ge 1 18 | \end{cases} 19 | $$ 20 | 21 | #### p 级数 22 | 23 | $$ 24 | \sum_{n=1}^{\infty} \frac{1}{n^p} = 25 | \begin{cases} 26 | 收敛, & p > 1 \cr 27 | 发散, & p \le 1 28 | \end{cases} 29 | $$ 30 | 31 | $$ 32 | \sum\limits_{n=2}^{\infty} \frac{1}{n^p \ln^q{n}} = 33 | \begin{cases} 34 | 收敛, & p > 1 \cr 35 | 收敛, & p = 1, q > 1 \cr 36 | 发散, & p < 1 \cr 37 | 发散, & p = 1, q \le 1 38 | \end{cases} 39 | $$ 40 | 41 | ### 比较判别法 42 | 43 | ![](media/15725945919795.jpg) 44 | 45 | ### 常用幂级数展开式 46 | 47 | ![](media/15725949582678.jpg) 48 | 49 | ### 幂级数展开常用小公式 50 | 51 | $$ 52 | \sin{\frac{n\pi}{2}} = 53 | \begin{cases} 54 | 0, & n = 2k \cr 55 | (-1)^k, & n = 2k+1 56 | \end{cases} 57 | $$ 58 | 59 | $$ 60 | \cos{\frac{n\pi}{2}} = 61 | \begin{cases} 62 | (-1)^k, & n = 2k \cr 63 | 0, & n = 2k+1 64 | \end{cases} 65 | $$ 66 | 67 | ### 傅里叶级数 68 | 69 | 设 $f(x)$ 以 $2l$ 为周期,则有傅里叶级数 70 | 71 | $$ 72 | f(x) \sim \frac{a_0}{2} + \sum_{n=1}^{\infty}(a_n \cos{\frac{n\pi}{l} x} + b_n \sin{\frac{n\pi}{l} x}) 73 | $$ 74 | 75 | 其中 76 | 77 | $$ 78 | \begin{cases} 79 | a_n = \frac{1}{l} \int_{-l}^{l} f(x) \cos{\frac{n\pi}{l} x} \mathrm{d}x, & n = 0, 1, 2, \cdots \cr 80 | b_n = \frac{1}{l} \int_{-l}^{l} f(x) \sin{\frac{n\pi}{l} x} \mathrm{d}x, & n = 1, 2, 3, \cdots 81 | \end{cases} 82 | $$ 83 | -------------------------------------------------------------------------------- /数学一/README.md: -------------------------------------------------------------------------------- 1 | # 数学一 2 | 3 | 这里的笔记可能没什么用,仅供参考,还是需要自己用适合自己的方式做笔记。 4 | -------------------------------------------------------------------------------- /数学一/media/15656046567915.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/数学一/media/15656046567915.jpg -------------------------------------------------------------------------------- /数学一/media/15656047290836.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/数学一/media/15656047290836.jpg -------------------------------------------------------------------------------- /数学一/media/15656047801857.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/数学一/media/15656047801857.jpg -------------------------------------------------------------------------------- /数学一/media/15660333934114.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/数学一/media/15660333934114.jpg -------------------------------------------------------------------------------- /数学一/media/15660335200907.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/数学一/media/15660335200907.jpg -------------------------------------------------------------------------------- /数学一/media/15675624725699.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/数学一/media/15675624725699.jpg -------------------------------------------------------------------------------- /数学一/media/15675625228815.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/数学一/media/15675625228815.jpg -------------------------------------------------------------------------------- /数学一/media/15675627966016.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/数学一/media/15675627966016.jpg -------------------------------------------------------------------------------- /数学一/media/15675629264766.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/数学一/media/15675629264766.jpg -------------------------------------------------------------------------------- /数学一/media/15723307515712.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/数学一/media/15723307515712.jpg -------------------------------------------------------------------------------- /数学一/media/15725945919795.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/数学一/media/15725945919795.jpg -------------------------------------------------------------------------------- /数学一/media/15725949582678.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/数学一/media/15725949582678.jpg -------------------------------------------------------------------------------- /数学一/media/15725989122155.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/数学一/media/15725989122155.jpg -------------------------------------------------------------------------------- /数学一/media/15725996967626.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/数学一/media/15725996967626.jpg -------------------------------------------------------------------------------- /数学一/media/屏幕快照 2019-08-12 18.15.25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/数学一/media/屏幕快照 2019-08-12 18.15.25.png -------------------------------------------------------------------------------- /数学一/公式.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/数学一/公式.pdf -------------------------------------------------------------------------------- /数学一/必须检查的题.md: -------------------------------------------------------------------------------- 1 | # 检查好这些题可能挽救 10+ 分!! 2 | 3 | - 渐近线条数 4 | - 微分方程的解 5 | - e^A 代回 6 | - 换元求积分后代回 7 | - 变限积分的导数 8 | - 重积分:积分区域、第二类线面积分的方向、补面、坐标转换,积分计算 9 | - 方向导数的方向向量 10 | - 级数求和函数的特殊点 11 | - 线性方程组的解 12 | - 密度函数和概率分布 13 | -------------------------------------------------------------------------------- /数学一/概率笔记.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/数学一/概率笔记.pdf -------------------------------------------------------------------------------- /数学一/高数笔记.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/数学一/高数笔记.pdf -------------------------------------------------------------------------------- /英语一/README.md: -------------------------------------------------------------------------------- 1 | # 英语一 2 | 3 | ## 目录 4 | 5 | - [词汇](wordlist) 6 | - [写作](essay) 7 | - [杂志笔记](杂志笔记.pdf) 8 | - [真题笔记](真题笔记.pdf) 9 | 10 | ## 参考资料 11 | 12 | - 俞敏洪,《考研英语词汇》 13 | - 王江涛,《考研英语高分写作》 14 | -------------------------------------------------------------------------------- /英语一/essay/README.md: -------------------------------------------------------------------------------- 1 | # 写作 2 | 3 | 推荐几个可以自动批改作文的网站(效果一般,但可作为参考): 4 | 5 | - [批改网](https://www.pigai.org/) 6 | - [Paper Checker](https://www.paperrater.com/free_paper_grader) 7 | - [Grammarly](https://www.grammarly.com/) 8 | 9 | 查询例句、同义词的网站: 10 | 11 | - [Thesaurus.com](https://www.thesaurus.com/) 12 | - [Linguee](https://www.linguee.com/) 13 | -------------------------------------------------------------------------------- /英语一/wordlist/README.md: -------------------------------------------------------------------------------- 1 | # 词汇 2 | 3 | 这里是单词表相关的东西,包括:从新东方单词书上摘录下来的**我**不熟悉的单词(CSV 格式)、从 CSV 生成 TeX 并转换成 PDF 的 Python 脚本、生成的高频和低频词汇的 PDF。其中 PDF 页面大小是 B5,可直接双面打印。 4 | 5 | 要手动生成 PDF,需要先安装 TeX Live 2019(没有用其它 TeX 发行版测试过)。 6 | -------------------------------------------------------------------------------- /英语一/wordlist/genpdf.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import shutil 4 | import csv 5 | 6 | original_cwd = os.getcwd() 7 | 8 | d = os.path.dirname(sys.argv[0]) 9 | os.chdir(d) 10 | 11 | TEMPLATE_BEGIN = r""" 12 | \documentclass[b5paper, 11pt]{ctexart} 13 | 14 | \input{../../../tex-templates/preamble.tex} 15 | \usepackage{multicol} 16 | \usepackage{enumitem} 17 | 18 | \setlength{\columnsep}{1cm} 19 | 20 | \title{考研英语词汇 - XXX} 21 | \author{RC} 22 | 23 | \begin{document} 24 | 25 | \begin{multicols*}{2} 26 | \begin{description}[leftmargin=0.5cm] 27 | """ 28 | 29 | TEMPLATE_MID = r""" 30 | \end{description} 31 | \end{multicols*} 32 | 33 | \clearpage 34 | 35 | \begin{multicols*}{3} 36 | \begin{description} 37 | """ 38 | 39 | TEMPLATE_END = r""" 40 | \end{description} 41 | \end{multicols*} 42 | 43 | \end{document} 44 | """ 45 | 46 | TEMPLATE_WORD = r""" 47 | \item[{word}] \hfill \\ {explanations} 48 | """ 49 | 50 | TEMPLATE_JUST_WORD = r""" 51 | \item[{word}] 52 | """ 53 | 54 | SRC_WORDLIST = 'wordlist.csv' 55 | DST_LF_WORDLIST = 'wordlist-low-freq.tex' 56 | DST_HF_WORDLIST = 'wordlist-high-freq.tex' 57 | 58 | lf_wordlist = open(DST_LF_WORDLIST, 'w', encoding='utf-8') 59 | hf_wordlist = open(DST_HF_WORDLIST, 'w', encoding='utf-8') 60 | lf_wordlist.write(TEMPLATE_BEGIN.replace('XXX', '低频词')) 61 | hf_wordlist.write(TEMPLATE_BEGIN.replace('XXX', '高频词')) 62 | 63 | lf_words = [] 64 | hf_words = [] 65 | 66 | with open(SRC_WORDLIST, 'r', encoding='utf-8') as f: 67 | reader = csv.reader(f) 68 | for i, row in enumerate(reader): 69 | if i == 0: 70 | continue 71 | 72 | word = row[0] 73 | explanations = row[1].splitlines() 74 | freq = 'L' if row[2] == '低' else 'H' 75 | 76 | if not word: 77 | continue 78 | 79 | fmt_args = {'word': word, 'explanations': r' \\ '.join(explanations)} 80 | if freq == 'L': 81 | lf_words.append(word) 82 | lf_wordlist.write(TEMPLATE_WORD.format(**fmt_args)) 83 | else: 84 | hf_words.append(word) 85 | hf_wordlist.write(TEMPLATE_WORD.format(**fmt_args)) 86 | 87 | lf_wordlist.write(TEMPLATE_MID) 88 | hf_wordlist.write(TEMPLATE_MID) 89 | 90 | for w in lf_words: 91 | lf_wordlist.write(TEMPLATE_JUST_WORD.format(word=w)) 92 | for w in hf_words: 93 | hf_wordlist.write(TEMPLATE_JUST_WORD.format(word=w)) 94 | 95 | lf_wordlist.write(TEMPLATE_END) 96 | hf_wordlist.write(TEMPLATE_END) 97 | lf_wordlist.close() 98 | hf_wordlist.close() 99 | 100 | cmd = 'xelatex -synctex=1 -interaction=nonstopmode -file-line-error -shell-escape "{}"' 101 | os.system(cmd.format(DST_LF_WORDLIST)) 102 | os.system(cmd.format(DST_LF_WORDLIST)) 103 | os.system(cmd.format(DST_HF_WORDLIST)) 104 | os.system(cmd.format(DST_HF_WORDLIST)) 105 | 106 | TO_REMOVE = [ 107 | '_minted-wordlist-low-freq', 108 | '_minted-wordlist-high-freq', 109 | 'wordlist-low-freq.synctex.gz', 110 | 'wordlist-high-freq.synctex.gz', 111 | 'wordlist-low-freq.aux', 112 | 'wordlist-high-freq.aux', 113 | 'wordlist-low-freq.log', 114 | 'wordlist-high-freq.log', 115 | 'wordlist-low-freq.out', 116 | 'wordlist-high-freq.out', 117 | 'wordlist-low-freq.thm', 118 | 'wordlist-high-freq.thm', 119 | ] 120 | 121 | for file in TO_REMOVE: 122 | if os.path.isdir(file): 123 | shutil.rmtree(file, ignore_errors=True) 124 | elif os.path.isfile(file): 125 | try: 126 | os.remove(file) 127 | except: 128 | pass 129 | 130 | os.chdir(original_cwd) 131 | -------------------------------------------------------------------------------- /英语一/wordlist/genpdf1.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import shutil 4 | import csv 5 | 6 | original_cwd = os.getcwd() 7 | 8 | d = os.path.dirname(sys.argv[0]) 9 | os.chdir(d) 10 | 11 | TEMPLATE_BEGIN = r""" 12 | \documentclass[b5paper, 11pt]{ctexart} 13 | 14 | \input{../../../tex-templates/preamble.tex} 15 | \usepackage{multicol} 16 | \usepackage{enumitem} 17 | 18 | \setlength{\columnsep}{1cm} 19 | 20 | \title{考研英语词汇 - XXX} 21 | \author{RC} 22 | 23 | \begin{document} 24 | 25 | \begin{multicols*}{2} 26 | \begin{description}[leftmargin=0.5cm] 27 | """ 28 | 29 | TEMPLATE_MID = r""" 30 | \end{description} 31 | \end{multicols*} 32 | 33 | \clearpage 34 | 35 | \begin{multicols*}{3} 36 | \begin{description} 37 | """ 38 | 39 | TEMPLATE_END = r""" 40 | \end{description} 41 | \end{multicols*} 42 | 43 | \end{document} 44 | """ 45 | 46 | TEMPLATE_WORD = r""" 47 | \item[{word}] \hfill \\ {explanations} 48 | """ 49 | 50 | TEMPLATE_JUST_WORD = r""" 51 | \item[{word}] 52 | """ 53 | 54 | SRC_WORDLIST = 'wordlist1.csv' 55 | DST_HF_WORDLIST = 'wordlist1.tex' 56 | 57 | wordlist = open(DST_HF_WORDLIST, 'w', encoding='utf-8') 58 | wordlist.write(TEMPLATE_BEGIN.replace('XXX', '遗忘词')) 59 | 60 | words = [] 61 | 62 | with open(SRC_WORDLIST, 'r', encoding='utf-8') as f: 63 | reader = csv.reader(f) 64 | for i, row in enumerate(reader): 65 | if i == 0: 66 | continue 67 | 68 | word = row[0] 69 | explanations = row[1].splitlines() 70 | ok = row[2] != '低' and row[3].strip() in ['?', 'x'] 71 | 72 | if not word: 73 | continue 74 | 75 | fmt_args = {'word': word, 'explanations': r' \\ '.join(explanations)} 76 | if ok: 77 | words.append(word) 78 | wordlist.write(TEMPLATE_WORD.format(**fmt_args)) 79 | 80 | wordlist.write(TEMPLATE_MID) 81 | 82 | for w in words: 83 | wordlist.write(TEMPLATE_JUST_WORD.format(word=w)) 84 | 85 | wordlist.write(TEMPLATE_END) 86 | wordlist.write(TEMPLATE_END) 87 | wordlist.close() 88 | wordlist.close() 89 | 90 | cmd = 'xelatex -synctex=1 -interaction=nonstopmode -file-line-error -shell-escape "{}"' 91 | os.system(cmd.format(DST_HF_WORDLIST)) 92 | os.system(cmd.format(DST_HF_WORDLIST)) 93 | 94 | TO_REMOVE = [ 95 | '_minted-wordlist1', 96 | 'wordlist1.synctex.gz', 97 | 'wordlist1.aux', 98 | 'wordlist1.log', 99 | 'wordlist1.out', 100 | 'wordlist1.thm', 101 | ] 102 | 103 | for file in TO_REMOVE: 104 | if os.path.isdir(file): 105 | shutil.rmtree(file, ignore_errors=True) 106 | elif os.path.isfile(file): 107 | try: 108 | os.remove(file) 109 | except: 110 | pass 111 | 112 | os.chdir(original_cwd) 113 | -------------------------------------------------------------------------------- /英语一/wordlist/wordlist-high-freq.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/英语一/wordlist/wordlist-high-freq.pdf -------------------------------------------------------------------------------- /英语一/wordlist/wordlist-low-freq.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/英语一/wordlist/wordlist-low-freq.pdf -------------------------------------------------------------------------------- /英语一/wordlist/wordlist1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/英语一/wordlist/wordlist1.pdf -------------------------------------------------------------------------------- /英语一/杂志笔记.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/英语一/杂志笔记.pdf -------------------------------------------------------------------------------- /英语一/真题笔记.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardchien/kaoyan-notes/3c68a7c37fd3272d8858b17cc7b6636384680850/英语一/真题笔记.pdf --------------------------------------------------------------------------------