面向计算机的科学的离散数学 (期中) 对应计算机系离散数学(1)

tips:本文逻辑和顺序可能混乱,因为作者是根据题目进行知识点的复习

1.在集合A上等价关系个数的计算

等价关系与划分一一对应,非空集合A上的等价关系个数等于A的划分个数,即等价关系个数等于划分个数。 转换为数学模型:即将n个小球放入m个相同的盒子中,并且不能出现空盒,不同的放球方式代表着不同的划分方式 再转换为第二类斯特林数:S(n,m)S(n,m),代表以上方法

第二类斯特林数计算方法

  1. 递推公式: 注意到等价于背包问题

4元集等价关系计算

  1. 方法:利用第二类斯特林数计算
  2. 过程:N = S(4,1) + S(4,2) + S(4,3) + S(4,4) = 1=7+6+1 = 15

6元集等价关系计算

  1. 方法:利用第二类斯特林数计算
  2. 过程:
Tips:列出从1-10的BEll数,为 1 , 2 , 5 , 15 , 52 , 203 , 877 , 4140 , 21147 , 115975

2.证明两个集合等势

方法:想办法构造一个双射从而使两个集合之间能够一一对应 常用方法:对于证明类似于[1 , 0]等势于 ,可以使用正切函数或余切函数进行构造

3.概念辨析

  1. A不相容:对于任一解释,A中至少有一子句为假(或者称之为永假或不可满足或矛盾)
  2. A相容:存在一种解释,使得A中所有子句为真(或称之为可满足)
  3. Skolem范式:与A在不相容意义下保持等价
  4. 良序集的条件:1.必须为全续集 2.任何非空子集必须有最小元素

4.证明无限集和实数集等势

方法:构造函数形如

f(x)=x,xR/(QQ)+2f(x) = x , x \in R/(Q \cup Q) + \sqrt{2}

f(x)=g(x),x(QQ)+2f(x) = g(x) , x \in (Q\cup Q) + \sqrt{2}

其中g(x)为 的映射。由于前者为可数集并可数集等于可数集,可数集与可数集之间一定存在一一映射,g(x)存在。 定义域为R,值域为 证明了该函数为从$ R R / Q $的一一映射,即等势得证

转自知乎:https://zhuanlan.zhihu.com/p/385762588

5.一些基础(虽然可能不值得写)

1. 2. 3. 4.空关系是一种等价关系,具有传递性,自反性,对称性 5. 6.一个偏序关系的极大元需要属于这个集合,且极大元的定义是没有比它更大的元素 7.上确界的定义是每个元素都小于等于上确界,且不存在小于上确界的元素成为关系的上界

6.根据无穷公理构造的自然数

1={0}1 = \{0\}

2={0,1}2 = \{0, 1\}

以此类推 我们可以得到

1(2,3,4...)=0\cap 1(2, 3 , 4...) = 0

n=n1\cup n = n - 1

7.考虑在一个集合中各种关系的数量

  1. 反对称关系:对于集合An个元素,由于对于任意的<a,b>,<b,a>或没有这一项有3种可能,且对于<a,a>都存在有或没有的问题,因此答案为2n3x,其中x为点之间连线的个数反对称关系:对于集合A有n个元素,由于对于任意的 < a, b > , < b , a > 或没有这一项有3种可能 , 且对于 < a , a> 都存在有或没有的问题 , 因此答案为 2^n 3^x , 其中x为点之间连线的个数
  2. 反自反且反对称关系:显然,为去除<a,a>的情况,即答案为3x反自反且反对称关系:显然,为去除 <a , a> 的情况,即答案为3^x
  3. 以此类推

8.考虑各种闭包对于关系的破坏

显然自反性(r),对称性(s)不会因为关系的扩张而受到影响,而对称性不一定,因此,我们需要考虑对这种情况谨慎处理

9.求取主析取范式和主合取范式的一些方法

求取主析取范式基本策略:向式子后面补充 ,变成一个一坨巨大的东西之后慢慢利用分配率等方式进行化简 求取主合取范式:利用主析取范式和主合取范式之间的关系可以很快求解,大概为找到剩余的项,然后分别用 减掉即可

  

线性代数期末预习

线性变换的定义

如果我们将线性变换看作是一种对于向量的线性变换关系,这种关系是广义的,可以涉及很多方面。但是,在线性代数层面而不是抽象代数层面,我们当然希望这种变换 是符合线性的,也就是说,我们希望一种变换L\boldsymbol{L}对于向量满足以下关系:

cL(v1)=L(v1)c \boldsymbol{L}\left(\boldsymbol{v}_1\right) = \boldsymbol{L}\left(\boldsymbol{v}_1\right)

L(v1)+L(v2)=L(v1+v2)+L(v2)\boldsymbol{L}\left(\boldsymbol{v}_1\right) + \boldsymbol{L}\left(\boldsymbol{v}_2\right) = \boldsymbol{L}\left(\boldsymbol{v}_1 + \boldsymbol{v}_2\right) + \boldsymbol{L}\left(\boldsymbol{v}_2\right)

这样,我们就说这种变化是一种线性变换。

简化一下:

L(αv1+βv2)=αL(v1)+βL(v2)\\L(\alpha\boldsymbol{v}_1+\beta\boldsymbol{v}_2)=\alpha L(\boldsymbol{v}_1)+\beta L(\boldsymbol{v}_2)

在数学上可以证明,对于一个n维向量aa 和m维向量 bb来说,存在一个矩阵 A\boldsymbol{A}使得Aa=b\boldsymbol{A}a= b成立,这也被称为线性变化的矩阵化表述。

