Buenas! Estoy intentando terminar un programa que responde al siguiente enunciado:
"Sea un sudoku semi-lleno que se considera inicialmente correcto. Sea n un valor del 1 al 9 introducido por el usuario. Sean f y c las coordenadas de una posición del sudoku. A esta posición irá a parar el valor n introducido. Se trata de comprobar si la fila f, la columna n, y la submatriz a la que pertenece n, cumplen con los requisitos de que no se repita ningún número del 1 al 9. la función recibe como argumentos la matriz 9x9, M, la fila f, la columna c, y el número n."
Bueno, pues yo no tengo problemas para comprobar la fila y la columna de n. Pero tengo grandes problemas a la hora de intentar seleccionar o "aislar" la submatriz a la que pertenece. ¿Cómo puedo hacerlo?
PD: Un compañero de la otra clase dijo que el profesor resolvió el problema de la submatriz así:
Pero no sé para qué sirve la función "floor" ni por qué la usó ahí.
Espero vuestra ayuda, a ver si mañana me sale un buen examen :P
Gracias a todos!
Un saludo.
"Sea un sudoku semi-lleno que se considera inicialmente correcto. Sea n un valor del 1 al 9 introducido por el usuario. Sean f y c las coordenadas de una posición del sudoku. A esta posición irá a parar el valor n introducido. Se trata de comprobar si la fila f, la columna n, y la submatriz a la que pertenece n, cumplen con los requisitos de que no se repita ningún número del 1 al 9. la función recibe como argumentos la matriz 9x9, M, la fila f, la columna c, y el número n."
Bueno, pues yo no tengo problemas para comprobar la fila y la columna de n. Pero tengo grandes problemas a la hora de intentar seleccionar o "aislar" la submatriz a la que pertenece. ¿Cómo puedo hacerlo?
PD: Un compañero de la otra clase dijo que el profesor resolvió el problema de la submatriz así:
Código:
fil_submat=floor((f-1)/3)*3+1; col_submat=floor((f-1)/3)*3+1; for i=fil_submat:fil_submat+2 for j=col_submat:col_submat+2 if M(i,j)==n && (i~=f || j~=c) r=0; return; end end end
Espero vuestra ayuda, a ver si mañana me sale un buen examen :P
Gracias a todos!
Un saludo.
Comentario