O solucionador de Sudoku em uma linha de Arthur Whitney (2011)
(dfns.dyalog.com)Algoritmo de resolução de Sudoku
-
Explicação do problema de Sudoku
- O quebra-cabeça Sudoku é composto por caixas 3×3 em uma grade 3×3, e cada célula está vazia ou contém um número de 1 a 9.
- Cada caixa 3×3, cada uma das 9 linhas e cada uma das 9 colunas deve conter os 9 números sem repetição.
- São fornecidos um problema de exemplo e um método de resolução.
-
Visão geral do algoritmo
- A matriz é tratada como vetor, e linhas, colunas e regiões do Sudoku são representadas por vetores de índice.
- Realiza verificações básicas do quebra-cabeça e encontra a solução filtrando os elementos possíveis.
- Se uma célula estiver vazia, avança para a próxima lista; se uma célula contiver vários números, escolhe a partir do grupo mais restrito e adiciona à lista.
- Quando todas as células contêm um único número, a solução foi encontrada.
-
Notas técnicas
- Solução fornecida por Veli-Matti Jantunen, com a possibilidade de usar ⍺ para representar retângulos de Sudoku.
- O resultado retorna um vetor com todas as soluções, ⍬ se não houver nenhuma, e '' se houver erro.
- O algoritmo é simples: trata a matriz como vetor e encontra a solução filtrando os elementos possíveis.
-
Outras abordagens
- São apresentados códigos alternativos de David Crossley e Arthur Whitney.
- São descritos diferentes estilos de código e abordagens.
-
Exemplos e uso
- São fornecidos vários exemplos de resolução de problemas de Sudoku.
- Também é fornecida uma função para separar as caixas internas e facilitar a leitura do problema.
Resumo do GN⁺
- São apresentados vários algoritmos e estilos de código para resolver Sudoku.
- O quebra-cabeça Sudoku é útil para desenvolver raciocínio lógico e capacidade de resolução de problemas.
- Diferentes abordagens podem aumentar a flexibilidade na resolução de problemas.
- Como quebra-cabeças com funcionalidades semelhantes ao Sudoku, são recomendados Kakuro e KenKen.
1 comentários
Comentários do Hacker News