'''
矩阵连乘问题
A1 A2 A3 A4 A5 A6...相乘,求计算量最小的加括号的方式
m[i][j] :A[i]到A[j]的计算量
s[i][j] :A[i]到A[j] 应该加括号的地方
'''
def MatrixChain(p, n, m, s):for r in range(2, n+1):for i in range(1, n-r+2):j = i+r-1m[i][j] = m[i+1][j] + p[i-1]*p[i]*p[j]        #计算m[i][j]s[i][j] = i                                 #计算s[i][j]for k in range(i, j):                       #把计算量大的m替换掉t = m[i][k] + m[k+1][j] + p[i-1]*p[k]*p[j]if t < m[i][j]:m[i][j] = ts[i][j] = kdef Traceback(i, j, s):if i == j:print('A%d'%(i), end='')return                          #i==j 时输出Aiprint("(", end='')                  #输出左括号,调用递归,输出右括号Traceback(i, s[i][j], s)Traceback(s[i][j]+1, j, s)print(")", end='')p = input().split()
n = len(p)
p = [int(x) for x in p]      #输入A1的行数和列数以及A2,A3...的列数
m = []
s = []
for i in range(n):m.append([])s.append([])for j in range(n):m[i].append(0)s[i].append(0)      #初始化m, s
MatrixChain(p, n-1, m, s)
Traceback(1, n-1, s)

输入输出样例:30 35 15 5 10 20 25
((A1(A2A3))((A4A5)A6))

python 矩阵连乘相关推荐

  1. python中的[:-1] [:,:-1] python矩阵numpy中array的冒号 逗号

    如何理解[:-1]  [:,:-1] data = np.loadtxt('data.csv', delimiter = ',')     X = data[:,:-1]    #取所有行,取列到倒数 ...

  2. python 矩阵中的冒号 逗号

    python 矩阵中的冒号 逗号 https://blog.csdn.net/Strive_0902/article/details/78225691?utm_source=blogxgwz0 pyt ...

  3. python矩阵相加_【python矩阵相加怎么做,这可是证明python功能的大好机会】- 环球网校...

    [摘要]今天的python实践内容是为了让大家了解python矩阵相加方法,对代码编程有个感性的认知.也好让大家能够理性选择,不要盲目跟从,选择适合自己当前阶段的学习内容,循序渐进,以兴趣自我探索为向 ...

  4. python矩阵中插入矩阵_Python | 矩阵的痕迹

    python矩阵中插入矩阵 The sum of diagonal elements of a matrix is commonly known as the trace of the matrix. ...

  5. python矩阵转置_Python 矩阵转置的几种方法小结

    我就废话不多说了,直接上代码吧! #Python的matrix转置 matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] def printmatrix(m): fo ...

  6. python矩阵_Python矩阵

    python矩阵 In this tutorial we will learn about Python Matrix. In our previous tutorial we learnt abou ...

  7. python 矩阵求转置、行列式、迹、求逆

    python 矩阵求解 import numpy as np 1.转置 a=np.eye(3) print(a.T) 2.各列元素和 print(sum(a)) 3.求矩阵行列式 print(np.l ...

  8. python 矩阵转置

    python 矩阵转置 matrix = [ ... [1, 2, 3, 4], ... [5, 6, 7, 8], ... [9, 10, 11, 12], ... ] 以下实例将3X4的矩阵列表转 ...

  9. python矩阵的右下半部分【简单易懂,代码可以直接运行】

    python矩阵的右下半部分[简单易懂,代码可以直接运行] 输入一个二维数组 M[12][12],根据输入的要求,求出二维数组的右下半部分元素的平均值或元素的和. 右下半部分是指次对角线下方的部分,如 ...

  10. python矩阵的切片操作

    python矩阵的切片操作 import numpy as npa = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, ...

最新文章

  1. linux内存分配缺陷,Linux系统优化-内存错误分析
  2. 六十一、深入学习位运算
  3. Codechef REBXOR HYSBZ - 4260(01字典树+区间异或最大)
  4. java查找链表中间元素_如何通过Java单次查找链表的中间元素
  5. 我去,这几个Linux指令太装B了|动图展示
  6. mysql5.5.49.tar.gz_CentOS6.5 解压安装 二进制分发版 mysql-5.5.49-linux2.6-x86_64.tar.gz
  7. 新来的妹纸问我,如果把几百万数据放入内存,会不会把系统撑爆?
  8. Java异常处理机制(基础知识)
  9. ipynb--pdf
  10. 一些爱不释手的 Chrome 插件
  11. Golang学习之路(一):Golang安装和配置
  12. 导线水平角及边长观测实习记录
  13. 家用台式电脑计算机上的硬磁盘,台式电脑如何连接硬盘
  14. Redis复习记录(二):数据类型与基本操作
  15. @Adaptive注解
  16. 浙江大学的计算机考研难度,浙江大学部分专业考研难度分析
  17. 建模计算机处理器,实战建模渲染,用锐龙7 5800X拒绝拖稿
  18. Ubuntu 使用 create_ap 开启 wifi 热点
  19. 我们应该怎样面对自己
  20. 使用源码编译安装AMD ROCm

热门文章

  1. 多线程相关知识点详解
  2. 什么是多道程序设计技术,试述多道程序运行的特征。
  3. 【安全】(三)Django之SQL注入防御
  4. 决定要收藏,让你白嫖阿里矢量图(iconfont矢量图使用)
  5. 【经验分享】统计学算法大全及方法适用场景(必看)
  6. mac电脑用计算机名共享打印机,苹果电脑怎么连接共享打印机_苹果电脑连接共享打印机的具体教程-系统城...
  7. rls自适应滤波器matlab实现,rls算法的自适应滤波器matlab仿真作业.doc
  8. 信号处理中的预加重、去加重和均衡
  9. CSRF--跨站请求伪造
  10. 计算机信息安全专业代码0839,网络安全/信息安全专业大学排名(2017-2018-安全导航)...