「面向对象」Unit-4

最折磨的一集 建模 为了完成作业,我采取了先写代码再反向完成类图的方式。 架构思想 这几次代码我都是按照生活中的常识进行的架构设计, 但是在后期发现了许多的冗余类,于是进行了简化设计。 迭代过程中基本上没有进行大的架构变革, 而是基于几次测试新增的要求进行更新。 与设计要求不太相同的是, 我设计中的「书」更像是单纯的实体, 它本身没有状态, 所谓的「状态」由书在前所在的位置决定。 这样的...

发布于 课程备忘

「数学」生成函数

组合排列 核心:数列卷积转化为多项式卷积转化为函数乘法 设集合 A 的 n 组合方案数为 \(a(n)\), 集合 B 的 n 组合方案数为 \(b(n)\), 同时 \(A\cap B=\emptyset\), 那么集合 \(H=A\cup B\) 的 \(n\) 组合方案数为两者的卷积: \[ h(n)=\sum_{k=0}^{n}a(k)*b(n-k) \] 这符合多项式乘法的形式,对...

发布于 课程备忘

「面向对象」Unit-3

分析本单元的测试过程 测试类型 黑箱测试 测试者不了解程序的内部情况,不需具备应用程序的代码、内部结构和编程语言的专门知识。只知道程序的输入、输出和系统的功能,这是从用户的角度针对软件界面、功能及外部结构进行测试,而不考虑程序内部逻辑结构。测试案例是依应用系统应该做的功能,照规范、规格或要求等设计。 在本单元的课程中就是根据 JML 规范来制定相应的测试用例,比如调用的 OKTest 方...

发布于 课程备忘

「面向对象」Unit-2

第五次作业 本次作业由两个大的任务组成: 电梯运行策略 多线程设计 电梯运行策略 想必大家在等电梯的时候,都会疑惑电梯是怎么调度的,甚至想「这方案太()了,假如(),肯定效率更高」 原本想实现一个最优方案,在尝试查找电梯调度方面的论文后, 却发现不同的策略在不同的情况下有不同的优势,很难说有一种最优的方案。 仔细想想也确实如此。电梯是一个实时响应的系统,它不能预测未来,故只能选择当前条件...

发布于 课程备忘

「面向对象」Unit-1

第一次作业 整体架构 整体架构 形式化表述 原始规则 \[ \begin{align*} \texttt{Expr}\rightarrow\ &\texttt{White}\ [\texttt{PlusMinus}\ \texttt{White}]\ \texttt{Term}\ \texttt{White} \\ |\ &\texttt{Expr}\...

发布于 课程备忘

「随笔」永恒的活火

自提前返乡,到重归学校,已经两月有余。 对于世界上的大多数人来说,这两月正如过去的二百四十个月一般,平淡,带着日常的愚昧。 我以为我也一样。 我的心总在白日的琐碎中沉寂, 我在观众席中蜷缩,看着舞台上人来人往,情节起伏跌宕。故事就在眼前上演,一丝疏离感却不合时宜地升起。 「真好。」我想。 转头看看左右,藏在灯光下的黑暗中的身影,逐渐稀疏起来。有的走上了舞台,在聚光灯下与演员们共舞;有的却...

发布于 胡思乱想

「随笔」我们能得到答案吗?

不知不觉,2022 年来到了尾声。熟悉的朋友知道,我向来不喜在公开场合谈论政治的种种。在这陆离光怪的世界,产生怎样的政治倾向都不足为奇,而理解与认同又珍惜到不忍苛求。「我们一直行走着混沌的灰色地带,对错或意识形态立场在这种乱流中自相矛盾,相互倾轧。」 但这并不是一篇讨论政见之分的文章,只是这奇幻又混乱的一年中,一个普通人的思考。 在多校多地白纸游行时,我没有发声,因为类似的游行事件在全世界多...

发布于 胡思乱想

「随笔」晚安

我的睡眠一直很好。令人安心的睡意总是在需要的时候准时到来。 记得那一晚与朋友通宵,我虽极力抵抗着勾人心魄的梦,耳机中的枪声却自在地远去,变成鼓声,变成风铃声,变成耳边的温柔呢喃。终于,修普诺斯令我陷入无魇的平静,又好似被倪克斯摄去了灵魂——因为在梦里,我竟与她一同起舞,贪婪地窥视着黑夜的神秘。 近来的我,却丧失了神的恩泽。 从屋檐滑落的水滴以 2/4 拍落下,风哀嚎着想要挤过禁止的窗间狭缝,...

发布于 胡思乱想

「计算机组成」P7 支持异常的流水线 CPU

P7 中最重要的概念就是 异常,本文的全部内容都将围绕 异常 一词进行叙述 而系统桥等内容在本文中不会提及,请结合教程自行学习 什么是异常 在 MIPS 体系结构中,中断、自陷、系统调用以及其他打断程序正常执行流的事件统称为异常 See MIPS Run Linux 本文中的 异常 与 See MIPS Run Linux 中的定义一致。 需要注意到异常是一个中性词 为何要有异常 异常的...

发布于 课程备忘

「计算机组成」P6 支持更多指令的流水线 CPU

结构 CPU 数据通路结构 设计思路 实际上,从 P5 到 P6 是一个轻松而惬意的过程。 因为大部分的数据通路在 P5 时已经设计完成,在 P6 只需要针对新增指令修修补补即可 唯一需要稍微注意的是新增的乘除模块 乘除模块和 ALU 模块并没有本质上的区别。不过 CPU 实现乘除操作需要进行的操作复杂,关键路径较长,其耗时比加减法要高出一个数量级 那么,如果将乘法操作直接加入到 ALU 中...

发布于 课程备忘
23