数学

算法分类合集

二次信任 提交于 2020-01-06 08:18:08
算法分类合集 ACM 所有 算法 数据结构 栈,队列,链表 哈希表,哈希数组 堆,优先队列 双端队列 可并堆 左偏堆 二叉查找树 Treap 伸展树 并查集 集合计数问题 二分图的识别 平衡二叉树 二叉排序树 线段树 一维线段树 二维线段树 树状数组 一维树状数组 N维树状数组 字典树 后缀数组,后缀树 块状链表 哈夫曼树 桶,跳跃表 Trie树(静态建树、动态建树) AC自动机 LCA和RMQ问题 KMP算法 图论 基本图算法图 广度优先遍历 深度优先遍历 拓扑排序 割边割点 强连通分量 Tarjan算法 双连通分量 强连通分支及其缩点 图的割边和割点 最小割模型、网络流规约 2-SAT问题 欧拉回路 哈密顿回路 最小生成树 Prim算法 Kruskal算法(稀疏图) Sollin算法 次小生成树 第k小生成树 最优比例生成树 最小树形图 最小度限制生成树 平面点的欧几里德最小生成树 平面点的曼哈顿最小生成树 最小平衡生成树 最短路径 有向无环图的最短路径->拓扑排序 非负权值加权图的最短路径->Dijkstra算法(可使用二叉堆优化) 含负权值加权图的最短路径->Bellmanford算法 含负权值加权图的最短路径->Spfa算法 (稠密带负权图中SPFA的效率并不如Bellman-Ford高) 全源最短路弗洛伊德算法Floyd 全源最短路Johnson算法 次短路径

用数学的方法来写算法-续

