Algoritmo de escrita no conjunto de dados 2D em inglês simples

5

Eu iniciei uma aula introdutória de Java e o material é absolutamente horrendo e eu tenho que obter notas excelentes para serem aceitas no mestrado, daí a minha pergunta muito básica:

Na minha tarefa, tenho que escrever algoritmos (sem pseudocódigo ainda) para resolver um jogo de tabuleiro (Sudoku). Essencialmente, as notas dizem que um algoritmo é a especificação da (s) entrada (s), a (s) saída (s) e os tratamentos aplicados à entrada para obter a saída. Minha pergunta está no texto dos algoritmos porque eu provavelmente poderia codificá-lo, mas não consigo colocá-lo no papel de maneira coerente.

O jogo tem um tabuleiro de 9x9 e um dos algoritmos para escrever tem que encontrar a solução olhando para 3 quadrados (horizontal ou vertical) e ver se um dos três sub quadrados coincide com o número que você está procurando. Se nenhum for o caso, o número que você deseja colocar está em um dos outros 2 conjuntos de 3 sub-quadrados (veja a imagem para ter uma idéia melhor).

Nota: A tarefa não é escrever um solucionador completo. Apenas um algoritmo para resolver o caso particular que descrevi.

Eu realmente não consigo entender como formular a solução nos termos descritos acima ou talvez seja simples demais, aqui está o que eu estava pensando:

Entrada: Um conjunto bidimensional de dados de tamanho 9 por 9 para ser resolvido e um número para pesquisar.

Ouput: Um conjunto bidimensional de dados de tamanho 9 por 9 resolvido ou parcialmente resolvido.

Tratamento: Analise cada conjunto de quadrados 3x9 e 9x3. Para cada linha ou coluna de um quadrado 3x3, verifique se o número corresponde a uma linha (ou coluna). Se isso acontecer, passe para a próxima linha (ou coluna). Se não, avance para o próximo quadrado 3x3 na mesma linha (ou coluna). Enxagúe e repita.

Isso faz sentido como um algoritmo escrito em inglês simples? Eu não estou procurando uma resposta para o algoritmo em si, mas sim sobre a formulação de algoritmos em inglês simples.

Nota : Aparentemente, isso não está claro: não se trata de solucionar todas as soluções possíveis. Trata-se de resolver apenas este conjunto muito particular de regras. Eu não fiz o trabalho. De qualquer forma, isso nem é remotamente relevante, já que esse não é o foco da minha pergunta.

    
por ApplePie 27.10.2012 / 05:48
fonte

1 resposta

2

Seja irritantemente completo. Por exemplo, você não descreve como você pega a entrada 9x9 e cria o conjunto de quadrados menores. Além disso, a primeira frase fala sobre 9x3, 3x9 quadrados e a segunda olha para 3x3 quadrados de erro ou etapa perdida? Pode ser útil escrever o pseudo-código (ou código real) primeiro e depois retroceder até uma descrição detalhada até você pegar o jeito.

Deve ser algo como: quebrar 9x9 entrada em um conjunto de 9 sub quadrados, tomando a interseção das 3 primeiras linhas e colunas, em seguida, as próximas três colunas etc. Em seguida, examine cada sub quadrado para a seguinte propriedade zzz. Se ele mantiver a transformação de pré-forma xyz e continuar com o próximo subquadrado. Se isso não acontecer, pule e continue. etc. Remonte o quadrado 9x9 dos sub quadrados 3x3 por esta transformação e retorne-o.

    
por 29.10.2012 / 17:03
fonte

Tags