clear
c = perms([1,2,3,4,5]); % c matrix i olasi tum dizileri iceriyor
master = [1,2,3,4,5]; % sirali dizimizin ismi "master"
KEY = []; % c matrix i icerisinde "sifreli" oldugunu tespit ettiklerimizi KEY matrix i icerisine atacagiz
KEYi = 1;
for i = 1:120 % c matrix i icerisindeki her eleman icin..
test = c(i,:); % diziyi al ve test degiskenine ata
for ii = 1:5
ind = sum( test==master ) % master dizi ile karsilastir, cakisma sayisini bul
if ind == 1 % eger cakisma sayisi 1 e esitse bu donguden cik.
break
end
if ind == 0 % cakisma sayisi sifirsa diziyi saga dogru bir kaydir
test = circshift(test',1)';
end
if ind >= 2 % cakisma sayisi 2 ve 2 den fazlaysa diziyi saga dogru bir kaydir
test = circshift(test',1)';
end
end
if ind == 1
x = test( test==master );
if x == 2; % cakisan eleman dogru cevaba esitse
KEY(KEYi,:) = c(i,:); % diziyi kaydet
KEYi = KEYi + 1;
end
end
end
Read more: http://feeds.dzone.com/~r/dzone/snippets/~3/HvbUvBG-ypM/13099