现在拓展到向量之外,如果一种函数或者任何抽象的代数形式,对于 也满足上述 条件,那么,我们也说它是一种线性变换。

特征值(听说还叫本征值)的相关知识

特征值作为矩阵很重要的一个特征量,在整个矩阵学习过程中占据着很重要的位置。首先,在做题过程中,特征值的定义应该首先被考虑 , 是矩阵的特征值,是矩阵的每个特征向量。然后我们需要对于这个式子做恰当变形,如果涉及 , 等情况 ,应该优先考虑在等式两端左乘或者右乘来达到变量代换。上述等式应当作为证明题和计算题的核心。

与此同时,特征值也存在着一些二级公式,如 应当对应于 的特征值。这在某些题目中可能存在一些应用。 其次,特征值是否是半单的也决定着矩阵是否可对角化,矩阵对角化即为将矩阵通过适当的分解使得矩阵能够实现,其中V是

$$ , 是经过 Gran-Summit 正交化的由各个特征向量组成的矩阵。

  

矩阵的最小二乘法和投影矩阵

投影矩阵

对于任何矩阵(即任意的M×N矩阵)\left( 即任意的 \boldsymbol{M}\times N 矩阵\right),都可以通过Gram-Schmidt方法进行正交化,从而分解成一个正交矩阵 A×AT=0A\times \boldsymbol{A}^{T} = 0和一个上三角矩阵的的乘积,也就是我们所说的QR分解,其中Q为正交矩阵,R为上三角矩阵。由此,我们可以得到投影矩阵AP\boldsymbol{A}_P的一种计算方法,即 AP=Q×QT\boldsymbol{A_{P}} = Q\times Q^{T}

对于一阶的R1R^1,由于显然其是否经过正交化与得到的结果仅为相差常数倍的关系,得到的结果并没有本质上的不同,因此对于向量aa来说,其余向量在aa上的投影矩阵显然是a×aTa\times a^T。 而对于二阶及以上的矩阵平面或者空间来说,显然就没有这么简单了。因此需要经过正交化后再进行处理。

最小二乘

在实际条件中,我们往往无法得到一个最完美的解用来满足Ax=b\boldsymbol{A}x = b,因此我们需要找到一个x使得得到的解尽可能接近所需的解,即x^\hat{x}满足A×x^=b\boldsymbol{A}\times \hat{x} = b, 此时,可以左右同时乘以AT\boldsymbol{A}^T使得其能够满足投影矩阵条件,此式可以通过偏导数加以证明,但是我不会(。

应用

由最小二乘和投影矩阵的结合,我们可以得到一个最小二乘中的x^\hat{x}的解法,即ATAx^=ATb\boldsymbol{A}^{T} A\hat{x} = \boldsymbol{A}^{T}b,此式也可以写成 的形式,这也是我要记录的重点。 其中Q是Matrix A\boldsymbol{A}经过Gram-Schmidt方法正交化得到的产物。

在经过这样的过程后求得的x^\hat{x}不仅可以是最小二乘法的解,也可以是minbAx\min\lvert\lvert b-\boldsymbol{A}x\rvert\rvert

补充,SVD分解和最小二乘的关系

我们知道,任何矩阵都可以分解成A=UA=U σ\sigma $V^{T} 的形式,因此,矩阵的广义逆 的形式,因此,矩阵的广义逆 A^+ $ 可以表示为Vσ+UTV\sigma^+ U^{T}的形式,其中V和U前面已经说明,而σ+\sigma^+σ\sigma 的一个广义逆,计算方法是将 σ\sigma上的对角线元素取倒数后进行转置。由此可以算出矩阵的广义逆。

接着往下讲, ,这是通过SVD变换和广义逆进行求解的方法。这个方法与上述所讲的QR\boldsymbol{QR} 分解的本质是一样,但是使用范围更广。

  

一个程序基础课程大作业的很酷的搬箱子游戏

在上vjf小班辅导的时候抽空发了这个post(x,原谅我不认真听课。

我要干啥

这次要发的是在T大xmx老师开设的程序设计基础课上的期末大作业,游戏的本身参考了《人力资源机器》,而我们要做的是用指令行模拟出来一个类似于原游戏的界面。

这个作业的链接

https://github.com/Rosist-Sallina/Cpp_Hugehomework

太懒导致的

因为时间关系和我实在太懒,把OJ部分交给队友之后,很多错误输入处理部分我就直接不做了,这也就导致游戏存在很多漏洞(坏),虽然在正常游玩上没啥问题,但是一旦游戏遇到一些神奇情况就会歇菜,这也是可能需要完善的地方

一些感悟

做程序一定要一次性做到完美,否则后期根据要求再来修改程序真的很痛苦,尤其是在程序写的一团乱麻的时候,在很乱的一堆色块里手动改会耗掉你一下午(坏,泡在图书馆一个下午看写的代码真的痛苦,这还是在有注释的情况下)

北京马o真不错

从来没见过这么多爱马仕导致的

  

简单的自我介绍

Hello你好啊,我是Rosist ,现就读于华清大学计金班,编程很菜但是正在努力学习(X。希望能多多交流喵谢谢喵。

开始摆烂

喵的怎么写啊

有没有一种可能你来到这个网站出自偶然,但是来了就别想跑了喵,我会把你抓进手掌心的喵。

关注周放patra谢谢喵

谢谢喵,关注rosist谢谢喵。

  

:D 一言句子获取中...