-
大小: 18KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-05-10
- 語言: Matlab
- 標(biāo)簽: Matlab??數(shù)獨(dú)??
資源簡介
此程序使用的是Matlab語言對(duì)數(shù)獨(dú)經(jīng)行求解詳細(xì)過程,程序注解詳盡,在玩游戲中學(xué)習(xí)編程快樂

代碼片段和文件信息
%%2017/11/12?by?DengQi(DQ)
%本程序是按照數(shù)獨(dú)基本規(guī)則對(duì)每個(gè)位置可能候選數(shù)進(jìn)行篩選,主要是在行列塊上做交集
%進(jìn)行上述篩選后的候選數(shù)只有少數(shù)幾個(gè)數(shù)了,因此后續(xù)操作就簡化了很多
function?[PossibleDataPossibleDataNum]?=?baseRule(Data)
[mn]=size(Data);
baseNumber=1:9;
PossibleData=cell(mn);
PossibleDataNum=zeros(mn);
for?i=1:m
????for?j=1:n
????????%原先有數(shù)的地方就不需對(duì)其操作
????????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))};
????????????%求取三個(gè)方向數(shù)據(jù)的交集
????????????Temp1=intersect(RowData{:}ColumnData{:});
????????????Temp2=intersect(Temp1BlockData{:});
????????????PossibleData(ij)={Temp2};
????????????PossibleDataNum(ij)=length(Temp2);
????????end
????end
end
end
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????1065??2018-01-14?19:44??SudouMatlabTest\ba
?????文件???????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
評(píng)論
共有 條評(píng)論