package DynamicProgramming;// Matrix-chain Multiplication// Problem Statement// we have given a chain A1,A2,...,Ani of n matrices, where for i = 1,2,...,n,// matrix Ai has dimension pi−1 ×ばつpi// , fully parenthesize the product A1A2 ···An in a way that// minimizes the number of scalar multiplications.public class MatrixChainRecursiveTopDownMemoisation{static int Memoized_Matrix_Chain(int p[]) {int n = p.length ;int m[][] = new int[n][n];for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {m[i][j] = Integer.MAX_VALUE;}}return Lookup_Chain(m, p, 1, n-1);}static int Lookup_Chain(int m[][],int p[],int i, int j){if ( i == j ){m[i][j] = 0;return m[i][j];}if ( m[i][j] < Integer.MAX_VALUE ){return m[i][j];}else{for ( int k = i ; k<j ;k++){int q = Lookup_Chain(m, p,i , k ) + Lookup_Chain(m, p, k+1 , j) + (p[i-1] * p[k] * p[j]);if ( q < m[i][j] ){m[i][j] = q;}}}return m[i][j];}// in this code we are taking the example of 4 matrixes whose orders are 1x2,2x3,3x4,4x5 respectively// output should be Minimum number of multiplications is 38public static void main (String[] args){int arr[] = { 1, 2, 3, 4 ,5};System.out.println("Minimum number of multiplications is " + Memoized_Matrix_Chain(arr));}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。