matlab中数独的一个算法 跪求大神解释它的逻辑 在线等 5
网上找到一个数独的matlab算法,使用方法是把矩阵A修改成数独的题目(未知的数字填写0),然后可以run出来数独的最终答案,想知道它的思路是怎样的!大神看懂了可否教我>...
网上找到一个数独的matlab算法,使用方法是把矩阵A修改成数独的题目(未知的数字填写0),然后可以run出来数独的最终答案,想知道它的思路是怎样的! 大神看懂了可否教我> < 我Q是‘一30044890七’ 在线等
function sudoku(filename)
clear,clc
global su a
A=[0 4 0 7 0 0 0 0 0;
9 2 0 0 0 0 6 0 7;
8 3 0 0 0 5 4 0 0;
0 1 0 0 0 3 0 0 0;
0 0 0 2 0 1 0 0 0;
0 0 0 5 0 0 0 4 0;
0 0 4 9 0 0 0 7 1;
3 0 5 0 0 0 0 9 4;
0 0 0 0 0 8 0 6 0];
su = A;
a = zeros([9, 9, 9]);
sudoku1;
ind = (su==0);
f = sum(sum(ind>0));
if (f < 1)
disp(su)
return
end
if (f<15)
disp('Something wrong!');
return
end
V = 0;
K = zeros(9,9,f);
if(f>15)
su1 = su;
a1 = a;
[r,c]=find(ind>0);
for i=1:length(r)
t = reshape(a1(r(i),c(i),:),[1,9]);
[r1,c1] = find(t>0);
for j = 1:length(r1)
a = a1;
su = su1;
su(r(i),c(i)) = t(c1(j));
sudoku1;
ind = (su==0);
f = sum(sum(ind>0));
问题补充有字数限制 粘贴不上来了。。。
看个开头应该能大概猜到难度吧 没有GUI界面的 最多的是循环
求好心的大神联系我>< 展开
function sudoku(filename)
clear,clc
global su a
A=[0 4 0 7 0 0 0 0 0;
9 2 0 0 0 0 6 0 7;
8 3 0 0 0 5 4 0 0;
0 1 0 0 0 3 0 0 0;
0 0 0 2 0 1 0 0 0;
0 0 0 5 0 0 0 4 0;
0 0 4 9 0 0 0 7 1;
3 0 5 0 0 0 0 9 4;
0 0 0 0 0 8 0 6 0];
su = A;
a = zeros([9, 9, 9]);
sudoku1;
ind = (su==0);
f = sum(sum(ind>0));
if (f < 1)
disp(su)
return
end
if (f<15)
disp('Something wrong!');
return
end
V = 0;
K = zeros(9,9,f);
if(f>15)
su1 = su;
a1 = a;
[r,c]=find(ind>0);
for i=1:length(r)
t = reshape(a1(r(i),c(i),:),[1,9]);
[r1,c1] = find(t>0);
for j = 1:length(r1)
a = a1;
su = su1;
su(r(i),c(i)) = t(c1(j));
sudoku1;
ind = (su==0);
f = sum(sum(ind>0));
问题补充有字数限制 粘贴不上来了。。。
看个开头应该能大概猜到难度吧 没有GUI界面的 最多的是循环
求好心的大神联系我>< 展开
1个回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询