Data update
This commit is contained in:
parent
81fd053722
commit
52a6ef48dd
10248 changed files with 63654 additions and 6775 deletions
|
|
@ -0,0 +1,41 @@
|
|||
global m[][] s[][] dims[] .
|
||||
proc mat_chain_order . .
|
||||
n = len dims[] - 1
|
||||
m[][] = [ ] ; len m[][] n
|
||||
s[][] = [ ] ; len s[][] n
|
||||
for i = 1 to n
|
||||
len m[i][] n
|
||||
len s[i][] n
|
||||
.
|
||||
for lng = 2 to n
|
||||
for i = 1 to n - lng + 1
|
||||
j = i + lng - 1
|
||||
m[i][j] = 1 / 0
|
||||
for k = i to j - 1
|
||||
cost = m[i][k] + m[k + 1][j] + dims[i] * dims[k + 1] * dims[j + 1]
|
||||
if cost < m[i][j]
|
||||
m[i][j] = cost
|
||||
s[i][j] = k
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
func$ path a b .
|
||||
if a = b
|
||||
return strchar (64 + a)
|
||||
.
|
||||
return "(" & path a s[a][b] & path (s[a][b] + 1) b & ")"
|
||||
.
|
||||
proc pr_chain_order . .
|
||||
print "Order : " & path 1 len s[][]
|
||||
.
|
||||
dims[][] = [ [ 5 6 3 1 ] [ 1 5 25 30 100 70 2 1 100 250 1 1000 2 ] [ 1000 1 500 12 1 700 2500 3 2 5 14 10 ] ]
|
||||
for i to len dims[][]
|
||||
dims[] = dims[i][]
|
||||
print "Dims : " & dims[]
|
||||
mat_chain_order
|
||||
pr_chain_order
|
||||
print "Cost : " & m[1][len s[][]]
|
||||
print ""
|
||||
.
|
||||
Loading…
Add table
Add a link
Reference in a new issue