function SudokuShort(EingabeMatrix) Loesung = false; Original = EingabeMatrix; SizeM = size(Original,1); Vergleich = ones(1,SizeM); while (Loesung == false) Kandidat = Original; for (i1 = 1:1:SizeM) for (i2 = 1:1:SizeM) if (Kandidat(i1,i2) == 0) Kandidat(i1,i2) = fix(rand(1)*SizeM)+1; end Lsg = zeros(1,SizeM); Lsg(1,Kandidat(i1,i2)) = 1; LsgBackup{i1,i2} = Lsg; end end CounterZ = 0; CounterS = 0; for (i3 = 1:1:SizeM) Zeilen = 0; Spalten = 0; for (i4 = 1:1:SizeM) Zeilen = Zeilen + LsgBackup{i3,i4}; Spalten = Spalten + LsgBackup{i4,i3}; end if (sum(Zeilen == Vergleich) == SizeM) CounterZ = CounterZ + 1; end if (sum(Spalten == Vergleich) == SizeM) CounterS = CounterS + 1; end end if (CounterS == SizeM && CounterZ == SizeM) Loesung = true; end end disp(Kandidat); end