
算法
chenbang110
学习是最快乐的事
展开
-
How to Convert Temperature (K) to RGB: Algorithm and Sample Code
转自:http://www.tannerhelland.com/4435/convert-temperature-rgb-algorithm-code/How to Convert Temperature (K) to RGB: Algorithm and Sample CodeConverting temperature (Kelvin) to RGB: an ove转载 2017-02-20 11:38:29 · 1434 阅读 · 0 评论 -
螺旋矩阵编程实现
今天看到google的一道面试题为输出如下的矩阵(输入为方阵的行数N)A[]=1 16 15 14 132 17 24 23 123 18 25 22 114 19 20 21 105原创 2012-10-26 00:15:59 · 3077 阅读 · 2 评论 -
快速排序 快速搞定
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。 总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快转载 2012-10-19 15:49:26 · 438 阅读 · 0 评论 -
循环冗余检验 (CRC) 算法原理
Cyclic Redundancy Check循环冗余检验,是基于数据计算一组效验码,用于核对数据传输过程中是否被更改或传输错误。算法原理假设数据传输过程中需要发送15位的二进制信息g=101001110100001,这串二进制码可表示为代数多项式g(x) = x^14 + x^12 + x^9 + x^8 + x^7 + x^5 + 1,其中g中第k位的值,对应g(x)中x^k的系数。将转载 2012-10-11 21:58:43 · 846 阅读 · 0 评论 -
一些比较重要的算法
下面是一些比较重要的算法,原文罗列了32个,但我觉得有很多是数论里的,和计算机的不相干,所以没有选取。下面的这些,有的我们经常在用,有的基本不用。有的很常见,有的很偏。不过了解一下也是好事。也欢迎你留下你觉得有意义的算法。(注:本篇文章并非翻译,其中的算法描述大部份摘自Wikipedia,因为维基百科描述的很专业了)A*搜寻算法俗称A星算法。这是一种在图形平面上,有多个节点的路径,求出转载 2012-10-09 22:25:40 · 986 阅读 · 0 评论 -
随机森林
Random Forest(s),随机森林,又叫Random Trees[2][3],是一种由多棵决策树组合而成的联合预测模型,天然可以作为快速且有效的多类分类模型。如下图所示,RF中的每一棵决策树由众多 split和node组成:split通过输入的test取值指引输出的走向(左或右);node为叶节点,决定单棵决策树的最终输出,在分类问题中为类属的概率分布或最大概率类属,在回归问题中为函数取值转载 2012-10-07 15:43:04 · 1200 阅读 · 0 评论 -
教你如何迅速秒杀掉:99%的海量数据处理面试题
前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总结。 毕竟受文章和理论之限,本文将摒弃绝大部分的细节,只谈方法/模式论,且注重用最通俗最直白的语言阐述相关问转载 2012-07-18 11:11:45 · 1489 阅读 · 0 评论 -
计算几何之判断点是否在线段上
创设情境:给定一点Q(a,b),和线段M的首尾两个端点P1(X1,Y1),P2(X2,Y2),要求判断点Q否在线段M上; (为了方便理解,这里我们就认为X1>X2,Y1>Y2)看到这个题,我们说先会想到的肯定是判断该点是否在线段的范围内,如果不在,肯定在线段上。所以我们首先应该保证:X2这样点Q就在以P1转载 2012-07-13 07:40:32 · 7523 阅读 · 1 评论 -
计算几何之判断线段相交
给定两个点:typedef struct { double x, y;} Point;Point A1,A2,B1,B2;首先引入两个实验:a.快速排斥实验设以线段A1A2和线段B1B2为对角线的矩形为M,N;若M,N 不相交,则两个线段显然不相交;所以:满足第一个条件时:两个线段可能相交。 b.跨立实验转载 2012-07-13 07:49:52 · 9978 阅读 · 4 评论 -
TF-IDF模型的概率解释
信息检索概述信息检索是当前应用十分广泛的一种技术,论文检索、搜索引擎都属于信息检索的范畴。通常,人们把信息检索问题抽象为:在文档集合D上,对于由关键词w[1] … w[k]组成的查询串q,返回一个按查询q和文档d匹配度relevance(q, d)排序的相关文档列表D’。对于这一基问题,先后出现了布尔模型、向量模型等各种经典的信息检索模型,它们从不同的角度提出了自己的一套解决方案。转载 2012-10-25 16:11:42 · 919 阅读 · 0 评论 -
合并排序
合并排序使用了“分治法”的策略。“将原问题划分成n个规模较小而结构与原问题相似的子问题;递归地解决这些子问题;然后合并其结果,就得到原问题的解。”这就是分治策略。分治策略在每一层递归上有以下三个步骤:1)分解:将原问题分解成一系列子问题;2)解决:递归地解各子问题;3)合并:将子问题的解合并成原问题的解。 合并排序依照上述策略:1)分转载 2012-11-13 15:45:59 · 666 阅读 · 0 评论 -
理解矩阵
作者连接:http://my.csdn.net/myan前不久chensh出于不可告人的目的,要充当老师,教别人线性代数。于是我被揪住就线性代数中一些务虚性的问题与他讨论了几次。很明显,chensh觉得,要让自己在讲线性代数的时候不被那位强势的学生认为是神经病,还是比较难的事情。可怜的chensh,谁让你趟这个地雷阵?!色令智昏啊!线性代数课程,无论你从行列式入手还是直接从转载 2014-08-13 23:24:07 · 960 阅读 · 0 评论 -
三角形三边与面积关系
原创 2013-09-26 17:17:08 · 2825 阅读 · 0 评论 -
C++矩阵运算库推荐
最近在几个地方都看到有人问C++下用什么矩阵运算库比较好,顺便做了个调查,做一些相关的推荐吧。主要针对稠密矩阵,有时间会再写一个稀疏矩阵的推荐。Armadillo:C++下的Matlab替代品地址:http://arma.sourceforge.net/许可证:MPL 2.0目前使用比较广的C++矩阵运算库之一,是在C++下使用Matlab方式操作矩阵很好的转载 2013-10-05 10:16:12 · 45657 阅读 · 3 评论 -
FIR数字滤波器C语言
1.单位冲击响应与频响 就如同之前所说的一样,使用下图所示的单位冲击响应,所设计的滤波器,是无法实现的。 现在,让我们看看其这个滤波器的频响。所谓频响,就是计算其单位冲击响应的离散时间傅里叶变换, 我们可以看出,这个滤波器的频响的计算结果是实数,并没有虚数部分。也就是,其相位谱一直是0,也就意味着,这个滤波器转载 2013-09-19 22:49:18 · 7640 阅读 · 2 评论 -
IIR数字滤波器C语言
1.模拟滤波器的设计 1.1巴特沃斯滤波器的次数 根据给定的参数设计模拟滤波器,然后进行变数变换,求取数字滤波器的方法,称为滤波器的间接设计。做为数字滤波器的设计基础的模拟滤波器,称之为原型滤波器。这里,我们首先介绍的是最简单最基础的原型滤波器,巴特沃斯低通滤波器。由于IIR滤波器不具有线性相位特性,因此不必考虑相位特性,直接考虑其振幅特性。转载 2013-09-19 22:47:27 · 3302 阅读 · 1 评论 -
PID调节经验
Kp: 比例系数 ----- 比例带(比例度)P:输入偏差信号变化的相对值与输出信号变化的相对值之比的百分数表示 (比例系数的倒数)T:采样时间Ti: 积分时间Td: 微分时间 温度T: P=20~60%,Ti=180~600s,Td=3-180s 压力P: P=30~70%,Ti=24~180s, 液位L: P=20~80%,Ti=60~300s转载 2013-08-13 16:33:15 · 2743 阅读 · 0 评论 -
PID算法通俗教程
首先帮大家解决一下什么是PID调节,为什么就要这样的疑惑。PID是比例,积分,微分的英文单词的首字母的简称。 下面举个例子说明一下PID,让大家有个感官的认识,。一个人闭眼走路,假设他知道自己离目的地有100米远,那么他就可以以每秒一米一步这样的速度走向目的地,100米刚刚好是100步,这是一个非常理想化的现象。假设他不知道目的地有多远,目的地可能是1000米也有可能是10000米转载 2013-07-11 17:04:42 · 48750 阅读 · 8 评论 -
堆排序
堆排序 堆排序是利用堆的性质进行的一种选择排序。下面先讨论一下堆。1.堆 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>转载 2012-11-13 15:47:30 · 545 阅读 · 0 评论 -
相似度计算常用方法综述
引言 相似度计算用于衡量对象之间的相似程度,在数据挖掘、自然语言处理中是一个基础性计算。其中的关键技术主要是两个部分,对象的特征表示,特征集合之间的相似关系。在信息检索、网页判重、推荐系统等,都涉及到对象之间或者对象和对象集合的相似性的计算。而针对不同的应用场景,受限于数据规模、时空开销等的限制,相似度计算方法的选择又会有所区别和不同。下面章节会针对不同特点的应用,进行一些常用的相转载 2012-07-05 19:51:08 · 2173 阅读 · 0 评论 -
学习OpenCV——PCA主成分分析
在图形识别方面,主成分分析(Principal Comonents Analysis,PCA)算是比较快速而且又准确的方式之一,它可以对抗图形平移旋转的事件发生,并且藉由主要特征(主成分)投影过后的数据做数据的比对,在多个特征信息里面,取最主要的K个,做为它的特征依据,在这边拿前面共变量矩阵的数据来做沿用,主成分分析使用的方法为计算共变量矩阵,在加上计算共变量矩阵的特征值及特征向量,将特征值以及所转载 2012-06-13 09:30:01 · 2033 阅读 · 1 评论 -
机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA)
版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gmail.com前言: 第二篇的文章中谈到,和部门老大一宁出去outing的时候,他给了我相当多的机器学习的建议,里面涉及到很多的算法的意义、学习方法等等。一宁上次给转载 2012-05-20 15:56:52 · 777 阅读 · 0 评论 -
ASM(active shape models)算法介绍
ASM是基于统计学习模型的特征点提取的一种方法。这个方法是95年就提出来的,不过至今仍是我认为比较好的人脸特征点提取的方案。方法的提出人Tim Cootes后来还提出了aam算法,也很有名,但如果简单是特征点的定位的话,我认为asm的效果可能更好一些。ASM跟大多数统计学习方法一样,也包括train和test(or fit)两部分,也就是形状建模build和形状匹配fit。这个算法其实很简单,可以转载 2012-05-11 09:12:44 · 1993 阅读 · 0 评论 -
程序员必知8大排序3大查找(一)
第二篇《程序员必知8大排序3大查找(二)》每天都在叫嚣自己会什么技术,什么框架,可否意识到你每天都在被这些新名词、新技术所迷惑,.NET、XML等等技术固然诱人,可是如果自己的基础不扎实,就像是在云里雾里行走一样,只能看到眼前,不能看到更远的地方。这些新鲜的技术掩盖了许多底层的原理,要想真正的学习技术还是走下云端,扎扎实实的把基础知识学好,有了这些基础,要掌握那些新技术也就转载 2012-05-08 11:03:06 · 551 阅读 · 0 评论 -
OpenCV:SURF算法浅析
引子: 课题需要SURF特征提取算法,在运动中提取摄像头图像中的特征点,并进行跟踪匹配,以此估计运动状态。开始找到了SIFT算法,SIFT特征提取具有极强的适应能力,但运算量稍大,后来就有了SURF特征提取算法,简化了计算量,保持了较高的性能,是性价比很不错的算法。开始并不知道OpenCV的存在,后来的后来发现OpenCV中已经有了SURF算法,感叹于技术发展之快(要知道SIFT是Low在2004转载 2012-05-08 10:50:13 · 1442 阅读 · 0 评论 -
程序员必知8大排序3大查找(二)
接上篇《程序员必知8大排序3大查找(一)》 本文我们先把剩余的三大排序说完,然后讨论一下排序的稳定性问题,最后再总结一下排序的时间复杂度和空间复杂度。(1到5见上篇)6、快速排序 (1)基本思想:选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序转载 2012-05-08 11:04:02 · 466 阅读 · 0 评论 -
Surf算法学习心得(三)——Demo分析
OpenCV Demo分析(find_obj.cpp)OpenCV2.1中有关于Surf算法的简单示例(1.1以上的版本都添加了这个算法),在路径:C:\Program Files\OpenCV2.1\samples\c下,名为find_obj.cpp,运行它可以直接观察到相应结果。为了便于介绍这个示例,简单做了如下修改(只是删掉一些代码,但是对于如何使用Surf算法没有影响)。转载 2012-05-08 10:41:06 · 4241 阅读 · 1 评论 -
Surf算法学习心得(二)——源码简析
说明:作为初学者,我对于源代码也只是简单的分析,开始和(一)中一样都叫做源码分析,后来感觉自己分析的质量不太好,还是都改为源码简析吧,结合起(一)及后面的心得来看估计效果会好点,呵呵。只是希望对于即将要学习Surf算法的人有一定的帮助就行!对于一些介绍得不对的地方,也希望各位大虾能过指出,相互交流,共同进步!Surf算法源代码分析surf算法源代码分为两种文件,学过C/C++的都知转载 2012-05-07 09:44:58 · 2267 阅读 · 0 评论 -
Surf算法学习心得(一)——算法原理
写在前面的话:Surf算法是对Sift算法的一种改进,主要是在算法的执行效率上,比Sift算法来讲运行更快!由于我也是初学者,刚刚才开始研究这个算法,然而网上对于Surf算法的资料又尤为极少,稍微介绍的明白一点的还是英文。所以在此想借这个机会把我所理解的部分介绍一下,对于后面准备学习Surf算法的朋友来说,希望有一点点的帮助!言归正传,心得大致包括几下几部分:1、算法原理;2、源码转载 2012-05-07 09:44:12 · 10117 阅读 · 6 评论 -
仿射变换
仿射变换(Affine Transformation或 Affine Map)是一种二维坐标到二维坐标之间的线性变换,它保持了二维图形的“平直性”(即:直线经过变换之后依然是直线)和“平行性”(即:二维图形之间的相对位置关系保持不变,平行线依然是平行线,且直线上点的位置顺序不变)。放射变换可以写为如下的形式:转载 2012-05-07 14:04:42 · 1108 阅读 · 0 评论 -
SIFT特征详细描述
一、介绍特征的检测和匹配在许多计算机视觉应用中是一个重要的组成部分,例如无缝拼接,三维重建等。其中兴趣点特征是很重要的一类特征,而目前应用最广泛的兴趣点特征检测方法就是SIFT检测算法,该检测算法所得到的特征点不仅在位置上能够稳定识别,而且具有尺度不变性和旋转不变性。由于各大论坛以及该论文作者都只是给出matlab的实现算法,并未给出C++的版本,而且由于在SIFT的实现过程中有很多参数设转载 2012-05-12 15:20:02 · 18655 阅读 · 3 评论 -
2D-Gabor Matlab实现
close all;clear all;clc;m = 8;n = 8;G = cell(5,8);for s = 1:5 for j = 1:8 G{s,j}=zeros(m,n); endendfor s = 1:5 for j = 1:8 G{s,9-j} = gabor([m n],(s-1),j-1,4*pi/5,原创 2012-05-13 11:12:57 · 7509 阅读 · 4 评论 -
10大数据挖掘的18个候选算法
18 Candidates for the Top 10 Algorithms in Data MiningClassification============== #1. C4.5Quinlan, J. R. 1993. C4.5: Programs for Machine Learning.Morgan Kaufmann Publishers I转载 2012-06-02 09:40:06 · 1265 阅读 · 0 评论 -
机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用
版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gmail.com前言: 上一次写了关于PCA与LDA的文章,PCA的实现一般有两种,一种是用特征值分解去实现的,一种是用奇异值分解去实现的。在上篇文章中便是基于特征值转载 2012-05-20 16:47:19 · 1012 阅读 · 0 评论 -
机器学习中的数学(3)-模型组合(Model Combining)之Boosting与Gradient Boosting
版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gmail.com 前言: 本来上一章的结尾提到,准备写写线性分类的问题,文章都已经写得差不多了,但是突然听说最近Team准备做一套分布式的分类器,可能会使用R转载 2012-05-20 14:00:49 · 677 阅读 · 0 评论 -
信息检索技术——布尔检索
前一阵子和大家分享了一系列排序算法,希望对大家能够有一些帮助。从今天开始,本人打算开展一个新的领域,介绍一下信息检索相关的技术。信息检索技术可以说现如今发展非常迅速,使用也极其广泛,甚至可以说是随处可见。特别是做一些跟搜索引擎,机器学习相关工作时,信息检索的知识无处不在。为了让大家更好的理解信息检索技术,我将分多次对信息检索技术做一个尽可能细致的阐述,难度由浅及深,欢迎大家多多拍砖。今天先介绍转载 2012-05-19 13:02:46 · 1712 阅读 · 0 评论 -
机器学习中的数学(2)-线性回归,偏差、方差权衡
版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com。如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任。如果有问题,请联系作者 wheeleast@gmail.com前言: 距离上次发文章,也快有半个月的时间了,这半个月的时间里又在学习机器学习的道路上摸索着前进,积累了一点心得转载 2012-05-20 13:27:29 · 845 阅读 · 0 评论 -
机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)
版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com。如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任。前言: 上次写过一篇关于贝叶斯概率论的数学,最近时间比较紧,coding的任务比较重,不过还是抽空看了一些机器学习的书和视频,其中很推荐两个:一个是stanford的machin转载 2012-05-20 13:25:34 · 595 阅读 · 0 评论 -
信息检索技术——向量空间模型
上次介绍了信息检索技术——布尔检索,布尔模型已经可以解决一个很重要的问题,就是找到和用户需求相关的文档(其中还需要很多处理,比如分词,归一化,去掉停用词等等,我们只是介绍主要的框架流程)。但是这样找到的文档会有很多,也许上千个,也许上万个,这远远不是用户所要的。用户也不会去从几万个文档中挑选自己要找的。因此我们需要对结果进行排序,把最能满足用户需求的文档放在最上面显示给用户,就像google和ba转载 2012-05-19 13:12:38 · 2663 阅读 · 0 评论 -
光流法简单介绍
光流的概念是Gibson在1950年首先提出来的。它是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。一般而言,光流是由于场景中前景目标本身的移动、相机的运动,或者两者的共同运动所产生的。其计算方法可以分为三类:(1)基于区域或者基于特征的匹配方转载 2012-05-19 09:04:45 · 1231 阅读 · 0 评论