数学
文章平均质量分 86
人工智能需要用到的数学
__SAD_DOG__
这个作者很懒,什么都没留下…
展开
-
《算法导论》第六章 -- 堆,堆排序(含习题)
堆 堆,一般是指二叉堆,是指如下的数据结构 将一个数组上的元素从头到尾按照从左向右、从上向下的方式填到一颗二叉树上,就是一个堆。一个最大/小堆表示满足父节点总是大于/小于子节点的堆。堆用于排序的思想 因为堆上的很多操作只需要lgnlgnlgn的时间(包括从一个最大/小堆上取出最大/小值),所以堆可以用于在O(nlgn)O(nlgn)O(nlgn)时间内进行排序。 但是我认为堆最大的用处不在于排序, 而是在于堆维护自己的堆性质的操作基本上只需要lgnlgnlgn的执行时间,当需要对某个数据原创 2021-03-08 23:45:21 · 1046 阅读 · 0 评论 -
《算法导论》习题 6.1
《算法导论》习题 6.16.1-1题目 在高度为h的堆中, 元素个数最多和最少分别为多少解 最少:2h2^{h}2h, 最多2h+1−12^{h+1} - 12h+1−16.1-2题目 证明:n个元素的堆的高度为⌊lgn⌋\lfloor lgn \rfloor⌊lgn⌋解 因为n∈[2⌊lgn⌋,2⌊lgn+1⌋−1]n \in [2^{\lfloor lgn \rfloor}, 2^{\lfloor lgn + 1 \rfloor} - 1]n∈[2⌊lgn⌋,2⌊lgn+1⌋原创 2021-03-07 12:20:27 · 273 阅读 · 0 评论 -
《算法导论》5.4节习题 (有几题做不出来,大佬来帮忙康康)
《算法导论》习题 5.4-1 ~ 5.4-7 5.4 节本身就带星号,这节的题目基本上是概率论的题, 题目都比较简短,我尽量抄一下。有两个算期望的题目我确信自己写出了正确的概率P,但是计算期望的时候级数求和算不出来,后面再看吧,5.4-7和书上特征序列一节相关,这节难度相当大,我暂时完成不了。5.4-1题目 一个屋子里至少有多少人才会使某人和你生日相同的概率至少是 1/2 ?必须要有多少人才能让至少两个人生日为10月1日的概率大于1/2?解 第一小问, 将向屋子里加人其看作概率为 p=1/原创 2021-03-07 01:18:40 · 435 阅读 · 0 评论 -
《算法导论》习题5.3-1 ~ 5.3-7
《算法导论》习题 5.3.1 - 5.3.7 5.3-5 带星号我抄了一下题目, 5.3-6 比较有意思我抄了一下题目, 其他的题可以自己对照书(原书第三版).5.3-1 直接考虑第2次循环前, 第1次循环后第1个位置的元素是原集合1 ~ n中任意一个元素的概率总是 1/n1/n1/n, 所以可以以此为循环不变式的起点而不必使用空集合和0排列。5.3-2 容易证明该算法一定不会产生恒等排列, 因为第一次循环后第一个元素一定是原排列中2 ~ n中的某个元素。现在证明Kelp教授没有实现均匀随机排原创 2021-03-06 12:32:07 · 431 阅读 · 0 评论 -
随机算法思想, 使用循环不变式证明一个O(n)时间的随机排列算法
1. 随机算法1.1 WHY 一个非常显而易见的是事实是: 算法的运行时间常常和输入相关。一个最简单的例子是排序算法, 如果我的输入是已经排好序的算法,那么我就可以不用再排序了。(原始版本的快速排序算法可能不这么认为)。 虽然当我们进行算法分析的时候,常常使用下界来进行分析, 但是有时候知道平均(期望)运行时间是很有必要的。但是当提到期望的时候, 我们不得不对数据的分布做出假设,才有机会分析他的平均情况。但是我们无法知道数据的分布, 或者无法判断我们的输入到底是不是我们猜测的分布。所以,对于不确.原创 2021-03-04 00:47:11 · 208 阅读 · 3 评论 -
算法(三) 代入法(数学归纳法)验证递归算法的界
代入法和数学归纳法求解递归式 高中的时候我就被数学老师告知没有一种通用的手段从一个数列的递推公式得到他的通项公式。所以显然的也没有能对递归算法分析的万能算法。但是万幸的是, 我们总能使用代入法(即数学归纳法)来求证我们的猜测是否正确。1. 得到一个猜测 这是比较玄学的部分了, 可以完全靠灵感, 或者来自递归树分析。2. 数学归纳 数学归纳的基本思想是, 证明较小的参数 k 满足假设(边界条件当然需要满足假设), 并证明 k + 1 或者 k * 2等较大的输入规模下也会 满足假设,这样就证明原创 2021-03-03 15:14:13 · 801 阅读 · 2 评论 -
四元数表示3d空间旋转使用总结
四元数表示3d空间旋转使用总结 最近在写一个小游戏,用到一些使用4元数表示旋转的地方,特此总结一下;1. 关于四元数 再简单讲一下我对四元数的理解吧;和二元数(虚数)类似,4元数可以表示3个自由度的旋转,或者4个自由度的拉伸或者旋转(二元数可以表示1个自由度的2d旋转或者2个自由度的2d拉伸或者旋转);表示的方法就是简单的乘法(左乘,2维旋转交换无所谓左右乘)。 和单位虚数一样,单位四元数构成一个群,单位虚数群是交换的,单位四元数群不交换。 四元数和二元数最大的不同在于,二元数乘法可以直观原创 2021-02-11 01:33:33 · 1113 阅读 · 4 评论 -
一句话理解四元数 -- __SAD__DOG__原创独家的四元数特殊看法
一句话理解四元数 开门见山, 直接说自己的一句话理解吧: 将一个三维物体, 沿着一个三维的轴进行一次四维的旋转, 然后再在四维空间中, 沿着另外一个方向对这个三维物体进行一次与刚刚的旋转方向正好相反的四维旋转, 恰好等于将这个三维物体沿着三这个三维轴旋转两次。公式对应一个三维中的点p和一个有序三元组(xp,yp,zp)(x_p, y_p, z_p)(xp,yp,zp)相互对应一个三维中的轴a和一个有序三元组(xa,ya,za)(x_a, y_a, z_a)(xa,ya,za)相互原创 2021-01-24 15:54:06 · 310 阅读 · 2 评论 -
图论可视化和算法库: cytoscape.js
什么是cytoscape.js cytoscape.js是一个图论相关的可视化, 可响应, 且自带一些基本图论算法的js库。截至我写这篇博客的时候cytoscape.js在github上仍然相当活跃,既有商业应用也有开源软件使用这个库, 是一个相当可靠的库。有兴趣请访问其官方网站使用cytoscape.js cytoscape可以跑在各种各样的地方,浏览器和Node.js都可以使用, cytoscape.js也提供了各种包格式。基本概念element 一个图最基本的元素就是“节点”(nod原创 2021-01-15 22:58:58 · 1048 阅读 · 0 评论