回眸只為那壹抹淺笑 提交于 2020-01-06 01:18:20
上周我写了一篇算法求解的文章 用数学的方法来写算法 文章的最后我说我这个算法的效率其实还可以提高一倍,好几天过去了,没有人发现这其中的奥秘,我今天把答案公布一下吧,说出来大家会觉得很简单,其实写算法也好,搞开发也好,技术这种东西无非就是一层窗户纸,说出来就没那么神秘。今天我就捅破这层窗户纸。 原题是这样的: 下面是我上篇文章的解法 设 数列的 起始数为 n ,从 n 开始 累加到 n + m 后的总和为 s 其中 m 为大于0 的正整数。 则 s = (n + n + m) * (m+1) / 2; 这道题我们需要已知 s 和 m 的情况下求n 那么 n = s / (m+1) – m / 2; 对分子,分母合并后 n = (2 * s – m * (m+1))/(2*(m+1)); 到这里,我们要解决的问题就是找到所有使等式右边可以整除的 m 就可以了。 原文作者的思路和这个应该差不多,只是实现逻辑上有些繁琐,而且他是m从 1 到 s/2 这样穷举, 其实我从上面的公式可以看出,这里m 和 n 是成反比的,随着m的增加,n会逐渐减小,当n 小于1时,我们就可以终止这个运算。 下面我给出根据这个公式推导出来的算法实现的代码 static void GetAllSerials(int s) { int n = 0; int m = 1; do { int up = 2 * s - m

机器学习需要的数学总结

落花浮王杯 提交于 2020-01-05 22:10:59
数学知识 数学知识总括 微积分(高等数学) 线性代数 概率论与数理统计 凸优化 微积分 微积分学,数学中的基础分支。内容主要包括函数、极限、微分学、积分学及其应用。函数是微积分研究的基本对象,极限是微积分的基本概念,微分和积分是特定过程特定形式的极限 微积分/高等数学。在机器学习中,微积分主要用到了微分部分,作用是求函数的极值,就是很多机器学习库中的求解器(solver)所实现的功能。在机器学习里会用到微积分中的以下知识点: 导数和偏导数的定义与计算方法 梯度向量的定义 极值定理,可导函数在极值点处导数或梯度必须为0 雅克比矩阵,这是向量到向量映射函数的偏导数构成的矩阵,在求导推导中会用到 Hessian矩阵,这是2阶导数对多元函数的推广,与函数的极值有密切的联系 凸函数的定义与判断方法 泰勒展开公式 拉格朗日乘数法,用于求解带等式约束的极值问题 其中最核心的是记住多元函数的泰勒展开公式,根据它我们可以推导出机器学习中常用的梯度下降法,牛顿法,拟牛顿法等一系列最优化方法: 线性代数 线性代数的理论是计算技术的基础,同系统工程,优化理论及稳定性理论等有着密切联系,随着计算技术的发展和计算机的普及,线性代数作为理工科的一门基础课程日益受到重视。线性代数这门课程的特点是概念比较抽象,概念之间联系很密切。内容包括行列式,矩阵,向量空间,线性方程组,矩阵的相似对角化,二次型

机器学习中的重点数学知识

混江龙づ霸主 提交于 2020-01-05 22:09:51
深度学习中的数学 1、数学是基石,编程为工具 2、深度学习基本全是优化问题(数学) 微积分知识重点: ① 导数:导数法则、常见的函数的导数、 ② 多元函数的导数:求梯度(偏导数)、二阶导数和hess矩阵 l 为什么需要使用矩阵表达多元函数? 方便计算、简洁 l 二次型求梯度 特别简单(需要了解:张矩阵)、 泰勒级数和极值: l 实际中我们想求一个函数的极值点: 令f’(x) = 0, 哇,太难了 ............ 怎么办?(泰勒展开) 一阶函数函数的导数是一个数,可以确定函数的极值点。 但是二阶、多阶呢? 写成二次型后求 hess 矩阵,判断 hess 矩阵的正定性。 l 为什么要用梯度下降法??? 使用泰勒展开,如果 δ为函数的梯度, 为了求出 f’(x) = 0 ,是一种迭代求法。 概率论知识 : 随机变量:分布函数、累积分布函数(求概率)、概率密度函数(累积分布函数的导数) l 高斯分布(最完美的分布) 对称轴: μ 分散程度:δ 独立的高斯变量相加 仍然是高斯分布!(神奇) 。 X = x1 + x2 + x3 (三项以后) ( 任意独立分布加起来 也是高斯分布 ) 贝叶斯公式 (机器学习中最重要的公式) : 矩阵重点: 特征值和特征向量的理解: Ax = λ x 这个式子是如此的简单粗暴,以致于从这个公式来看,给向量 x 乘上一个矩阵 A

概率论与数理统计教学内容

≡放荡痞女 提交于 2020-01-05 22:09:13
概率论部分 Chapter 1: 随机事件及其概率 1 随机试验;样本点;样本空间 2 随机事件, 必然事件, 不可能事件, 互不相容事件, 对立事件;随机事件的关系及运算 3 概率的定义 4 概率的性质:有限可加性,减法公式,加法公式,及推论 5 条件概率及乘法公式 6 两个事件相互独立的定义及性质;多个事件相互独立的定义及性质 7 伯努利概率模型 8 全概率公式 9 贝叶斯公式 Chapter 2: 随机变量及其分布 1 随机变量;离散型随机变量;连续型随机变量 2 分布函数及性质 3 离散型随机变量的分布率及性质;连续性随机变量的概率密度函数及性质 4 常见的离散型随机变量的分布:0-1 分布;二项分布;泊松分布 5 常见的连续型随机变量的分布: 均匀分布;指数分布;正态分布 6 随机变量的函数的分布: 离散型随机变量函数的分布;连续型随机变量函数的分布(分布函数法和公式法) Chapter 3: 数字特征 1 数学期望;离散型随机变量的期望;连续型随机变量的期望;随机变量的函数的期望 2 数学期望的性质 3 方差;标准差 4 方差的性质 5 变异系数(注:不是很重要) 6 常见随机变量的期望和方差: 两点分布的期望和方差;泊松分布的期望和方差;均匀分布的期望和方差;指数分布的期望和方差;正态分布的期望和方差 Chapter 4 : 随机向量(或称多维随机变量)及其分布 1

深度学习的数学基础

大憨熊 提交于 2020-01-05 22:08:41
深度学习的数学基础 微积分 无穷小 在17世纪下半叶,数学史上出现了无穷小的概念,而后发展处极限的概念 极限 数列的极限 函数的极限 导数 微分 积分 不定积分 也称为原函数或反导数 定积分 定积分中值定理 牛顿-莱布尼茨公式 偏导数 概率统计 样本空间 定义:随机试验 E 的所有结果构成的集合称为 E 的 样本空间,记为 S={e} 称 S 中的元素 e 为样本点,一个元素的单点集称为基本事件. 概率 条件概率/后验概率 P(A|B) 边缘概率/先验概率 A的边缘概率表示为P(A),B的边缘概率表示为P(B) 联合概率 全概率公式 贝叶斯公式 随机变量 离散型随机变量 对离散随机变量用求和得全概率 定义 (0-1)分布/两点分布/伯努利分布 二项分布 泊松分布(Poisson分布) 连续型随机变量 对连续随机变量用积分得全概率 概率分布函数F(x) 概率密度函数f(x) 均匀分布 X~U(a,b) 指数分布 正态分布/高斯分布 是研究误差分布的一个理论 期望 离散型随机变量的期望 连续型随机变量的期望 方差(Variance) 一个随机变量的方差( Variance )描述的是它的离散程度,也就是该变量离其期望值的距离 标准差(Standard Deviation) 方差的算术平方根称为该随机变量的标准差。 样本标准差 协方差 相关系数(Correlation

机器学习_基础数学

☆樱花仙子☆ 提交于 2020-01-05 22:06:58
机器学习中所需要用到的数学知识: 微积分  线性代数  概率论  最优化方法 1.导数 求导公式 (一元)左导数与右导数都存在且相等,此处的导数才存在。 基本函数求导: 两个重要极限:   单调有界的序列必定收敛   夹逼定理 导数四则运算: 复合函数求导: 高阶导数: 导数与函数单调性的关系: :函数在此点单调增 :函数在此点单调减 极值定理: :(驻点)函数在此点是极值点,可能是极大值(二阶导小于零),也可能是极小值(二阶导大于零)可能是拐点(二阶导等于零) 拐点是凹函数与凸函数的交替点。 导数与函数凹凸性的关系: 凸函数:函数内任意两点的连线,大于两点间的任一点的函数值。 凹函数:函数内任意两点的连线,小于两点间的任一点的函数值。 二阶导大于零,是凸函数。 二阶导小于零,是凹函数。 2.一元函数泰勒展开 3.向量 向量与其运算: 向量分为行向量和列向量。 转置:行向量转置变为列向量,列向量转置变为行向量。 加法:对应位置分量相加 减法:对应位置分量相减 数乘:数与每个分量分别相乘 内积:两个向量的对应分量相乘再相加,两个向量转换为一个标量 a=(a1,a2,...,an),b=(b1,b2,...,bn)-------->a与b内积=a1b1+a2b2+...+anbn 向量的范数 L-P:L的P范数: ,P一般取整数。 L-1范数: L-2范数: 3.矩阵 矩阵与其运算

导数

六月ゝ 毕业季﹏ 提交于 2020-01-05 13:33:29
【导数】是用来分析变化的。 导数有什么用? 导数是用来分析变化的。 以一次函数为例,我们知道一次函数的图像是直线,在解析几何里讲了,一次函数刚好就是解析几何里面有斜率的直线,给一次函数求导,就会得到斜率。 曲线上的一点如何向另一点变化,就是通过倾斜度的“缓”与“急”来表现的。对一次函数求导会得到直线的斜率,对曲线函数求导能得到各点的斜率。 综上所述,导数是用来分析“变化”的工具。 导数是什么 用下面的图来说明导数是什么 某一点的斜率和瞬间斜率 课本上讲了函数的瞬时变化率,但是对于同学们来说,这个讲法太不好理解。我们还是用,解析几何里面经常讲的斜率来说比较好。 前面说了,导数的目的是分析变化。突然提出“变化”,你可能无法理解,我们以过山车为例来说明一下。 ​ 过山车的车道多为曲线,因此我们可以认为乘坐者是在过山车的轨道曲线上移动。过山车向下俯冲、水平前行、向上攀升,在不同的地点,乘坐者的身体会产生拉、拽或失重等不同感受。这种状况出现的重要原因之一,就是身体的方向和速度发生了变化。过山车的轨道为曲线,乘客在轨道上任意一点的方向和趋势都不相同。 ​ 以数学思维来思考该话题的话,函数图形中的曲线就相当于过山车轨道,图形上的点就是飞驰在轨道上的过山车。试着描绘一下过山车在曲线各点上的运动趋势,会发现它们都朝着各自不同的方向前进。只是不知道图形上点的移动速度而已。 ​

MySQL中DQL的单表查询

左心房为你撑大大i 提交于 2020-01-03 05:02:41
-- 单表查询对应练习题 https://blog.csdn.net/ksaar_/article/details/103811410 -- 创建表 CREATE TABLE stu ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(32), age int(11), sex varchar(1), address varchar(20), math double(5, 2) NOT NULL DEFAULT 0.00, english double(5, 2) NOT NULL DEFAULT 0.00, PRIMARY KEY (id) ) AUTO_INCREMENT = 1; -- 添加数据 INSERT INTO `stu` VALUES (1, '浩诚', 35, '女', '阿富汗', 90.00, 30.00); INSERT INTO `stu` VALUES (2, '彭超', 20, '男', '阿富汗', 70.00, 60.00); INSERT INTO `stu` VALUES (3, '余旭', 20, '男', '阿富汗', 50.00, 30.00); INSERT INTO `stu` VALUES (4, '刘诚', 18, '女', '湖北', 90.00, 98.00); INSERT