三行写完高斯消元,这就是Python!!!
三行写完高斯消元,这就是Python!!!
洛谷评测链接
先给大家看一眼核心代码
核心代码
123for i in range(len(a)): row = [j for j in range(len(a)) if a[j][i] != 0 and sum(a[j][:i]) < 1e-8][0] a[:] = [r + a[row]*(-r[i]/a[row][i]) if j != row else r/a[row][i] for (j,r) in enumerate(a)]
没错,就只有三行,完成了高斯消元最核心的操作,把矩阵消元成主对角线为1,其余除了常数项全是0的形式。我只用了Python中的切片操作,列表解析式,还有numpy中array的性质。
为了方便大家理解,我先来介绍一些这些python中的语法
python语法介绍
切片
语法格式是 [开始:结束]
可以取出列表中的一段区间,如果不填写就是默认开始位置是0,结束位置是列表最后一个元素位置。注意这里的区间是左闭右开区间。并且支持倒着数,也就是使用负号
比如:
12345l = ...
理论计算机学
Formale Sprachen
语言问题(Wortproblem):给定一个字符串,这个字符串是由某个语法生成的吗?也就是它是否符合某个语法规则。
识别器(Recognizer):
一个能解决对应语法的语言问题的抽象
基本概念
定义2.1
一个字母表(Alphabet) \(\Sigma\)
是一个有限集合。比如 ASCII, Unicode
一个语句(Wort/String) 是从字母表中组合出的有限字母序列,比如
010
\(|w|\) 指代语句的长度
空字符串是 $$
若 \(u,v\) 是语句,那么 \(uv\) 是它们的组合(Konkatenation)
若 \(w\) 是一个语句,那么 \(w^{n}\) 是如下定义的: \[
w^{0}=\epsilon \text { , } w^{n+1}=w w^{n} . \text { Bsp: }(a b)^{3}=a b
a b a b
\]
\(\Sigma ^{*}\) 是字符集 \(\Sigma\) 的所有语句
子集 \(L \subseteq \Sigma^{*}\)
是一 ...
编译原理
语义分析
大观念是输入一个程序文本,我们把它分解为一个个小的词组(Token)
image-20200430170243609
Token
名字 , \(xyz, pi\)
常数 , \(43, 5.32\)
操作符 \(+,=\)
保留字 $if ,int $
Siever
在做分析之前,我们要进行预处理(pre-processing):
扔掉多余的: 空格,注释
收集Pragmas,
用它们更具体的含义代替 Token,比如constants,names
正则表达式
\(\Sigma\)
时程序编写的有限字符集
定义:正则表达式的集合 \(E
_{\Sigma}\) 时最小的集合 \(E\)
,满足:
\(\epsilon \in E\) ($$ 不是 \(\Sigma\) 中的新符号)
\(a \in E\) 对于所有 \(a \in \Sigma\)
\(\left(e_{1} | e_{2}\right),\left(e_{1}
\cdot e_{2}\right) |, e_{1}^{*} \in ...
信号学
信号与系统
信号系统概念
信号的分类
确定信号:可以用函数描述的
连续信号:在\((-\infty,
\infty)\) 时间内有定义
离散信号
可以写成 \(f(k) = \{..., 0,
1,1.5,3,-2,0,...\}\)
随机信号:不能用函数描述的,只能知道概率
周期信号和非周期信号
连续信号的周期
连续周期信号\(f(t)\) ,周期是\(T\),满足: \[
f(t)=f(t+ m T), \quad m = 0 , \pm 1 ,\pm 2, \dots
\] 比如余弦信号 \(\cos \omega
t\) ,周期是 \(T=2 \pi /
\omega(s)\)
若两个周期信号相加,判断\(T_{1} /
T_{2}\) 是有理数。如果是那就是。
离散信号周期
周期是\(N\) : \[
f(k)=f(k+ m N), m = 0 ,\pm 1,\pm 2, \dots
\]
能量与功率信号
能量等于损失功率的积分,可以想象成是一个1欧姆的电阻的电功率
将信号 \(f(t)\) 施加于\(1 \Omega ...
线性代数
矩阵
\(K\) 永远是个物体(Körper)
,比如\(K= R , C , Q , F _{2}
\ldots\)
定义1.1 矩阵的定义
\(m,n \in N_{>0}\) , 一个\(m*n\)的矩阵式一个矩形的序列 \[
A=\left(\begin{array}{cccc}
a_{1,1} & a_{1,2} & \cdots & a_{1, n} \\
a_{2,1} & a_{2,2} & \cdots & a_{2, n} \\
\vdots & \vdots & & \vdots \\
a_{m, 1} & a_{m, 2} & \cdots & a_{m, n}
\end{array}\right)
\] 其中 \(a_{i, j} \in K\)
。根据定义我们知道,若两个矩阵相等,当且仅当它里面所有元素都相等。矩阵还有其他写法:
\[
A=\left(a_{i, j}\right)_{i=1, \ldots, m\atop j= ...
计算机网络
层次模型
一共有7层
image-20200426100702045
物理层
信号是随时间变换的,可物理测量的量。信号变化可以对于一个符号。这些符号就是信息。
信息含量(Informationsgehalt)是这个符号可以传递多少信息。
一个信息出现次数越少,它的信息含量越高
字符串的信息含量是所有字符信息含量的和
可预测的字符信息含量是0
信息的定义
信息存在于一个信号的变化预知的不确定性。一个字符 \(x \in X\)
的信息含量与它出现的概率 \(p(x)\) 有关。 \[
I(x)=-\log _{2} p(x) \quad \text { mit } \quad[I]= bit.
\] 熵(Entropie)是一个信息源的信息含量 \[
H(X)=\sum_{x \in X } p(x) I(x)=-\sum_{x \in X } p(x) \log _{2}(p(x))
\] 其中的\(p(x)\) 也可以写成
\(Pr[X=x]\)
有条件的熵
有条件的熵(bedingte Entropie)指当X已知的时候Y的不 ...
概率论
离散概率空间
基础部分
定义1 离散概率空间
离散概率空间(diskreter
Wahrscheinlichkeitsraum)是单位元事件(Elementarereignis)的所有结果集合(Ergebnismenge)
\(\Omega = \{w_{1},w_{2},\dots\}\)
。
定义2 单位元事件
每个事件元素 \(w_{i}\)
都对应一个可能性 \(\text{Pr}[w_{i}]\)
,其中\(0 \leq \text{Pr}[w_{i}] \le 1\),
并且 \[
\sum_{\omega \in \Omega} \operatorname{Pr}[\omega]=1
\] #### 定义3 事件
集合 \(E \subseteq \Omega\)
是事件,该事件的概率是 \[
\operatorname{Pr}[E]:=\sum_{\omega \in E} \operatorname{Pr}[\omega]
\] 事件 \(\bar{E}\) 是事件 \(E\) 的对立事件(komplementäres
Ereign ...
网络流思路汇总
网络流理论
网络
定义1.1 一个网络 \(N=(V,A)\)
是指一个连通无环弧且满足下列条件的有向图:
由一个顶点子集 \(X\),其每个顶点的入读都为0
由一个与 \(X\) 不相交的顶点子集
\(Y\) ,其每个顶点出度都为0
每条弧都有一个非负的权值,成为弧的容量
上述网络可以写成 \(N=(V,X,Y,A,C)\)
,\(X\)
是源点集,\(Y\)是汇点集合,其他顶点成为中转点,\(C\) 是网络的容量函数。它是定义在弧 \(A\) 上的非负函数
如果源点集和汇点集都只含一个顶点,那么这个网络是单源单汇网络
。任何一个网络可以转换成一个单源单汇的网络,方法是加一个超级源点和超级汇点
image-20200326111029177
如果顶点需有容量,那么可以用拆点的方法实现:
image-20200326111150935
网络流与割
定义1.2 网络 \(N=(V,X,Y,A,C)\) 中的一个(可行)流是指定义在
\(A\) 上的一个整值函数\(f\) ,使得
对 \(\forall a \in ...
离散数学
离散数学
基础概念
集合的概念
包含$ M_{1} M_{2} $ : 每一个\(M_{1}\)的元素都属于\(M_{2}\)
不包含于 $ M_{1} M_{2}\(:有一个\)M_{1}\(的元素不属于\)M_{2}$
差集 \(M_{2} \backslash M_{1}\):
\(M_{2}\)里去除\(M_{1}\) 的元素
真包含于 \(M_{1} \subsetneq M_{2}\):
满足$ M_{1} M_{2} $,且 \(M_{2} \backslash
M_{1}\)不是空集
对称差集 (symmetrische Differenz) \(M_{1}
\Delta M_{2}\): 在\(M_{1}\)不在\(M_{2}\)和在\(M_{2}\)不在\(M_{1}\)的元素
集合的容量(Mächtigkeit/Kardinalität) \(|M|\): 集合中(不同)元素的个数
有限集: \(|M|<\infty\)
全集(Universum):\(\Omega\)
补集(Komplement):\(\bar{A}\)
交集 ...
人工智能
人工智能
Intelligent Agent
通过传感器(sensors)察觉周围环境
执行器(actuators)根据环境做出反应
Agents interact with environments through actuators and sensors.
Percept sequence
感知的序列
Agent function
根据感知的序列映射出一个动作
可以选择列表(Tabular Agent Function)或者写程序(Agent Program)。
表格可以在理论上很好的描述(Expressiveness)一个agent的行为,但是缺乏实践意义(Practicality)
Agent program 是agent function的实际实现(practical
implementation)
Rational Agent
理想的agent, 一直做"正确的"事情
显然的表现评估法则(performance measure)并不总有
设计者需要找到一个可接受的评估法则
对于一个感知序列,一个理想的agent需要选择行动 ...