@@ -358,8 +358,8 @@ def archive_files():
def has_identical_file(target: Path, file_hash: str) -> bool:
- for previous in Path(target).glob("*.csv"):
- if extf_get_hash(previous) == file_hash:
+ for archived_file in Path(target).glob("*.csv"):
+ if extf_get_hash(archived_file) == file_hash:
return True
return False
@@ -0,0 +1,21 @@
+import networkx as nx
+
+# Erstelle einen Graphen, der das "Haus vom Nikolaus" darstellt
+G = nx.Graph()
+edges = [("A", "B"), ("A", "C"), ("A", "D"), ("B", "C"), ("B", "E"), ("C", "D"), ("C", "E"), ("D", "E")]
+G.add_edges_from(edges)
+# Finde alle Euler-Pfade im Graphen
+eulerian_paths = list(nx.edge_dfs(G, source="A"))
+# Filtere Pfade, die alle Kanten genau einmal verwenden
+valid_paths = [path for path in eulerian_paths if len(path) == 9]
+# Anzahl der gültigen Pfade ausgeben
+print(
+ f"Es gibt {len(valid_paths)} Möglichkeiten, das 'Haus vom Nikolaus' in einem Zug zu zeichnen, ohne den Stift abzusetzen."
+)
+# Alle gültigen Pfade ausgeben
+for path in eulerian_paths:
+ print(path)