Hope is a dangerous thing, but I have it.


  1. 【基础配置】用jupyter notebook进行hexo博客管理

    我很久都没有再发博客,很大一部分的原因是我总是很懒得切换系统去发博客,而且我的linux输入法有问题每次都需要重装,这让我觉得很痛苦。前几天丁丁给我安利了jupyter notebook,我也恰巧想把博客转成一个随记的地方,就配置了试试。 准备工作 我是在服务器上安装jupyter notebook,系统是Linux。这里有一个官方的安装配置的[介绍][1],可以参考下。 [1]: http://jupyter.org/install.html   智障的我一开始以为是本地安装,虽然后面改…

    python, 配置阅读全文

  2. 【基础方法】Gradient Descent(梯度下降)

    这段时间不是很忙,也看到Andrew Ng在Coursera上的machine learning开课了,就顺带着看看。第一周和第二周讲的都是比较简单的问题,主要就是介绍了Cost Function以及最小化的几个方法。我这里要说的就是其中的一种:Gradient desxcent(梯度下降)。   梯度下降这个概念对很多人来说都不是很熟悉了,我之前看过关于HOG(方向梯度直方图)的一篇论文,再看梯度下降就有种熟悉感。 梯度下降的思想 在介绍梯度下降之前我们先引入一个Cost functio…

    matlab, 机器学习, MathJax阅读全文

  3. 【刷题小结】华为2016研发工程师编程题-数独

    题目描述 数独是一个我们都非常熟悉的经典游戏,运用计算机我们可以很快地解开数独难题,现在有一些简单的数独题目,请编写一个程序求解。 输入 输入9行,每行为空格隔开的9个数字,为0的地方就是需要填充的。 输出 输出九行,每行九个空格隔开的数字,为解出的答案。 示例 输入 0 6 0 5 9 3 0 0 0 9 0 1 0 0 0 5 0 0 0 3 0 4 0 0 0 9 0 1 0 8 0 2 0 0 0 4 4 0 0 3 0 9 0 0 1 2 0 0 0 1 0 6…

    刷题, C++阅读全文

  4. 【刷题小结】华为2016研发工程师编程题-字符集合

    题目描述 输入一个字符串,求出该字符串包含的字符集合。 输入 每组数据输入一个字符串,字符串最大长度为100,且只包含字母,不可能为空串,区分大小写。 输出 每组数据一行,按字符串原有的字符顺序,输出字符集合,即重复出现并靠后的字母不输出。 示例 输入 abcqweracb 输出 abcqwer 解题 思路 这道题我看到的时候就决定用set来写,但是一开始没有看到按照原来的顺序输出,所以WA了一发。后来发现可以不需要用set来保存数据,只需要用set来…

    刷题, C++阅读全文

  5. 【刷题小结】华为2016研发工程师编程题-删数

    我原来是没有打算把做过的题写成博客的,因为大部分还是基础题,而且我往往都是暴力求解,不太优雅。但是做了这道数独题对我还是很有启发的,虽然我仍然用的是暴力求解。做过的很多题有些有着很精巧的解法,但是往往随着时间过去也不太记得了。本地的很多cpp文件总是不能同步带走,而且很多做题的网站查看代码也不是很方便,所以就记录一下权当纪念了。 题目描述 有一个数组a[N]顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:…

    刷题, C++, MathJax阅读全文

  6. 【基础方法】Harr 小波变换

    我在网上了解小波变换的时候,发现它是常用于信号处理的一种方法,但是在论文里也常看到小波变换用于图像处理。小波函数在一定的时间间隔内波形幅度的平均值为0。现在有很多小波函数,Haar小波变换函数是其中最基础的一种,是最简单的正交归一化小波 Harr 简介 我们先看一下Harr相关的函数图形: 由上图可以以得知Harr小波函数是一个支撑域(函数$\psi(t)$不为0的区间)在$[0,1]$内的单个矩形波,公式如下: $$\psi(t)=\begin{equation} \left \{…

    matlab, 机器学习, MathJax阅读全文

  7. 【基础方法】主成分分析(Principal Component Analysis)

    我们在做图像处理的时候,为了避免提取的特征维数太高使得计算速度变慢,可以用下面几种方法降低特征的维数: * 在一开始的时候对图片预处理,降低图片本身的维数。 * 在特征提取的过程中对特征进行处理,降低特征的的维数。(比如对LBP特征进行直方图统计,就有均衡模式的LBP这个方法来降低特征的维数) * 采用一些降维德方法。(比如我们要介绍的PCA) 数学理论   PCA降维的思想方法是找到一个投影矩阵,这个矩阵对应了一个维数更低的空间,样本经过和这个投影矩阵运算,可以变成维数更小的…

    机器学习, matlab, MathJax阅读全文

  8. 【基础方法】Trie Tree(字典树)

    之前有看到过这个概念,但是没有认真了解过,这次刷hihoCoder的题目看到了这个。   Trie Tree,也就是常说的字典树。它利用了空间换时间的思想,用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,提高查询效率。它是一种多叉树的结构,对它来说,每一个结点由值域和链域两部分组成,值域保存这个结点对应的字符数和以到这个结点的所有的字符组成的字符串为前缀的字符串个数,链域则是指向该结点后继的结点。树的形式极大地减少了比较的次数,便于查找。   对于一个结点来说,链域的存储方…

    C++, 算法阅读全文

  9. 【课程学习】逆矩阵

    逆矩阵也是我们在进行矩阵运算时很常用到的一个概念。 相关概念 * 奇异矩阵:该$n$阶方阵对应的行列式为0. * 非奇异矩阵:该$n$阶方阵对应的行列式不为0. * 伴随矩阵:将原矩阵中的所有元素换成该元素对应的代数余子式,并转置得到的矩阵,记为$A^* $。  注意,伴随矩阵有一条重要的性质:$AA^* =A^* A=|A|E$,由此可以推出:$A\frac{A^*}{|A|}=E$ 通过这个方法,我们可以用Matlab求得一个矩阵的伴随矩阵。 >> A=…

    matlab, 线性代数阅读全文

  10. 【课程学习】行列式

    讲真我也只是记得这个概念了,计算方法什么的都不太记得了,真是对不起我线性代数的老师。大概也是因为现在都是用的矩阵的运算,行列式接触的比较少吧。不过原来学习过的基础还在,复习起来还是很快的。 行列式的概念 二阶行列式   行列式是一种基本的数学工具,行列式理论是由求解n元线性方程组的实际需要建立、发展起来的。   行列式是有一个数值的,最简单的是二阶行列式,二阶行列式计算有一个很简单的公式: $$ \left|\begin{array}{cccc} a_{11} &    a…

    线性代数, matlab, MathJax阅读全文