1. úkol

Sudoku

Řešení pro obecné p

p = 2;
p2 = p^2;
p4 = p^4;
p3 = p^3;
B = zeros(p4,p4);


for i=1:p4
   radek = ceil(i/p2);
   sloupec = mod(i,p2);  
   if(sloupec==0)
       sloupec = p2;
   end
   
%radek   
   pocitadlo = 0;
   maxIndex = p2*radek;
   for u=1:p2
      B(i,maxIndex-pocitadlo) = 1;
      pocitadlo= pocitadlo+1;
   end
   
   %sloupec
   pocitadlo = 0;
   for v=1:p2
      B(i,sloupec+pocitadlo*p2) = 1;
      pocitadlo= pocitadlo+1;
   end
      
   
   cisloBunky = (floor((radek-1)/p))*p + floor((sloupec-1)/p)+1;
   radekBunky = ceil(cisloBunky/p);
   poradiBunkyNaRadku = cisloBunky - (p*(radekBunky-1));
   pocetBunekNaStejnemRadku = poradiBunkyNaRadku-1;
   pocetBunekNaPredchozRadkach = cisloBunky - pocetBunekNaStejnemRadku -1;

   sourPrvniBodBunky = pocetBunekNaPredchozRadkach*p2 + pocetBunekNaStejnemRadku*p + 1;
   
   for j=1:p
       for g=1:p
           pos = sourPrvniBodBunky+((j-1)*p2) + (g-1);
    B(i,pos) = 1;
       end
   end
   B(i,i) = 0;
   
end

g = graph('adj', B);
g = graphcoloring(g);
prumer = 20;
x = 100;
y = p2*prumer+(p2*10);
krok = 1;

for k=1:p4
    g.N(k).Name = '';
    g.N(k).graphicParam(1).width = prumer;
    g.N(k).graphicParam(1).height = prumer;
    g.N(k).graphicParam(1).x = x+(prumer+3)*(krok-1);
    g.N(k).graphicParam(1).y = y;
    krok=krok+1;
    if(mod(k,p2)== 0)
        y = y-(prumer*1.25);
        krok=1;
    end
end

g.adj = zeros(p4,p4);
graphedit(g)
graphedit('viewedgesnames', 'off','viewnodesnames', 'off','arrowsvisibility', 'off')



% for i=1:p4
%     %vem 1 radek a vypis po 
%     line=0;
%     A = zeros(p2,p2);
%     for j=1:p2
% A(j,:)=    B(i,line+1:line+p2);
%     line = line+p2;
%     end
%     i
%     A
% end
courses/a4b35ko/ukol1.txt · Poslední úprava: 2019/01/10 18:46 (upraveno mimo DokuWiki)
Nahoru
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0