Wpis z mikrobloga

#matlab #matematyka #programowanie

Mirki, mam do wykonania zadanie polegające na rozwiązaniu sudoku (z 21 pustymi polami) za pomocą matlaba, gdzie mam użyć operatora "\" (do lewostronnego dzielenia macierzy). Jak to zrobić?

Na razie obliczyłem wartości sum brakujących liczb w rzędach i kolumnach, a także w boksach 3x3. Jak to pociągnąć dalej? Stworzyć macierz 21x21 i tam w pisywać jedynki w miejsca niewiadomych i 0 w miejsce stałych? Da się to zrobić jakoś sprytniej?

kod: http://pastebin.com/yrGbtR9b
  • 1
@MikelThief: Generalnie to masz 27 równań do dyspozycji: 9 kolumn, 9 wierszy i 9 kwadratów. Masz tylko 21 zmiennych, więc nie wszystkie równania będą potrzebne.

Przewiduję, że trzeba macierz 21 na 21 ze samymi zmiennymi gdzie jest albo 1 jeśli zmienna występuje w równaniu albo 0 jeśli zmienna nie występuje. Dodatkowo wektor gdzie będzie dla każdego równania będzie podane 45 - suma z wiersza/kwadratu/kolumny.

Cała trudność tego to automatyczne stworzenie równań