python基础
基本用法
行尾加 \ 实现换行
print( x, end=” “ ) 不换行
input
# 注释 ‘’’ ‘’’多行注释
tab键查看对象方法
if
1234567891011if true : #通过缩进控制 print()elif true : print()else : print()
for12for 迭代变量 in 字符串|列表|元组|字典|集合: print()
可以配合range()食用 (1,6,2)是从1到5步长为2
遍历字典默认返回keys(),可以用values()\items()方法
while123456i = 0while i < len(add): print(add[i],end="") i = i + 1else: print("\n执行 else 代码块")
break
continue
数据类型
python中变量不需要声明类型
不可变数据:Number、String、Tuple
可变数据(3 个):List、Dictionary、Set
索引有前后索引
...
矩阵基本公式
今天矩阵代数第一次写题,都是些基本概念,但是还是不会。现在东西学的又杂又乱,真不是光听就可以听懂了。
常用公式前提就不说了,自己注意
计算公式
乘法
ABC=A(BC)
A(B+C)=AB+AC
行列式
|AB|=|A||B|
转置
(kAB)^T=kB^TA^T
(A+B)^T=A^T+B^T
逆
(kAB)^{-1}=\frac{1}{k}B^{-1}A^{-1}
(A+B)^{-1} \neq A^{-1}+B^{-1}
当C=A*B是有:
c_{ij}=\sum^{n}_{k=1}a_{ik}b_{kj}
基本性质
特征值
\lambda=eig(A)
\lambda^*=eig(A^H)
\lambda^{-k}=eig(A^{-k})
eig(AB)\neq eig(A)eig(B)
eig(A+B)\neq eig(A)+eig(B),但B变成单位阵成立
数据结构·图
图的存储结构邻接矩阵*item 存每个顶点的信息
**matrix 存二维的邻接矩阵
邻接表
顶点跟上顶点后的子节点标记
有tag用来存储顶点是否访问过
邻接多重表
特指无向图的结构,因为其特性不用tag来标记
增加边的话,直接加在边节点尾部,null后面
十字链表
有向图的邻接多重表,因此有了出度、入度的概念
图的遍历深度优先算法
广度优先算法
最小生成树生成树:极小连通子图
最小生成树:对于带权连通图(网络),权值总和最小
克鲁斯卡尔算法像并查集一样,森林变成树
普利姆算法一个一个加进去
最短路径迪杰斯特拉算法 正数
确定最短路径
用1的点迭代修改极短路径
贝尔曼-福特算法
迭代修改极短路径
弗洛伊德算法
二维的迭代修改极短路径
活动网络AOV
例子:先修课程
AOV网络中若没有有向环,则可以进行拓扑排序,且拓扑序列不唯一
使用邻接表存储,因为只有出度没有入度,因此用InDegree数组存储入度信息
AOE
例子:工程完成时间
量
最早发生时间
最晚发生时间
时间余量
矩阵代数分解
按课程顺序,讲矩阵分解之前是将矩阵分解。
分析:确定量的特征值的坐标系
分解:矩阵分解 (decomposition, factorization)是将矩阵拆解为数个矩阵的乘积,可分为三角分解、满秩分解、QR分解、Jordan分解和SVD(奇异值)分解等。
几种分解初等变换 (任意)方阵 A 与 B 等价的充要条件是存在 m 阶可逆矩阵 P 及 n 阶可逆矩阵 Q ,使 PAQ = B .(差不多就这定理的意思)
三角分解 (任意)
PA=LU白话:矩阵A换行以后,可以表示为下三角乘上三角矩阵
matlab: [L,U,P] = lu(A)
Cholesky分解(乔里斯基) (实对称正定方阵)
A=LL^T
L为非奇异下三角矩阵。
若限定L的对角元素为正,则这种分解是唯一的.
matlab:chol(A)
C.Schur分解 (方阵)
A=PRP^TP为酉矩阵,R为对角线为特征值的上三角矩阵
matlab: [P,R]=schur(X)
因为X的特征值有实数解和复数解,所以有
schur(X,’real’)
schur(X,’complex’ ...
matlab矩阵处理
求逆 inv() == A^(-1)
diag([对角元素]) 对角矩阵
chol()
vander([规定一列])范德蒙矩阵
hadamard()哈达玛矩阵
toeplitz(Array1) Toeplitz矩阵/斜对称矩阵;
toeplitz(Array1,Array2) 行,列
hankel(c,r) Hankel矩阵(用法同上)
kron() kronecker积
[Q,R]=qr(A) QA分解
rref(A) 矩阵A的最简行阶梯形
norm(A,p) 求范数,A为函数或向量
linsolve(A,b) 求线性方程组
JS对象
参考文献:原文
原型链:访问一个对象的属性时,先在基本属性中查找,如果没有,再沿着proto这条链向上找,这就是原型链。
JS函数
在JS中,函数的参数是由arguments数组控制的。因此要记住,JS中传入的参数和函数中的形参没有一一对应的关系。JS中也没有重载等概念。
集合引用类型
Object对象字面量(cbject literal)
Array数组字面量(array literal)every
Array内置对象Array Array.from()
Array Array.of()
bool Array.isArray()
Array创建的对象默认的方法:toString() toLocalString() valueOf()·····
填充 输出
Array Array1.fill(填充数,上界,下界)
Array Array1.copyWithin(开始重写的索引,选取上界,选取下界)
Array Array1.join(“||”) 输出的时候用什么分开
模拟栈 队列
Number Array1.push() 返回最新长度
Elemtype Array1.pop() 栈删除,返回删除的值
Elemtype Array1.shift() 队列删除,返回删除的值
排序(返回引用)
Array Array1.reverse() 反向排列
Array Array1.sort()
默认按字符串ASCII比较,升序
(v ...