hier mal mein kram zur 1. das programm ist in python geschrieben mfg ivo
#!/usr/bin/env python # # # # import os import sys from sys import argv import Numeric def main(): print "Gegeben ist p mit:\n" #p=[30,35,15,5,10,20,25] p=[6,10,4,13,5,25,8] print p A=["dump","A_1","A_2","A_3","A_4","A_5","A_6"] print "\nErzeuge m und s\n" m = Numeric.zeros([len(p),len(p)],Numeric.Int) s = Numeric.zeros([len(p),len(p)],Numeric.Int) print "m ist\n" print m print "\ns ist\n" print s n=len(p) print "p hat die Laenge: %ii\n" %(n) for i in range(1,n,1): m[i][i]=0 print "Setze in m m[i][i]=0 fuer alle i von 1 bis ni\n" for l in range(2,n,1): print "Zustand der Matrix m:\n" print m print "\nl=%i\n" %l print "Berechne n-l+1=%i\n" %(n-l+1) for i in range(1,n-l+1,1): print "" print "i=%i\n" %(i) j=i+l-1 print "j=i+l-1=%i\n" %(j) print "Setze m[%i][%i]=infinity(99999999)\n"%(i,j) m[i][j] = 99999999 for k in range(i,j-1+1,1): q=m[i][j] print "Setze q=%i" % (q) list=[m[i][j],p[i-1]*p[k]*p[j]+m[i][k]+m[k+1][j]] m[i][j]=getmin(list) print "Berechne Minimum:" print "m[%i][%i]=min{%i,%i}" % (i,j,list[0],list[1]) print "das Minimum ist %i \n" % (m[i][j]) if (m[i][j]<q): print "Ist m[%i][%i] kleiner als i %i? Ja" % (i,j,q) print "Setze s[%i][%i]=%i " % (i,j,k) s[i][j]=k print "Das Ergebnis fuer m ist:\n" print m print "\nDas Ergebnis fuer s ist:\n" print s print "\nBerechne optimale Klammerung\n" print "Rufe opt_params(A,s,%i,%i) auf\n"%(1,n-1) res1 = opt_params(A,s,1,n-1) print "Die optimale Klammerung ist\n:" print res1 print "Ende\n" def opt_params(A,s,i,j): print "A ist:" print A[1:] print "i=%i,j=%i\n" % (i,j) if i<j: print "i<j\n" print "s[%i,%i]=%i"%(i,j,s[i][j]) print "x=opt_params(A,s,%i,s[%i,%i])\n"%(i,i,j) x=opt_params(A,s,i,s[i,j]) print "y=opt_params(A,s,s[%i,%i]+1,%i)\n"%(i,j,j) y=opt_params(A,s,s[i,j]+1,j) res=[x,y] print "\n Der Aufruf opt_params(A,s,%i,%i]) gibt:"%(i,j) print res print "zurueck\n" return res else: print "\n Der Aufruf opt_params(A,s,%i,%i]) ist der Basisfall. Der Aufruf gibt:"%(i,j) print A[i] print "zurueck\n" return A[i] def getmin(list): p=list[0] for el in list: if el < p: p=el return p # Program entry point if __name__ == "__main__": main()