/* * MatMult.java * * Created on November 8, 2001, 11:12 PM */ /** * * @author lziegler * @version */ public class MatMult { /** Creates new MatMult */ public MatMult() { } static void FindMatMult(int [] r) { int N=r.length; int [] [] M=new int[N][N]; int n=N-1; int i,j,k,l,kmin,MinSoFar; for(i=1;i<=n;i++) { M[i][i]=0; System.out.print("M["+i+"]["+i+"]=0 and r["+i+"]="+r[i]+" "); } System.out.println(""); for(l=1;lM[i][k]+M[k+1][j]+r[i-1]*r[k]*r[j]) { kmin=k; MinSoFar=M[i][k]+M[k+1][j]+r[i-1]*r[k]*r[j]; } M[i][j]=MinSoFar; System.out.print("M["+i+"]["+j+"]="+M[i][j]+" and k="+kmin+ " and r"+(i-1)+"*r"+kmin+"*r"+j+"="+(r[i-1]*r[kmin]*r[j])+" | "); } System.out.println(""); } System.out.println(""); } /** * @param args the command line arguments */ public static void main (String args[]) { int [] r={10,20,50,1,100}; FindMatMult(r); } }