Prof. Dr. Jürgen Cleve
Man beachte, dass die Matrix nochmal in Quadranten unterteilt ist. Auch in diesen muss jede Ziffer exakt einaml vorkommen.
Und wie sollen wir hier die Matrix EINDEUTIG auffüllen?
Nun, in jeder Spalte MUSS jede Zahl vorkommen. Wo können wir die 4 in der 2. Spalte platzieren? Nur noch im 1. Quadranten, da die 4 ja schon in den beiden unteren Quadranten enthalten ist. Also kann die 4 nur auf der Position (2,2) platziert werden.
Und so vervollständigt man nach und nach die Matirx.
Entwickeln Sie in PROLOG ein Programm, welches eine vorgegebene Matrix entsprechend der obigen Regeln auffüllt.
Bitte nutzen Sie SWI-Prolog.
Ich habe eine Datei mit einigen vordefinierten Prädikaten bereitgestellt.
Folgende Schnittstellen / Konventionen halten Sie bitte UNBEDINGT ein.
[ [1,n,n,n,n,n,n,n,n], [n,3,n,n,n,n,n,n,n], [n,n,5,n,n,n,n,n,n], [n,n,n,4,n,n,n,n,n], [n,n,n,n,2,n,n,n,n], [n,n,n,n,n,1,n,n,n], [n,n,n,n,n,n,5,n,n], [n,n,n,n,n,n,n,1,n], [n,n,n,n,n,n,n,n,2] ]
r(2,[ [8,n,n,n,7,n,n,n,2], [n,n,6,4,n,2,8,n,n], [n,5,n,n,3,n,n,1,n], [n,1,n,5,n,4,n,2,n], [2,n,5,n,n,n,6,n,7], [n,3,n,2,n,7,n,5,n], [n,2,n,n,1,n,n,3,n], [n,n,9,7,n,3,4,n,n], [3,n,n,n,4,n,n,n,8] ] ).
Ihr Hauptprädikat muss test/2 heißen. Der erste Parameter ist das zu lösende Rätsel, der zweite die Lösung.
Die Lösung muss selbstverständlich wieder eine Liste von Listen sein.