對於這個小片段,我產生一個隨機數,檢查它是否是行和列的一部分,如果它不是其中的一部分,它會插入數字。我知道它可能會放入一個已經在其3x3盒子中的數字,但這是我可以解決的問題。這是我的代碼片段,如果希望我編輯的整個代碼。我的整個代碼大概有100行。Sudoku求解器,小片段問題(matlab)
% Find empty slots, generate random number 1 - 9, insert into slot.
for i=1:9
for j=1:9
number = board(i,j);
answer = ceil(9*rand(1,1));
row = board(i,:);
col = board(:,j);
if number==0 && (ismember(answer,row)==0) && (ismember(answer,col)==0)
board(i,j) = answer;
end
end
end
我的問題是,當我跑這與真正的未解之謎,是 1)插入一個11到插槽中,這怎麼可能? 2)我仍然看到有多個相同數字的行和列。
謝謝你們。
你有一個'board'的例子,它不起作用嗎?在一些隨機板上運行約100次,我沒有看到任何11。沒有在一行或一列中檢查所有這些數字,但沒有看到我檢查過的數字。代碼似乎應該工作.. – ThijsW 2013-02-26 06:40:53
當然,我使用的謎是這個頁面上的第一個難題; http://theory.tifr.res.in/~sgupta/sudoku/algo.html – 2013-02-26 06:53:30