频道栏目
首页 > 程序开发 > 综合编程 > 其他综合 > 正文
最长公共子序列定义
2015-08-21 08:24:39         来源:flyfish1986的专栏  
收藏   我要投稿

最长公共子序列(Longest Common Subsequence,LCS)

flyfish 2015-8-20

假定我们有如下两个序列

S1: 1 2 3 4 5 6
S2: 4 5 6 7 8 9
S1S2有一个最长公共子序列为 4 5 6
一个子序列不一定必须是连续的,即中间可以被其他字符分开,但它们的顺序必须正确的。
最长公共子序列不一定只有一个。

S1: h e l l o
S2: l e o n
S1S2有一个最长公共子序列为 eo

《算法导论》的描述

子序列(subsequence)

A subsequence of a given sequence is just the given sequence with zero or
more elements left out.
一个给定序列的子序列就是该给定序列中去掉零个或者多个元素。

left out 忽视,不考虑;被遗忘
leave out的过去时或者被动语态 被遗忘,删掉等

公共子序列(common subsequence)
Given two sequences X and Y, we say that a sequence Z is a common subsequence of X and Y if Z is a subsequence of both X and Y
给定两个序列X和Y,如果Z既是X的一个子序列又是Y的一个子序列,则序列Z是X和Y的一个公共子序列。

最长公共子序列
X和Y的所有公共子序列中长度最长的公共子序列就是最长公共子序列。

Each subsequence of X corresponds to a subset of the indices {1,2,…,n} of X.
X has 2n subsequences。
X的每个子序列对应于X的下标集合{1,2,…,n}的一个子集。X共有2n个子序列。

为什么是2n?
排列组合解释
Combination [k?mb?’ne??(?)n] 美 [,kɑmb?’ne??n]
组合数

Arrangement 英 [?’re?n(d)?m(?)nt] 美 [?’rend?m?nt]
排列数

排列
从n个不同元素中,任取m(m≤n,m与n均为自然数,下同)个元素按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列;从n个不同元素中取出m(m≤n)个元素的所有排列的个数,叫做从n个不同元素中取出m个元素的排列数,用符号 A(n,m)表示。

Amn=n(n−1)(n−2)...(n−m+1)

Amn=n!(n−m)!

组合
从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数。用符号 C(n,m) 表示。

Cmn=(n−1)(n−2)...(n−m+1)m!

Cmn=n!m!(n−m)!

Cmn=Cn−mn

(a+b)0=1

(a+b)1=a+b

(a+b)2=a2+2ab+b2

(a+b)3=a3+3a2b+3ab2+b3


(a+b)1=C01a+C11b

(a+b)2=C02a2+C12ab+C22b2

(a+b)3=C03a3+C13a2b+C23ab2+C33b3

(a+b)n当n为正整数时的展开式就是二项式定理(Binomial Theorem)

binomial 英 [ba?’n??m??l] 美 [ba?’nom??l]
adj. 二项式的;二种名称的
n. [数] 二项式;二种名称

theorem 英 [‘θ??r?m] 美 [‘θi?r?m]
n. [数] 定理;原理

二项式各项系数
1
1 1
1 2 1
1 3 3 1

形成了杨辉三角

Crn+Cr+1n=Cr+1n+1

a=1,b=1

C0n+C1n+C2n+…Cnn=2n

 

点击复制链接 与好友分享!回本站首页
相关TAG标签 序列
上一篇:装饰模式
下一篇:数组和字符串
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站