Escolar Documentos
Profissional Documentos
Cultura Documentos
MatrixChainOrder(p, n = p.length - 1)
for i = 1 to n
m[i, i] = 0
for len = 2 to n
for i = 1 to n - len + 1
j = i + len - 1
m[i, j] = ∞
for k = i to j-1 do
count = m[i, k] + m[k+1, j] + p[i-
1]p[k]p[j]
if count < m[i, j]
m[i, j] = count
return m[1, n]
```
count = m[i, k] + m[k+1, j] + p[i-1] * p[k] * p[j]
```
Onde:
- `m[i, k]` é o custo mínimo de multiplicar as
matrizes de `i` a `k`.
- `m[k+1, j]` é o custo mínimo de multiplicar as
matrizes de `k+1` a `j`.
- `p[i-1]`, `p[k]` e `p[j]` são as dimensões das
matrizes envolvidas na multiplicação.
```python
PrintParenthesis(s, i, j):
if i == j:
Print "A" + i
else:
Print "("
PrintParenthesis(s, i, s[i, j])
PrintParenthesis(s, s[i, j] + 1, j)
Print ")"
```