专业
数据科学与
大数据技术
实验室名称
实验时间
2020.3.28
实验名称
动态规划的应用
实验目的
掌握动态规划的设计思想、
掌握动态规划的求解步骤、
掌握用动态规划解题的算法框架,
写程序代码,运行得到正确结果
实验题目
最长子序列动态规划实现
实验源代码
import random
import numpy as np
def input(l,n,s):
for i in range(n):
s1 = s[random.randint(0,len(s)-1)]
l.append(s1)
return l
s = "abcdefghijklmnopqrstuvwxyz"
l1 = []
l2 = []
n1 = random.randint(5,15)
n2 = random.randint(5,15)
l1 = input(l1,n1,s)
l2 = input(l2,n2,s)
print(l1,l2)
lens = np.zeros((n1,n2))
for i in range(1,n1):
for j in range(1,n2):
lens[i][j] = max(lens[i-1][j],lens[i][j-1])
if l1[i] == l2[j]:
lens[i][j] += 1
print(lens)