您的位置:首页 > 其它

最长公共子序列定义

2015-10-14 09:14 274 查看
最长公共子序列(Longest Common Subsequence,LCS)

flyfish 2015-8-20

假定我们有如下两个序列

S1:
1 2 3 4 5 6

S2:
4 5 6 7 8 9

S1和S2有一个最长公共子序列为
4 5 6

一个子序列不一定必须是连续的,即中间可以被其他字符分开,但它们的顺序必须正确的。

最长公共子序列不一定只有一个。

S1:
h e l l o

S2:
l e o n

S1和S2有一个最长公共子序列为
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: