⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xinde.m

📁 一个简单算法能够生成数独矩阵
💻 M
字号:
clc
clear
for buchang=1:1000
for l=1:1000
for i=1:8
    a(i)=round(rand*2);
end
n=1;
l=1;
m=3;
w=5;
b=[2*round(rand*2);2*round(2*rand)];
for i=1:2
    for j=1:4
        g(i,j)=a(n);
        n=n+1;
    end
end
for i=1:2
    for j=1:2
        t(i,j)=g(l);
        r(i,j)=g(m);
        q(i,j)=g(w);
        l=l+1;
        m=m+1;
        w=w+1;
    end
end
if det(t)~=0&det(q)~=0&det(r)~=0
 for i1=0:2
for i0=0:2 
for j1=0:2 
for j0=0:2
s=g*[i1,i0,j1,j0]'+b; 
sdk(i1*3+i0+1,j1*3+j0+1)=mod(s(1,1),3)*3+mod(s(2,1),3)+1; 
end 
end 
end 
end 
end
end
for i=1:9
    hang(i)=length(unique(sdk(i,:)));
end
for j=1:9
    lie(j)=length(unique(sdk(:,j)));
end 
z=-2;
p=1;
x=0;
y=0;
for k=1:9
   z=z+3;
    for i=p:p+2
        x=x+1;
        for j=z:z+2
            y=y+1;
            w(x,y,k)=sdk(i,j);
        end
        y=0;
    end
    if mod(k,3)==0
        p=p+3;
        z=-2;
    end
    x=0;
end
for k=1:9
    b(k)=length(unique(w(1:3,1:3,k)));
end
for k=1:9
   c(k)=sum(sum(w(1:3,1:3,k)));
end
if sum(b)==81&sum(find(c==45))==45&sum(hang)==81&sum(lie)==81
    disp('matrix=')
    disp(sdk)
    break;
end
end
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -