Next: Serpente Up: Enunciados Previous: Triângulo

Tabuleiro

Considere um tabuleiro 4x4 com um operador aritmético binário e um operando inteiro em cada casa (quadrado). Começando com o valor 0 como valor corrente, escolha um caminho que visite cada casa do tabuleiro exactamente uma vez. Cada uma das vezes que visita uma casa, efectua a operação nela indicada considerando o valor corrente como o primeiro operando e o número no quadrado como o segundo operando. O resultado da operação passa então a constituir o valor corrente. No final do caminho, o valor corrente (valor final do caminho) irá depender do caminho escolhido. Pretende-se que implemente um predicado tabuleiro/3 que encontra o valor final máximo entre todos os caminhos e o número de caminhos que possuem este valor final máximo. Segue-se um exemplo de tabuleiro e da estrura de dados que o representa:

[
f(*,3), f(-,1), f(*,2), f(+,4),
f(*,3), f(-,0), f(*,2), f(+,4),
f(*,3), f(-,9), f(*,2), f(+,4),
f(*,3), f(-,8), f(*,2), f(+,4)
]
* 3 - 1 * 2 + 4
* 3 - 0 * 2 + 4
* 3 - 9 * 2 + 4
* 3 - 8 * 2 + 4

O predicado tabuleiro/3 que irá desenvolver, recebe no primeiro argumento o tabuleiro, produzindo no segundo argumento o valor final máximo e no terceiro o número de caminhos que têm como valor o valor final máximo.


Next: Serpente Up: Enunciados Previous: Triângulo


1999-04-01