目录
动态规划
动态规划(Dynamic programming,简称DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。 动态规划常常适用于有重叠子问题和性质的问题,动态规划方法所耗时间往往远少于朴素解法。 动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再根据子问题的解以得出原问题的解。 通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,从而减少计算量:一旦某个给定子问题的解已经算出,则将其记忆化存储,以便下次需要同一个子问题解之时直接查表。这种做法在重复子问题的数目关于输入的规模呈指數增長时特别有用。.
查看 字符串近似匹配和动态规划
反垃圾邮件技术
为了阻止垃圾邮件(mail spam),电子邮件系统的用户和管理员都使用了各种反垃圾邮件技术(anti-spam techniques)。这些技术中的一些已经被嵌入产品、服务和软件中来帮助用户和管理员减轻负担。没有一种技术能够完美地解决垃圾邮件问题,每一种都要在误识别合法邮件与漏掉某些垃圾邮件之间做出妥协。 反垃圾邮件技术可以被粗略地分为四类:必须由个人来处理的,可以被电子邮件管理员自动化处理的,可以被发送人自动处理的,以及被研究人员和执法人员所使用的。.
后缀树
后缀树(Suffix tree)是一种数据结构,能快速解决很多关于字符串的问题。后缀樹的概念最早由Weiner於1973年提出,既而由McCreight在1976年和Ukkonen在1992年和1995年加以改進完善。 一个string S的后缀树是一个边(edge)被标记为字符串的树。因此每一个S的后缀都唯一对应一条从根节点到叶节点的路径。这样就形成了一个S的后缀的基数树(radix tree)。后缀树是前缀树(trie)里的一个特殊类型。 Category:树结构 Category:子字符串索引 Category:字符串数据结构.
查看 字符串近似匹配和后缀树
声学指纹
声学指纹(Acoustic fingerprint)是通过特定算法从音频信号中提取的一段数字摘要,用于识别声音样本或者快速定位音频数据库中的相似音频。 音频压缩技术的进步以及大容量存储器的出现使得互联网上出现了以音乐为主的海量音频信息,手工选取某首歌曲很多时候已经变得不可能,这直接促使产生了可以进行音乐自动识别的数字音频指纹技术。.
查看 字符串近似匹配和声学指纹
大O符号
大O符号(Big O notation),又稱為漸進符號,是用于描述函数渐近行为的数学符号。更确切地说,它是用另一个(通常更简单的)函数来描述一个函数数量级的渐近上界。在数学中,它一般用来刻画被截断的无穷级数尤其是渐近级数的剩余项;在计算机科学中,它在分析算法复杂性的方面非常有用。 大O符号是由德国数论学家在其1892年的著作《解析数论》(Analytische Zahlentheorie)首先引入的。而这个记号则是在另一位德国数论学家的著作中才推广的,因此它有时又称为朗道符号(Landau symbols)。代表“order of...”(……阶)的大O,最初是一个大写希腊字母“Ο”(omicron),现今用的是大写拉丁字母“O”。.
查看 字符串近似匹配和大O符号
萊文斯坦距離
莱文斯坦距离,又称Levenshtein距离,是编辑距离的一种。指两个字串之間,由一个转成另一个所需的最少编辑操作次数。允许的编辑操作包括将一个字符替换成另一个字符,插入一个字符,刪除一个字符。 例如將kitten一字轉成sitting:.
计算机科学
计算机科学用于解决信息与计算的理论基础,以及实现和应用它们的实用技术。 计算机科学(computer science,有时缩写为CS)是系统性研究信息与计算的理论基础以及它们在计算机系统中如何与应用的实用技术的学科。 它通常被形容为对那些创造、描述以及转换信息的算法处理的系统研究。计算机科学包含很多分支领域;有些强调特定结果的计算,比如计算机图形学;而有些是探討计算问题的性质,比如计算复杂性理论;还有一些领域專注于怎样实现计算,比如程式語言理論是研究描述计算的方法,而程式设计是应用特定的程式語言解决特定的计算问题,人机交互则是專注于怎样使计算机和计算变得有用、好用,以及随时随地为人所用。 有时公众会误以为计算机科学就是解决计算机问题的事业(比如信息技术),或者只是与使用计算机的经验有关,如玩游戏、上网或者文字处理。其实计算机科学所关注的,不仅仅是去理解实现类似游戏、浏览器这些软件的程序的性质,更要通过现有的知识创造新的程序或者改进已有的程序。 尽管计算机科学(computer science)的名字里包含计算机这几个字,但实际上计算机科学相当数量的领域都不涉及计算机本身的研究。因此,一些新的名字被提议出来。某些重点大学的院系倾向于术语计算科学(computing science),以精确强调两者之间的不同。丹麦科学家Peter Naur建议使用术语"datalogy",以反映这一事实,即科学学科是围绕着数据和数据处理,而不一定要涉及计算机。第一个使用这个术语的科学机构是哥本哈根大学Datalogy学院,该学院成立于1969年,Peter Naur便是第一任教授。这个术语主要被用于北欧国家。同时,在计算技术发展初期,《ACM通讯》建议了一些针对计算领域从业人员的术语:turingineer,turologist,flow-charts-man,applied meta-mathematician及applied epistemologist。 三个月后在同样的期刊上,comptologist被提出,第二年又变成了hypologist。 术语computics也曾经被提议过。在欧洲大陆,起源于信息(information)和数学或者自动(automatic)的名字比起源于计算机或者计算(computation)更常见,如informatique(法语),Informatik(德语),informatika(斯拉夫语族)。 著名计算机科学家Edsger Dijkstra曾经指出:“计算机科学并不只是关于计算机,就像天文学并不只是关于望远镜一样。”("Computer science is no more about computers than astronomy is about telescopes.")设计、部署计算机和计算机系统通常被认为是非计算机科学学科的领域。例如,研究计算机硬件被看作是计算机工程的一部分,而对于商业计算机系统的研究和部署被称为信息技术或者信息系统。然而,现如今也越来越多地融合了各类计算机相关学科的思想。计算机科学研究也经常与其它学科交叉,比如心理学,认知科学,语言学,数学,物理学,统计学和经济学。 计算机科学被认为比其它科学学科与数学的联系更加密切,一些观察者说计算就是一门数学科学。 早期计算机科学受数学研究成果的影响很大,如Kurt Gödel和Alan Turing,这两个领域在某些学科,例如数理逻辑、范畴论、域理论和代数,也不断有有益的思想交流。.
JavaScript
JavaScript,一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的直譯語言。它已经由ECMA(欧洲电脑制造商协会)通过ECMAScript实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、Firefox、Safari、Opera)支持。JavaScript是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持I/O,比如网络、存储和图形等,但这些都可以由它的宿主环境提供支持。 虽然JavaScript与Java这门语言不管是在名字上,或是在语法上都有很多相似性,但这两门编程语言从设计之初就有很大的不同,JavaScript的语言设计主要受到了Self(一种基于原型的编程语言)和Scheme(一门函数式编程语言)的影响。在语法结构上它又与C语言有很多相似(例如if条件语句、while循环、switch语句、do-while循环等)。 在客户端,JavaScript在传统意义上被实现为一种解释语言,但在最近,它已经可以被即时编译(JIT)执行。随着最新的HTML5和CSS3语言标准的推行它还可用于游戏、桌面和移动应用程序的开发和在服务器端网络环境运行,如Node.js。.
N元语法
n元语法(n-gram)指文本中连续出现的n个语词。n元语法模型是基于(n-1)阶马尔可夫链的一种概率语言模型,通过n个语词出现的概率来推断语句的结构。这一模型被广泛应用于概率论、通信理论、计算语言学(如基于统计的自然语言处理)、计算生物学(如序列分析)、数据压缩等领域。 当n分别为1、2、3时,又分别称为一元语法(unigram)、二元语法(bigram)与三元语法(trigram)。.
查看 字符串近似匹配和N元语法
Scala
Scala()是一门多范式的编程语言,设计初衷是要整合面向对象编程和函数式编程的各种特性。.
UNIX
UNIX,一种计算机操作系统,具有多任务、多用户的特征。于1969年,在美国AT&T公司的贝尔实验室开发類UNIX(UNIX-like)。.
查看 字符串近似匹配和UNIX
核苷酸
核苷酸(Nucleotide)为核酸的基本组成单位。核苷酸由一個含氮鹼基作為核心,加上一個五碳糖和一個或者多个磷酸基團組成。含氮碱基有五种可能,分别是腺嘌呤、鸟嘌呤、胞嘧啶、胸腺嘧啶和尿嘧啶。五碳糖为脱氧核糖者称为脱氧核糖核苷酸(DNA的單體),五碳糖为核糖者称为核糖核苷酸(RNA的單體)。 根据构成核酸的核苷酸数量分为寡核苷酸(少于或等于15个核苷酸)和多核苷酸(15个核苷酸以上)。.
查看 字符串近似匹配和核苷酸
拼寫檢查
拼写检查,又叫拼字檢查,是对字词的拼写进行检查的功能,能够在一篇文档中标记可能拼写错误的词。拼写检查可以是一个独立的应用程序,也可以更大的应用程序的一部分,如文字处理器、邮箱客户端、电子词典和搜索引擎等。.
查看 字符串近似匹配和拼寫檢查
另见
动态规划
- Floyd-Warshall算法
- 动态规划
- 史密斯-沃特曼算法
- 哈密顿-雅可比-贝尔曼方程
- 子集和問題
- 字符串近似匹配
- 尼德曼-翁施算法
- 最大子数列问题
- 最长公共子串
- 最长公共子序列
- 最长递增子序列
- 矩陣鏈乘積
- 粘性解
- 维数灾难
- 维特比算法
- 背包问题
- 自动换行
- 萊文斯坦距離
- 貝爾曼方程
- 贝尔曼-福特算法
- 部分可觀察馬可夫決策過程
- 馬可夫決策過程