

Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Coleção completa de exercícios resolvidos em haskell
Tipologia: Exercícios
1 / 2
Esta página não é visível na pré-visualização
Não perca as partes importantes!


Bacharelado em Sistemas de Informação Programação Funcional – 1° Período **Trabalho em Equipe: O Problema das N Rainhas
Note que em cada linha e em cada coluna deve haver uma, e só uma, rainha. Para definir o problema pode-se utilizar uma lista que determine qual a coluna em que é colocada a rainha de cada uma das linhas (por exemplo, a solução do quadro acima seria [3,1,4,2], querendo dizer
que a rainha da primeira linha aparece na terceira coluna, a da segunda linha na primeira coluna, e assim sucessivamente). Como uma única rainha deve aparecer por coluna, a lista deve ser uma permutação de [1,2,3,4], e todas as permutações [1..N] geram uma lista de soluções candidatas. Para o testar uma permutação, deve-se garantir que nenhuma rainha está ao alcance diagonal de uma outra. Para isso notamos que:
coluna da posição de cada uma delas for igual. Exemplo: Q Q Q Q A permutação [2,1,4,3] não é uma solução, visto que a rainha colocada na posição (2,1) coincide em diagonal sudoeste com a rainha da posição (1,2), e coincide em diagonal sudeste com a posição (4,3). Faça um programa em linguagem Haskell que computa todas as soluções para um dado N. A execução deste programa para vários valores de N inclui:
rainhas 1 [[1]] rainhas 2 [] rainhas 3 [] rainhas 4 [[3,1,4,2],[2,4,1,3]]