成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何使用python實現(xiàn)最長公共子序列-創(chuàng)新互聯(lián)

這篇文章主要介紹如何使用python實現(xiàn)最長公共子序列,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

在江州等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網(wǎng)站設計、網(wǎng)站建設 網(wǎng)站設計制作定制開發(fā),公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站制作,網(wǎng)絡營銷推廣,成都外貿(mào)網(wǎng)站建設,江州網(wǎng)站建設費用合理。

1.找出最優(yōu)解的性質(zhì),并刻劃其結(jié)構(gòu)特征

序列a共有m個元素,序列b共有n個元素,如果a[m-1]==b[n-1],那么a[:m]和b[:n]的最長公共子序列長度就是a[:m-1]和b[:n-1]的最長公共子序列長度+1;如果a[m-1]!=b[n-1],那么a[:m]和b[:n]的最長公共子序列長度就是MAX(a[:m-1]和b[:n]的最長公共子序列長度,a[:m]和b[:n-1]的最長公共子序列長度)。

2.遞歸定義最優(yōu)值

如何使用python實現(xiàn)最長公共子序列

3.以自底向上大方式計算出最優(yōu)值

python代碼如下:

def lcs(a,b): 
  lena=len(a) 
  lenb=len(b) 
  c=[[0 for i in range(lenb+1)] for j in range(lena+1)] 
  flag=[[0 for i in range(lenb+1)] for j in range(lena+1)] 
  for i in range(lena): 
    for j in range(lenb): 
      if a[i]==b[j]: 
        c[i+1][j+1]=c[i][j]+1 
        flag[i+1][j+1]='ok' 
      elif c[i+1][j]>c[i][j+1]: 
        c[i+1][j+1]=c[i+1][j] 
        flag[i+1][j+1]='left' 
      else: 
        c[i+1][j+1]=c[i][j+1] 
        flag[i+1][j+1]='up' 
  return c,flag 
 
def printLcs(flag,a,i,j): 
  if i==0 or j==0: 
    return 
  if flag[i][j]=='ok': 
    printLcs(flag,a,i-1,j-1) 
    print(a[i-1],end='') 
  elif flag[i][j]=='left': 
    printLcs(flag,a,i,j-1) 
  else: 
    printLcs(flag,a,i-1,j) 
     
a='ABCBDAB' 
b='BDCABA' 
c,flag=lcs(a,b) 
for i in c: 
  print(i) 
print('') 
for j in flag: 
  print(j) 
print('') 
printLcs(flag,a,len(a),len(b)) 
print('')

如何使用python實現(xiàn)最長公共子序列

運行結(jié)果輸出如下:

如何使用python實現(xiàn)最長公共子序列

4.根據(jù)計算最優(yōu)值得到的信息,構(gòu)造最優(yōu)解

上圖是運行結(jié)果,第一個矩陣是計算公共子序列長度的,可以看到最長是4;第二個矩陣是構(gòu)造這個最優(yōu)解用的;最后輸出一個最優(yōu)解BCBA。

以上是“如何使用python實現(xiàn)最長公共子序列”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

當前標題:如何使用python實現(xiàn)最長公共子序列-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://jinyejixie.com/article22/dhoicc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設靜態(tài)網(wǎng)站、網(wǎng)站導航、網(wǎng)站策劃網(wǎng)頁設計公司、網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設網(wǎng)站維護公司
土默特左旗| 蒲江县| 阿坝县| 富川| 邓州市| 达尔| 广平县| 临江市| 怀集县| 凤翔县| 南郑县| 黄大仙区| 明星| 丰原市| 桦南县| 修水县| 巴彦县| 七台河市| 清水河县| 南乐县| 巴彦县| 达日县| 连平县| 克山县| 京山县| 英超| 广宁县| 新乡县| 宣化县| 新郑市| 竹北市| 乐陵市| 通海县| 武定县| 大厂| 新和县| 建昌县| 柳林县| 万安县| 青阳县| 六安市|