

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!


Trabalho: Usando a solução do problema das N rainhas listado abaixo como modelo, escreva um programa Haskell para resolver (facilmente) um quebra-cabeça Sudoku (www.sudoku.com)
Observações:
Problema das N rainhas
O problema das N rainhas consiste em colocar N rainhas mutuamente antagônicas num tabuleiro N x N de forma que nenhuma rainha possa capturar outra rainha em um único movimento. O resultado deve conter uma lista de todas as soluções possíveis em que cada solução lista a posição da fila de cada rainha em ordem de coluna.
queens n = solve n
where solve 0 = [[]] solve (k+1) = [q:b | b <- solve k, q <- [0..(n-1)], safe q b] safe q b = and [not (checks q b i) | i <- [0..(length b-1)]] checks q b i = q == (b!!i) || abs (q - (b!!i)) == i+
Main> queens 1 [[0]] Main> queens 2 [] Main> queens 3 [] Main> queens 4 [[2,0,3,1],[1,3,0,2]] Main> queens 5 [[3,1,4,2,0],[2,4,1,3,0],[4,2,0,3,1],[3,0,2,4,1],[4,1,3,0,2],[0,3,1,4,2],[1,4,2,0,3],[0,2,4,1,3], [2,0,3,1,4],[1,3,0,2,4]] Main> queens 8 ....