一、形式化方法(Formal Methods)
形式化方法是用数学语言来描述、规范和验证系统(尤其是软件和硬件系统)的一套技术体系。它试图用 数学 而不是 经验 去证明一个系统是否正确。
普通开发:
“程序看起来没问题,测试也过了,应该能用。”
形式化方法:
“我能数学证明它一定不会出错(在给定模型下)。”
它广泛用于:
操作系统内核
编译器
芯片设计
航空航天
高铁信号系统
银行/密码学协议
区块链智能合约
因为这些领域:
“出一次错可能就死人、炸火箭、损失几亿”。(试错成本很高)
(一)为什么会有形式化方法?
传统软件开发主要靠:
测试(test)
调试(debug)
Code Review
经验
但测试有一个根本问题:
测试只能说明目前没发现 有 bug;
不能说明:绝对没有 bug。
测试集是人想出来的,测试永远不可能覆盖所有情况。
于是:
Tip科学家们想到:
“能不能像数学定理一样证明程序正确?”
所以:
Important程序 = 数学对象
开始出现,这即为形式化方法的 核心思想。
(二)形式化方法的核心
形式化建模
先用数学语言描述系统。不是自 ...
Note本文用于归档 作业.md 的历史复习总结。因为:
耗费精力整理的的复习点直接删除实属可惜
需要清理主文(作业.md),防止课程考完后主文的篇幅过长
图片、文件资源可能不被存放于此,因为要定期清理图床腾出空间
能做一个知识回顾,也能照顾不幸 g 了的同学(当然,不希望如此)
我会尽可能回忆考试的内容(题型)
本文 TOC 采取倒序编排。
三、算法分析
Tip考试题型结构(七道题):
实现 Hanio 程序(10分)
用 Dijkstra 在有向带权图中找到从 A 点到其他点的最短距离(20分)
连续邮资问题(20分)
多机调度任务问题(10分)
对给定的时间复杂度排序(10分)
简答题;动态规划和贪心算法的区别(10分)
简答题:蚁群算法的思想以及步骤(10分)
复习资料
2026算法复习资料.doc
2025秋算法复习资料.pdf
24下算法复习题.docx
算法分析复习摘要.md
Warning这部分最好电脑浏览,大量的 Latex 语法会超出手机屏幕,而且内容体量过大,手机较卡顿
考试信息:07-10 16:20-18:00 | 闭卷 | 05307D
...
.post-content h2 { text-align: center; }
.post-content h3 { text-align: center; }
/* 性能优化:屏幕外的元素跳过渲染,减少移动端卡顿 */
.post-content > * {
content-visibility: auto;
contain-intrinsic-size: 0 30px;
}
/* 图片和表格需要更精确的高度预估,避免滚动条跳动 */
.post-content img,
.post-content table,
.post-content blockquote {
contain-intrinsic-size: 0 200px;
}
钰言家
《钰语》是一部记录谢绪钰言行的语录体散句著作,由钰子的众弟子编纂而成。
《钰语》以语录体和对话体为主,叙事体为辅。集中体现了谢绪钰的政治主张、伦理思想、道德观念及教育原则等。
《钰语》又称《谢经》、《素质经》、《绪言》。
钰子:姓谢 名绪钰(出生年不详),21世纪"最伟大"的教育家,钰家学派创始人。
T ...
一、前言
若经常使用浏览器,好的浏览器插件极大的提升浏览的幸福感。本人不喜欢下载桌面端的软件,有网页则用网页,比如 blbl、dy和 AI 有网页,我就不会去下载桌面端。
一是占空间
二是冗余庞大不灵活,网页秒开
三是可以随时问 AI 和看论坛,不用每个软件切来切去
二、前置准备和插件安装
(一)前置准备
首先打开插件商店,先开启 开发者模式 不然权限不够,接着打开 获取 Microsoft Edge 扩展
(二)推荐插件
1. iTab新标签页
所示首先讲一下iTab插件,初次安装会弹出 是否保留更改,要点 保留更改
iatb可以让你的首页清爽干净,如上面截图,特点如下:
免费
自定义背景,拥有很多背景
有云端备份,只要登入账号,换到其他浏览器或者设备,你的布局,界面都不会变,这一点很赞
书签管理 可以把你收藏过的网站订在首页(可以多选),就不用一个个网站去找,就像手机点开app图标直达一样
2. AdGuard
这是一款可以去网页广告的插件,里面的设置按需开启。
3. 沉浸式翻译
一般只改双语对照的效果就行了,默认的翻译快捷键的 Alt + A ,如果 ...
一、前言
一个代码托管平台,也是一个近乎什么资源都能找到的平台,还是一个计算机科学的 “基础设施” 之一,更是一个伟大开源社区,类似的平台有国内的 Gitee(码云)。
GitHub创造的 Pull Request(PR) 机制和 Issues 系统,已经成为开源协作的事实标准。它不仅仅是个代码仓库,更是一个全球开发者围绕项目进行协作、讨论和社交的庞大社区。
二、注册
(一)网络问题
难的不在于注册,其实更难的是网络问题,GitHub 服务器在境外(美国),国内没有专属直连线路,类似于有时候进不去微软官网一样。解决的方法有二:
直接使用魔法,最快也是最省事
使用 watt toolkit 软件(原名叫做 steam++ ,是一种 steam 单机玩家用来挂卡的软件),微软商店直接搜索安装即可
(二)注册
开小号演示。
官网:https://github.com
操作看图集
[{"url":"https://img.999314.xyz/file/1782789497662_b29d35f4-1215-4665-b2a6-bb109b5289fd.pn ...
Caution分区、扩容有一定风险,请读者知道你自己正在做什么!
一、用到的工具
以下用到一款经典的软件名叫:diskgenius(傲梅分区助手 也可以)
载软件,官网:https://www.diskgenius.cn/download/downloadURL.php?Name=DG_64
或者有图吧工具箱就不需要下载了,里面包含 diskgenius,下载地址:https://www.tbtool.cn/download/
二、步骤
打开软件
右键想要扩容的盘符(这里我选择 C 盘)
点击 扩容分区(Ctrl F12)
双击要分出容量的盘符(D 盘)
点击 分区前部的空间 ,填入要分给 C 盘的大小(50GB)
勾选重启,等待自动进入PE环境,期间会自动操作并重启,大概30分钟以内可以完成
Caution进入PE环境后不能随意中断进程,否则将导致巨大损失!若是台式机,确保未来30分钟不会意外断电!分区扩容有一定风险!数据无价!对自己的操作没信心的切勿尝试!
三、扩容前后对比
Tip
工科生的 C 盘在 300~400GB比较合 ...
为何要在命令行(终端)设置网络代理
主要是方便 curl、wget、apt、pip、git、npm 等工具的使用。众所周知,代理工具的常规方法是无法代理到终端的流量。
需要用到命令行网络代理的场景:
当 pip 下包下不动或是屡屡报网络错误,那无非就两种情况:一是下载了过于冷门的包版本,二是包源仓库在国外,国外裸连下载不一定会成功,如果在手机流量和校园网流量之间尝试仍无法下载,则直接终端网络代理。
当需要 git 来克隆仓库,发现timeout 或者下载慢,那么请直接代理流量。
当链接是任何的国外链接时,裸连可能无法建立稳定的连接。比如 claudecode的两条下载命令(分别是powershell和cmd): irm https://claude.ai/install.ps1 | iex 或 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd ,网络代理之后会很明显的顺利下下来。
四种实现方式
1. 网络代理工具开启虚拟网 ...
Note仅作个人笔记与备忘。
常用命令
Tip[] 表示可选,<> 表示必选。
ls
作用:列出目录内容。语法:ls [-a -l -h] [目录路径]参数:-a:即 all ,列出全部文件,包括隐藏文件。-l:即 list ,以列表展示内容,并展示更多信息。-h:即 human ,以人类可读的形式展示内容,列出文件的大小,必须搭配 -l 使用。备注:即来自 list 单词。可以两两组合使用,且不分先后顺序,如:ls -la、ls -al、ls -l -a 都等价。不加任何参数时,列出当前目录下非隐藏的文件和目录名。
cd
作用:切换目录。语法:cd [目录路径]备注:即来自 Change Directory 单词。切换目录。不带路径时等价于 cd ~ ,即回到家目录。(家目录:/home/<用户名>)
touch
...
Note本文建立在 WSL 的基础之上。
为何如此
这几个实验的部分小任务无法在 Windows 环境下编译,有些头文件是 Linux 专属的,比如 <unistd.h>, <sys/types.h>, <sys/stat.h>, <sys/ipc.h>, <sys/shm.h> , mkfifo(), shmget(), shmat(), shmdt(), shmctl() …
若要按老师说要在 VMware 虚拟机里安装 vc++ 6.0 ?太麻烦了,既要重新认识/熟悉非主流软件,而且在 VM 里安装软件也很麻烦。
按照 AI 和论坛大佬们的说法,vscode + wsl 应该是最优解。
为什么要装编译器?我在 dev.6.7.5 或者 VS 里使用也没见需要安装?这是因为 dev.6.7.5 或者 VS 自带了编译器。dev 之所以轻量,可以理解为只是给 GCC/G++ 套了个可视化窗口。
vscode + wsl 方案的好处:一是提供了 Linux 环境,二是安装 c/c++ 编译器的过程极其简单 ...
































