Kann man Sudokus mit Hilfe von T-SQL lösen?

Keine Kommentare
Sudoku mit T-SQL lösen

Einleitung

Sudoku mit T-SQL? Schon lange beschäftigt mich die Frage der Lösbarkeit von Sudoku-Aufgaben mit meinem Lieblingstool. Vor Kurzem hatte ich die Gelegenheit, meine Ansätze auf diese Frage einem größeren Publikum aufzuzeigen. Ich hatte mich als Sprecher für die SQL Server Konferenz vom 03. bis zum 05. März 2020 beworben. Aber gegen eine Vielzahl von Einreichungen waren meine beiden Sessions dieses Mal chancenlos. Also löste ich zusammen mit drei Kollegen somit lediglich ganz normale Teilnehmertickets, um mich über die Neuheiten rund um den SQL Server informieren zu können.

Sudoku mit T-SQL

Die SQL Server Konferenz 2020 in Darmstadt

Mit mehr als 50 Vorträgen und einem vorgeschalteten Workshoptag ist diese alteingesessene Veranstaltung ein fester Punkt im Terminkalender vieler Datenbankspezialisten. Hier treffen sich IT-Entscheider, Entwickler und Berater zum Erfahrungsaustausch, pflegen ihr Netzwerk und bekommen die neuesten Trends, Technologien und Entwicklungen rund um das Datenbanksystem von Microsoft präsentiert. Dabei ist diese Grenze sehr großzügig gewählt, schließlich widmen sich ein Großteil der Sessions auch Bereichen wie Künstliche Intelligenz, Maschinelles Lernen, agile Entwicklung, Dev-Ops oder auch Technologien aus dem Bereich „Azure“, also der Cloud-Sparte von Microsoft.

Als Nachrücker zum Sprecher

Die Bestätigung meines Sprecherplatzes als Ersatz für einen ausgefallenen Speaker-Kollegen kam extrem kurzfristig. Mit nur einem Tag Vorlauf eine vollständig neue Session aus dem Boden zu stampfen ist unrealistisch. Meine spontane Idee, den Vortrag „die extra harten Kopfnüsse mit T-SQL geknackt“, den ich gerade mit neuen Knobelaufgaben für eine Version zwei aufbereite, als Grundlage zu nutzen und mit den erfolgreichsten Herausforderungen aus der Vorgängerversion (bspw. das Teilsummenproblem)  zu ergänzen, war ein schneller aber valider Ausweg. In Darmstadt hatte ich diesen Vortrag noch nie gehalten, also sollte es nicht zu unschönen Wiederholungen im Publikum kommen. Mit einem Paket kleiner Nussdosen als Hirnnahrung für die Teilnehmer trat ich zusammen mit den Kollegen die Reise nach Darmstadt an.

Klassiker und neue Herausforderungen

Die Konferenzagenda kündigte meinen Vortrag als Denksportszenario mit vielen kleinen Aufgaben an, die selbst gestandene T-SQL-Könner die Denkfalten auf die Stirn treiben. Knapp 100 Neugierige habe den Weg in den Vortragsraum gefunden und lauschten meinen Ausführungen zu Rekursion und cleveren Fensterfunktionen. Gemeinsam haben wir einen virtuellen Rummel besucht und den Besuch der Fahrgeschäfte bei einem gegebenen Budget optimiert. Anschließend begaben wir uns in die Rolle eines Administrators. Es galt den „Server des Grauens“ zu betreuen und dessen Up- und Downtimes zu überwachen. Hier lag die Schwierigkeit darin sogar Daten abzufragen, die nicht im Bestand vorkamen. Mit großem Interesse und viel Spaß ließ sich das Auditorium dabei zeigen, wie man derartige Fragestellungen mit dem SQL Server löst.

Neues Sudoku erstellen oder bestehende Aufgabe lösen

Mit Abstand das größte Interesse rief die Aufgabe „löse ein Sudoku mit T-SQL“ hervor. Dabei galt es zuerst ein zufälliges, aber gültiges 9×9-Rätsel zu erstellen, welches alle der folgenden Bedingungen erfüllt:

  1. in keiner Spalte
  2. in keiner Zeile
  3. und in keinem 3×3-Unterquadrat

kommt eine der Zahlen von 1 bis 9 mehrfach vor. Schon hier galt es im Quellcode diverse Grundlagen zu reaktivieren, die man auch als geübter Entwickler nicht täglich benötigt. Kaum war diese Aufgabe erfolgreich bewältigt, habe ich nach einem Algorithmus zum Lösen von teilausgefüllten Sudokus gefragt. Gemeinsam entwickelten wir in der Session einen entsprechenden Ansatz und prüften die von mir vorbereitete Beispiellösung mit mehreren Aufgaben unterschiedlicher Komplexität.

https://twitter.com/MEhrenmueller/status/1235189109611802625

„schöne Beispiele“ und „mal etwas Anderes“

Über die offizielle Feedbackfunktion bekam ich einige sehr nett formulierte Kommentare und viele Punkte für meine Performance. Auch auf der abendlichen Veranstaltung mit Party-Charakter, die zum Netzwerken einlädt, haben mich etliche Teilnehmer angesprochen. Extrem gut kam an, dass nach unzähligen doch sehr theoretischen Vorträgen hier ein Mitmachangebot vorlag. Wissen wurde mit Spaß vermittelt. Da die Teilnehmer den Quellcode und die Präsentation zum Download angeboten bekamen, war ein Mitschreiben in der Session nicht notwendig und man konnte sich ganz auf die Freude am Knobeln konzentrieren.
Vorheriger Beitrag
Wrangling Data Flows
Nächster Beitrag
Homeoffice mit Microsoft Teams

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Weitere Beiträge