
算法分析&理论计算机科学
文章平均质量分 78
Eugene_Chien
What is the future of coding?
展开
-
大数相乘的算法(instructed by Western University Prof.Schost)
Karatsuba算法主要应用于两个大数的相乘,原理是将大数分成两段后变成较小的数位,然后做3次乘法,并附带少量的加法操作和移位操作。现有两个大数,x,y。首先将x,y分别拆开成为两部分,可得x1,x0,y1,y0。他们的关系如下:x = x1 * 10m + x0;y = y1 * 10m + y0。其中m为正整数,m m。那么 xy = (x1 * 10翻译 2013-09-13 06:03:16 · 2118 阅读 · 0 评论 -
递归程序转换成非递归程序的一般方法
一、递归函数的原理 用栈保存未完成的工作,在适当的时候从栈中取出并执行。 系统保存了工作的数据和状态,数据就是函数的局部变量, 状态就是程序指针。 二、 非递归程序原理 1. 和递归函数的原理相同,只不过是把由系统负责保存工作信息变为程序自己保存,这样能减少保存数据的冗余(主要是节省了局部变量的空间),提高存储效率。翻译 2013-03-18 09:51:14 · 4606 阅读 · 1 评论 -
随机算法初探
随机算法的数学基础就是概率论的知识,比如大学本科阶段学习的独立性,互斥、样本期望以及各种分布的知识。在这里默认大家都了解了概率论的知识的前提下,对随机算法进行初步的介绍。在学习C、JAVA的时候,我们其实也经常用到随机产生函数random()等等,但是本文将侧重于介绍随机算法的理论。一、随机算法 随机算法为使用随机函数发生器的算法,算法中的一些判断依赖于随机函数产生器原创 2013-03-11 10:19:08 · 1158 阅读 · 0 评论 -
KMP算法重温
KMP就是字符串匹配算法,最朴素的字符串匹配算法,就是逐位匹配,不匹配就右移一位,这种方法效率太低。为了节省时间,利用已经匹配过的部分字符串的信息来为后续的匹配提供条件,减少匹配次数。 KMP算法的关键就是获取next值,next[ j ] 是通过模式串得来的,关于next[ j ] 的算法也有普通和改进的, 普通的获取next[ j ]的算法思想是:原创 2013-03-12 11:00:27 · 915 阅读 · 0 评论 -
HMM之前向算法(forward algorithms)
初学HMM,可能会第一次对如此多的数学公式,理论和推理感到头晕,发现这篇文章,能比较好的理解前向算法,关于HMM的笔记,随后呈上。1.穷举搜索( Exhaustive search for solution) 给定隐马尔科夫模型,也就是在模型参数(Algorithm)" style="margin:0px; padding:0px; border:0px; list-style:no转载 2013-03-05 17:37:22 · 1751 阅读 · 0 评论 -
HMM理解以及相关算法
1、MM 先有马尔可夫模型,再有隐马尔可夫模型,什么叫马尔可夫模型呢,也就是具有马尔可夫性质的模型,而马尔可夫性质用概念来讲,就是:一个过程的“将来”只取决于“现在”,而不取决于“过去”。这就叫马尔可夫性,具有马尔可夫性的过程叫做马尔可夫过程。 (下面来一段数学定义: 设在时刻t的随机变量用St 表示,其观察值用st表示,则如果当S1=s1,S2=原创 2013-03-05 21:56:06 · 1732 阅读 · 0 评论 -
前向算法的实例应用
一、基本情况 前面有章节介绍过前向算法的理论,似乎很难理解,本文将用一个实例来说明前向算法的应用,先回顾下前向算法的理论 1、 一个隐马尔可夫模型 (HMM) 是由一个五元组描述的: λ =( N,M ,A,B, π ) 其中:原创 2013-03-07 20:21:03 · 2034 阅读 · 0 评论 -
操作系统那些事儿(一)
也许很多人没听过Multics, 全名是MULTiplexed Information and Computing System, AT&T实验室,MIT和美国通用电气联合开发的可以在大型主机上多人多任务操作的系统。 然而这个系统由于开发缓慢而最终被叫停。 然而Multics的失败却催生了另外一个大名鼎鼎的操作系统,它就是UNIX, 1969年, 由AT&T实验室的肯汤原创 2014-04-03 05:32:52 · 789 阅读 · 0 评论 -
Maximum Bipartite Matching
算法旨在用尽可能简单的思路解决问题,理解算法也应该是一个越看越简单的过程,当你看到算法里的一串概念,或者一大坨代码,第一感觉是复杂,此时不妨从例子入手,通过一个简单的例子,并编程实现,这个过程其实就可以理解清楚算法里的最重要的思想,之后扩展,对算法的引理或者更复杂的情况,对算法进行改进。最后,再考虑时间和空间复杂度的问题。 了解这个算法是源于在Network Alignment问题原创 2014-05-11 07:08:51 · 3044 阅读 · 0 评论