动态规划 矩阵连乘问题 python

匿名 (未验证) 提交于 2019-12-02 22:54:36

习要学的,博客是要写的,怪兽是要慢慢打的。

m=[[0,0,0,0,0],#储存计算最优值    [0,0,0,0,0],    [0,0,0,0,0],    [0,0,0,0,0],    [0,0,0,0,0]    ] s=[[0,0,0,0,0],#储存最佳分开位置    [0,0,0,0,0],    [0,0,0,0,0],    [0,0,0,0,0],    [0,0,0,0,0]    ] p=[2,3,4,5,6] r=2 n=4 while(r<=n):#按列循环     i=1     while(i<=(n-r+1)):#按行循环         j=i+(r-1)         m[i][j]=m[i][i]+m[i+1][j]+p[i-1]*p[i]*p[j]         s[i][j]=i         k=i+1         while(k<j):#行内找出最优解,并存入mzho             t= m[i][k]+m[k+1][j]+p[i-1]*p[k]*p[j]             if t<m[i][j] :                 m[i][j]=t                 s[i][j]=k             k+=1         i+=1     r+=1 row=0   while (row<=4):     print(s[row])         row+=1 row=0 while (row<=4):     print(m[row])         row+=1 def traceback(i,j):     if i==j:         return     traceback(i,s[i][j])     traceback(s[i][j]+1,j)     print("A %d, %d * A%d, %d" %(i,s[i][j],s[i][j]+1,j)) traceback(1,4)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!