Übungen - Datenstrukturen
Aufgabe 1: Zugriff auf geschachtelte Daten
Ergänze die Ergebnisse. Überprüfe sie mit Python.
>>> lottoschein = [ [(3, 6, 19, 21, 38, 41), (4, 9, 17, 37, 38, 39), (18, 23, 28, 36, 38, 46)], ('Losnummer', 4440674), ('Superzahl', 4), ('Ziehungstage', 'Sa + Mi'), ('Laufzeit', 1), ('Spiel 77', False), ('Super 6', False), ('Gluecksspirale', False) ] >>> lottoschein[0][1] ... >>> lottoschein[0][1][2] ... >>> lottoschein[1][0] ...
Aufgabe 2: Datenmodellierung
Wie könnte man die Gewinnquoten beim Lotto mit Datenstrukturen erfassen?
Aufgabe 3: Magische Quadrate
Ein magisches Quadrat ist eine quadratische Anordnung der Zahlen 1, 2, ..., sodass die Summe der Zahlen aller Zeilen, Spalten und der beiden Diagonalen gleich ist.
Eines der bekanntesten magischen Quadrate ist auf dem Kupferstich Melencolia I von Albrecht Dürer zu sehen.
Quelle: Wikimedia Commons
Entwickle ein Programm, mit dem man ein quadratisches Zahlenfeld daraufhin überprüfen kann, ob es ein magisches Quadrat darstellt.
Aufgabe 4: Sudoku
Sicher kennst du Sudoku.
Ziel ist es bei diesem Rätsel, die Zahlen 1 bis 9 so in das Quadratgitter zu füllen, dass jede Zahl in jeder Spalte, in jeder Zeile und in jedem 3x3-Block genau einmal vorkommt.
Hier ein Lösungsvorschlag zum oben gezeigten Sudoku. Nur, etwas stimmt hier nicht!
Deine Aufgabe ist es, ein Programm zu entwickeln, mit dem man Sudoku-Lösungsvorschläge auf ihre Korrektheit überprüfen kann. Das Programm soll gegebenenfalls Rückmeldungen über die gefundenen Fehler machen.
Überlege dir zunächst eine Datenstruktur zur Verwaltung von Sudokus. Entwickle anschließend ein Verfahren, mit dem man die Korrektheit von Sudokus testen kann und implementiere es in Python.
Für Experten: Viel schwieriger ist es, zu einem vorgegebenen Sudoku-Rätsel eine Lösung automatisiert zu erzeugen.
Quellen
Foto: Magisches Quadrat - Urheber: Albrecht Dürer - Lizenz: public domain