不知道为什么标题不能有空格,只能换成驼峰命名法了。
掷色子可以让我变聪明吗
想试试看自己能不能写出民科一样的文风.
HelloWorld中的阿尔塔拉是否是图灵机
剧透警告!(到底是不是图灵机呢(๑•̀ㅂ•́)و✧
cmake的坑
cmake的坑。。。
cmake并不在mingw中
嗯,需要重新安装。。
vscode terminal的环境变量需要重启vscode才能生效
mingw 中的“make” 叫做“mingw32-make”
cmake 默认使用vs的那套工具栈
也就是说需要
cmake -G “MinGW Makefiles” [directoty]
注意这里大小写敏感!
参数没有逗号分隔
常用指令&功能
设置变量
1 | # set(Key Value) |
常用变量
PROJECT_SOURCE_DIR 当前工程的最上层目录
PROJECT_BINARY_DIR 当前工程的构建目录,一般指执行cmake的pwd
添加头文件
1 | include_directories() |
复制替换文件
1 | configure_file(<input>, <output>) |
此命令可以将input复制到output同时替换文件中@VARIABLE@的值,替换成为变量
递归CMakeLists.txt
1 | #添加 |
生成链接文件
1 | add_library() #用法基本与add_executable()相同 |
link链接文件
1 | target_link_libraries() #用法基本与add_executable()相同 |
生成选项
1 | if() |
1 | option(FLAG "help text" <ON/OFF>) |
操作系统混乱杂记
Quartus2与modelsim联用时的一些坑
调试的时候姑且做了一个调试笔记, 稍微列一些回忆中的坑吧.
二维最短路NP-complete
尝试用二划分问题归约到二维最短路问题。
假设有一个集合$S$, 定义其中的元素为$a_{i}$
权函数为$w: S \rightarrow R$
定义顶点集合为$N = {(x,0), (0,x) | \forall x \in S}$
边集$E = {((a_{i},0), (a_{i+1},0)),((0,a_{i}), (a_{i+1},0)),((0,a_{i}), (0,a_{i+1})),((a_{i},0), (0,a_{i+1}))| 1 \leq i < |S|}$
定义$\large V = (\frac{\sum w(a_{i})}{2}, \frac{\sum w(a_{i})}{2})$
$$\sum$$
正则语言在可列个并和交运算下的不封闭性
正则语言在可列个并和交运算下的不封闭性
引理 Myhill–Nerode定理
在$L \subset \Sigma^{*}$上定义等价关系。
$\forall x, y \in L$ 若$x=y$则有$\forall w \in \Sigma^*$,$xw \in L, yw\in L$同时成立或同时不成立。
记该等价关系为$R$
若$|L/R| < \infty$当且仅当$L$是正则语言。
可列个正则语言的并
定义
字符集$\Sigma = {0,1}$
字符串集合满足以下递推式
$S_{i} = S_{i-1}0^{i}1$
初始条件为
$S_{0}=1$
可以简单列一下前几个
$S_{1}=101,S_{2}=101001,S_{3}=1010010001$
显然一个有限长的字符串形成的集合一定是正则语言。
考虑$\large S = \bigcup_{i=0}^{\infty}{S_{i}}$
显然$S_{i} \neq S_{j}, \forall i\neq j$
则$|S/R| = \aleph_{0}$,故由Myhill-Nerode定理,$S$不是正则语言。
可列个正则语言的交
不妨记各个正则语言为$S_{i}$
根据De Morgan`s law
$$\large S = \bigcap_{i=0}^{\infty}S_{i} = \bigcup_{i=0}^{\infty}\overline{S_{i}}$$
根据前一部分的说明,该结果不一定是正则语言。
push-relabel_algorithm
push relabel algorithm 基本理论(╯‵□′)╯︵┻━┻
edge-decomposition
Edge Decomposition NP-Complete的记录手稿