m1=[3,0,8;0,4,0;7,9,0]; m2=[6,0,0;3,0,0;0,0,1]; m3=[0,9,5;0,0,0;3,0,0]; m4=[0,0,0;4,5,0;0,2,3]; m5=[9,0,0;0,0,0;5,0,7]; m6=[1,5,0;9,0,2;0,0,0]; m7=[0,0,0;0,0,0;6,3,1]; m8=[0,0,0;0,6,3;0,0,0]; m9=[0,0,3;0,0,1;7,2,9]; sudoku=[m1,m2,m3;m4,m5,m6;m7,m8,m9]; % Crear matriz 9x9 para representar el tablero % Inicializar tablero aleatorio n=9; for i=1:n for j=1:n if(sudoku(i,j)==0) sudoku(i,j)=randi(9); %llena espacios bacios con aleatorios del 1-9 end end end %generar_vecino % Encontrar valores válidos para la posición validos = 1:9; validos(sudoku(i,j) ~= 0) = []; % validos(sudoku(:,j) ~= 0) = []; subcuadricula_i = 3*floor((i-1)/3) + 1; subcuadricula_j = 3*floor((j-1)/3) + 1; subcuadricula = sudoku(subcuadricula_i:subcuadricula_i+2,subcuadricula_j:subcuadricula_j+2); validos(ismember(validos)) = []; % Cambiar valor de la posición aleatoria vecino = sudoku; vecino(i,j) = validos(randi(length(validos)));
## Algoritmo