b'\n_START_ARTICLE_\nAlgoritmo de sudoku\n_START_PARAGRAPH_\nO algoritmo de sudoku consiste em verificar atrav\xc3\xa9s de l\xc3\xb3gica matem\xc3\xa1tica, as possibilidades para resolver o problema apresentado._NEWLINE_Existem diversos algoritmos e regras para cada implementa\xc3\xa7\xc3\xa3o, sendo bastante utilizados para t\xc3\xa9cnicas de aperfei\xc3\xa7oamento da l\xc3\xb3gica, em cursos e faculdades ligadas a \xc3\xa1rea de exatas._NEWLINE_Basicamente, \xc3\xa9 necess\xc3\xa1rio observar que a regra do jogo s\xc3\xb3 permite n\xc3\xbameros distintos de 1 at\xc3\xa9 9 em zonas e linhas (ambas composta por nove casas), o jogo cont\xc3\xa9m uma tabela com nove linhas e nove colunas.\n_START_SECTION_\nMatem\xc3\xa1tica\n_START_PARAGRAPH_\nO problema geral de solucionar enigmas Sudoku em tabuleiros  de blocos  \xc3\xa9 conhecido como NP-completo. Isto d\xc3\xa1 algumas indica\xc3\xa7\xc3\xb5es de porque o Sudoku \xc3\xa9 dif\xc3\xadcil de resolver. Contudo, em tabuleiros de tamanhos finitos o problema \xc3\xa9 finito e pode ser solucionado atrav\xc3\xa9s de um aut\xc3\xb4mato finito probabil\xc3\xadstico que conhece toda a \xc3\xa1rvore do jogo. Solucionar enigmas Sudoku (assim como qualquer outro problema NP-dif\xc3\xadcil) pode ser expresso como um problema de preenchimento gr\xc3\xa1fico de cores. O objetivo do enigma em sua forma padr\xc3\xa3o \xc3\xa9 construir gr\xc3\xa1fico apropriado de nove colora\xc3\xa7\xc3\xb5es, informando parcialmente as nove colora\xc3\xa7\xc3\xb5es. O gr\xc3\xa1fico em quest\xc3\xa3o tem 81 v\xc3\xa9rtices, uma interpola\xc3\xa7\xc3\xa3o em cada c\xc3\xa9lula da grade. Os v\xc3\xa9rtices podem ser rotulados com os pares ordenados , onde x e y s\xc3\xa3o n\xc3\xbameros inteiros entre 1 e 9. Neste caso, dois v\xc3\xa9rtices distintos rotulados por  e  s\xc3\xa3o conectados por uma borda se e apenas se ._NEWLINE_O enigma \xc3\xa9 ent\xc3\xa3o completado designando-se um n\xc3\xbamero inteiro entre 1 e 9 para cada interpola\xc3\xa7\xc3\xa3o, de tal maneira que os v\xc3\xa9rtices que s\xc3\xa3o unidos atrav\xc3\xa9s de uma borda n\xc3\xa3o tenham nenhum n\xc3\xbamero inteiro igual designado neles. Uma grade de solu\xc3\xa7\xc3\xa3o v\xc3\xa1lida para o Sudoku \xc3\xa9 tamb\xc3\xa9m um quadrado latino. H\xc3\xa1 significativamente menos solu\xc3\xa7\xc3\xb5es de grades de Sudoku v\xc3\xa1lidas do que os quadrados latinos, porque o Sudoku imp\xc3\xb5e restri\xc3\xa7\xc3\xb5es de regi\xc3\xa3o adicionais. Apesar disso, o n\xc3\xbamero de solu\xc3\xa7\xc3\xa3o de Sudoku para uma grade padr\xc3\xa3o de 9\xc3\x979 foram calculados em 2005 por Bertram Felgenhauer como sendo 6.670.903.752.021.072.936.960. Este n\xc3\xbamero \xc3\xa9 igual a , o \xc3\xbaltimo fator o qual \xc3\xa9 um n\xc3\xbamero primo. O resultado \xc3\xa9 derivado atrav\xc3\xa9s da l\xc3\xb3gica e computa\xc3\xa7\xc3\xa3o for\xc3\xa7a bruta. A deriva\xc3\xa7\xc3\xa3o deste resultado foi simplificada consideravelmente por an\xc3\xa1lises fornecidas por Frazer Jarvis e o n\xc3\xbamero foi confirmado independentemente por Ed Russell. Russel e Jarvis tamb\xc3\xa9m demonstraram de que quando as simetrias s\xc3\xa3o levadas em conta, havia 5.472.730.538 solu\xc3\xa7\xc3\xb5es. O n\xc3\xbamero de solu\xc3\xa7\xc3\xb5es v\xc3\xa1lidas para a varia\xc3\xa7\xc3\xa3o do Sudoku de uma grade 16\xc3\x9716 \xc3\xa9 desconhecido.\n_START_SECTION_\nResolu\xc3\xa7\xc3\xa3o de um sudoku em branco\n_START_PARAGRAPH_\nEmbora a resolu\xc3\xa7\xc3\xa3o de tabelas de sudoku parcialmente preenchidas possa ser bastante dif\xc3\xadcil, as tabelas em branco podem ser resolvidas rapidamente. Talvez a forma mais f\xc3\xa1cil de fazer isto seja produzir a solu\xc3\xa7\xc3\xa3o raiz, que pode ser obtida por meio de um algoritmo bem simples, cujo tempo de execu\xc3\xa7\xc3\xa3o \xc3\xa9 polinomial:_NEWLINE_Para uma grade padr\xc3\xa3o de tamanho n\xc2\xb2 x n\xc2\xb2 o algoritmo tem a seguinte forma (em java):_NEWLINE_final int n = 3;final int[][] field = new int[n*n][n*n];for (int i = 0; i < n*n; i++)_NEWLINE_for (int j = 0; j < n*n; j++)_NEWLINE_field[i][j] = (i*n + i/n + j) % (n*n) + 1;_NEWLINE_O procedimento acima produz o seguinte sudoku 9x9:_NEWLINE_+-----------------------+_NEWLINE_| 1 2 3 | 4 5 6 | 7 8 9 |_NEWLINE_| 4 5 6 | 7 8 9 | 1 2 3 |_NEWLINE_| 7 8 9 | 1 2 3 | 4 5 6 |_NEWLINE_|-------+-------+-------|_NEWLINE_| 2 3 4 | 5 6 7 | 8 9 1 |_NEWLINE_| 5 6 7 | 8 9 1 | 2 3 4 |_NEWLINE_| 8 9 1 | 2 3 4 | 5 6 7 |_NEWLINE_|-------+-------+-------|_NEWLINE_| 3 4 5 | 6 7 8 | 9 1 2 |_NEWLINE_| 6 7 8 | 9 1 2 | 3 4 5 |_NEWLINE_| 9 1 2 | 3 4 5 | 6 7 8 |_NEWLINE_+-----------------------+'