编写动态编程代码后,我得到以下矩阵:M = [[0 0 0 0 0 0 0] [1 0 0 1 0 0 1] [2 1 0 0 1 0 0]]。现在,我需要执行一个回溯操作,如下所示:
1.找到矩阵的最后一列中的下一个前一个数字,即矩阵的第3行,第5列。
2.然后找到该元素的下一个最大相邻数字' 1'水平,垂直或对角线左侧。在这种情况下,矩阵的第2行,第4列为1。
3.执行相同的程序,直到达到' 0' 0在第一列并返回位置。
要执行此步骤,我至今已编写以下代码:
text='ACAGCAG'
pattern='GC'
n = len(pattern)
m = len(text)
M=numpy.zeros([n+1,m],int)
M=[[0 0 0 0 0 0 0]
[1 0 0 1 0 0 1] #Since I can't paste whole code,
[2 1 0 0 1 0 0]] #I am pasting the #matrix and traceback function.
def trace(M,text,k,compare) :
a=list(numpy.array(M).reshape(-1,))
r=len(a)
for i in range(r-1,r-m,-1):
if a[i] < k:
b=a[i]
for j in range(r-m,r-1):
if a[j]<k and a[i]==a[j]:
l= max(i,j)
return l #completed the first step till here
s = trace(M,text,2,min)
print s
我的查询是如何继续第二步?