Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,51 @@
|
|||
aux <- function(i, j, u) {
|
||||
k <- u[[i, j]]
|
||||
if (k < 0) {
|
||||
i
|
||||
} else {
|
||||
paste0("(", Recall(i, k, u), "*", Recall(i + k, j - k, u), ")")
|
||||
}
|
||||
}
|
||||
|
||||
chain.mul <- function(a) {
|
||||
n <- length(a) - 1
|
||||
u <- matrix(0, n, n)
|
||||
v <- matrix(0, n, n)
|
||||
u[, 1] <- -1
|
||||
|
||||
for (j in seq(2, n)) {
|
||||
for (i in seq(n - j + 1)) {
|
||||
v[[i, j]] <- Inf
|
||||
for (k in seq(j - 1)) {
|
||||
s <- v[[i, k]] + v[[i + k, j - k]] + a[[i]] * a[[i + k]] * a[[i + j]]
|
||||
if (s < v[[i, j]]) {
|
||||
u[[i, j]] <- k
|
||||
v[[i, j]] <- s
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
list(cost = v[[1, n]], solution = aux(1, n, u))
|
||||
}
|
||||
|
||||
chain.mul(c(5, 6, 3, 1))
|
||||
# $cost
|
||||
# [1] 48
|
||||
|
||||
# $solution
|
||||
# [1] "(1*(2*3))"
|
||||
|
||||
chain.mul(c(1, 5, 25, 30, 100, 70, 2, 1, 100, 250, 1, 1000, 2))
|
||||
# $cost
|
||||
# [1] 38120
|
||||
|
||||
# $solution
|
||||
# [1] "((((((((1*2)*3)*4)*5)*6)*7)*(8*(9*10)))*(11*12))"
|
||||
|
||||
chain.mul(c(1000, 1, 500, 12, 1, 700, 2500, 3, 2, 5, 14, 10))
|
||||
# $cost
|
||||
# [1] 1773740
|
||||
|
||||
# $solution
|
||||
# [1] "(1*((((((2*3)*4)*(((5*6)*7)*8))*9)*10)*11))"
|
||||
Loading…
Add table
Add a link
Reference in a new issue