矩阵链应用程序中的所有可能分组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了矩阵链应用程序中的所有可能分组相关的知识,希望对你有一定的参考价值。
我研究了矩阵链乘法,其中给定一系列矩阵,目标是找到最有效的乘法矩阵方法。问题实际上不是执行乘法,而只是决定所涉及的矩阵乘法的顺序。
所以说比如说。给定2个矩阵A和B,我可以有一个可能的矩阵组合,即(AB)
,当我的矩阵是3时:A, B, C,
我可以有两种可能的组合:(AB)C
和A (BC)
。我希望实现一个代码,因为矩阵的数量将在Python中输出所有可能的矩阵组合。
下面的代码不正确,因为给定n = 3个矩阵,它输出5个组合,实际上它应该只有2个。下面的代码是打印平衡括号的所有组合。
def printParenthesis(str, n):
if(n > 0):
_printParenthesis(str, 0,
n, 0, 0,0);
return;
def _printParenthesis(str, pos, n,
open, close, count):
if(close == n):
for i in str:
print(i, end = "");
print();
return;
else:
if(open > close):
str[pos] = '}';
_printParenthesis(str, pos + 1, n,
open, close + 1, count);
if(open < n):
str[pos] = '{' + chr(65+count);
_printParenthesis(str, pos + 1, n,
open + 1, close, count+1);
# Driver Code
n = 3; //Number of matrices
str = [""] * 2 * n;
printParenthesis(str, n);
我如何修改上面的代码以适应我的问题?请帮忙 。
答案
看下面的链接,我无法评论这个低点,所以请承担https://www.google.co.in/amp/s/www.geeksforgeeks.org/matrix-chain-multiplication-dp-8/amp/
以上是关于矩阵链应用程序中的所有可能分组的主要内容,如果未能解决你的问题,请参考以下文章
SpringCloud系列十一:SpringCloudStream(SpringCloudStream 简介创建消息生产者创建消息消费者自定义消息通道分组与持久化设置 RoutingKey)(代码片段