1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| clear all;clc;
NM = [9,13,8,11,11,16,9,9,16,2,11,2,16,5,8,7;
15,8,3,11,6,4,8,10,3,7,16,16,3,12,1,7;
6,14,12,10,10,13,15,14,15,6,7,12,4,14,11,14;
12,10,2,13,2,4,7,14,6,14,4,15,10,4,1,12;
9,4,9,9,6,15,5,6,8,2,6,7,12,12,2,3;
3,14,13,13,11,16,11,5,13,3,8,15,6,10,7,7;
5,15,11,15,6,6,2,2,3,4,3,9,11,10,14,14;
12,11,7,9,12,6,16,13,14,15,9,15,11,13,16,9;
15,12,1,8,10,7,3,10,9,7,6,5,12,3,16,6;
11,13,3,10,11,8,15,15,6,9,15,6,16,7,8,2;
6,3,12,12,14,2,14,10,8,12,5,1,12,14,13,15;
9,8,15,11,2,9,14,8,16,6,15,15,11,6,9,1;
13,8,4,15,9,4,2,9,9,16,3,11,5,15,6,5;
7,8,11,8,16,10,12,13,9,12,12,9,6,15,10,2;
13,11,12,10,11,12,11,5,2,7,16,5,9,16,3,4;
7,1,15,2,2,13,4,13,8,14,6,12,2,7,13,10;
8,1,10,5,7,6,7,13,16,9,6,9,10,5,16,7;
12,8,6,16,5,11,15,6,14,8,3,11,6,11,3,10;
10,1,1,11,11,4,13,9,14,4,7,7,10,3,2,2;
9,6,13,9,11,15,3,10,9,12,7,1,7,13,15,5;
13,2,10,14,11,5,1,5,16,16,8,10,3,7,7,15;
3,13,6,9,2,6,5,5,7,16,12,16,13,11,12,2;
14,3,1,1,2,6,3,7,9,3,15,11,5,6,4,2;
11,7,4,12,6,13,8,11,5,15,13,8,12,9,2,16;
15,13,3,2,13,2,7,16,4,14,3,5,14,9,9,7;
11,13,8,14,6,8,1,6,10,15,16,16,1,12,12,1;
10,8,8,14,4,10,8,10,6,9,6,10,7,2,9,15;
2,1,15,12,16,1,8,14,12,1,11,8,16,1,14,9;
14,7,2,16,1,15,14,15,14,3,15,3,1,11,4,1;
3,4,14,13,9,8,6,9,8,6,1,6,3,9,12,3;
10,9,16,16,2,9,14,5,8,2,16,9,8,5,15,4;
7,5,14,10,1,5,8,5,7,4,9,15,5,16,16,9;
6,14,16,15,9,14,6,9,13,5,10,10,2,15,10,15;
5,11,15,15,2,14,7,6,7,14,13,14,11,2,4,7;
6,6,3,8,4,16,11,8,4,10,10,7,5,12,15,3;
9,6,13,5,4,16,9,6,2,2,2,10,2,6,11,12;
15,6,2,16,12,7,13,15,8,2,4,12,6,6,16,14;
8,5,12,6,1,9,16,3,2,7,2,3,16,16,5,12;
12,6,16,9,5,13,11,10,1,2,14,8,4,14,7,10;
5,13,3,1,8,13,7,8,2,1,13,7,13,6,12,7;
4,4,2,12,7,4,8,16,8,6,4,3,5,15,4,6;
4,4,5,9,12,6,5,12,15,10,1,13,8,7,6,1;
13,14,15,6,4,3,2,4,6,8,15,16,1,7,16,4;
15,3,9,10,10,8,16,10,11,13,11,9,12,6,9,3;
5,10,6,2,16,9,16,3,9,4,16,11,14,5,7,5;
1,9,11,1,6,12,16,10,7,3,5,4,5,2,2,1;
6,7,13,3,14,1,13,13,7,7,16,15,14,4,5,8;
10,15,5,5,9,10,3,3,14,8,16,2,13,6,16,9;
10,5,11,2,3,3,14,3,3,6,2,2,10,2,13,1;
10,3,5,6,14,16,10,1,1,13,6,4,14,4,12,3];
[u,i] = cellfun(@(x)unique(x,'stable'),mat2cell(NM,ones(1,size(NM,1)),size(NM,2)),'UniformOutput',false);
i = cellfun(@(x)setdiff(1:16,x),i,'UniformOutput',false);
i = cell2mat(cellfun(@(x)[x,x(mod((1:max(cellfun(@numel,i))-numel(x))-1,numel(x))+1)],i,'UniformOutput',false));
d = cellfun(@(x)setdiff(1:16,x),u,'UniformOutput',false);
p = cellfun(@randperm,num2cell(cellfun(@numel,d)),'UniformOutput',false);
d = cell2mat(cellfun(@(x)[x,x(mod((1:max(cellfun(@numel,d))-numel(x))-1,numel(x))+1)],d,'UniformOutput',false));
p = cell2mat(cellfun(@(x)[x,x(mod((1:max(cellfun(@numel,p))-numel(x))-1,numel(x))+1)],p,'UniformOutput',false));
NM(sub2ind(size(NM),(1:size(NM,1))'*ones(1,size(i,2)),i)) = d(sub2ind(size(d),(1:size(d,1))'*ones(1,size(p,2)),p)) |
Partager