• 大小: 18KB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: Matlab
  • 标签: Matlab  数独  

资源简介

此程序使用的是Matlab语言对数独经行求解详细过程,程序注解详尽,在玩游戏中学习编程快乐

资源截图

代码片段和文件信息

%%2017/11/12 by DengQi(DQ)
%本程序是按照数独基本规则对每个位置可能候选数进行筛选,主要是在行列块上做交集
%进行上述筛选后的候选数只有少数几个数了,因此后续操作就简化了很多
function [PossibleDataPossibleDataNum] = baseRule(Data)
[mn]=size(Data);
baseNumber=1:9;
PossibleData=cell(mn);
PossibleDataNum=zeros(mn);
for i=1:m
    for j=1:n
        %原先有数的地方就不需对其操作
        if Data(ij)==0
            %先沿着x方向
            RowData={setdiff(baseNumberData(i:))};
            %再沿着y方向
            ColumnData={setdiff(baseNumberData(:j))};
            %在3x3小块中
            BlockX= (1+3*floor((i-1)/3)):(3+3*floor((i-1)/3));
            BlockY= (1+3*floor((j-1)/3)):(3+3*floor((j-1)/3));
            BlockData={setdiff(baseNumberData(BlockXBlockY))};
            %求取三个方向数据的交集
            Temp1=intersect(RowData{:}ColumnData{:});
            Temp2=intersect(Temp1BlockData{:});
            PossibleData(ij)={Temp2};
            PossibleDataNum(ij)=length(Temp2);
        end
    end
end
end




 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1065  2018-01-14 19:44  SudouMatlabTest\baseRule.m

     文件       1518  2018-01-14 21:00  SudouMatlabTest\ExcludeRow_Col_BlockSame.m

     文件       4275  2018-01-14 20:55  SudouMatlabTest\Row_Col_Block_DataTwoSame.m

     文件       3766  2018-01-14 20:23  SudouMatlabTest\Row_Col_Block_DataUnique.m

     文件       8630  2017-03-22 21:26  SudouMatlabTest\Sudou1.xlsx

     文件       8595  2017-03-22 21:26  SudouMatlabTest\SudouD.xlsx

     文件        644  2018-01-14 21:19  SudouMatlabTest\SudouDemo.m

     文件      22528  2018-01-13 18:35  SudouMatlabTest\SudouM1.xls

     目录          0  2018-01-14 22:40  SudouMatlabTest

----------- ---------  ---------- -----  ----

                51021                    9


评论

共有 条评论