nikolaus.py 693 B

123456789101112131415161718192021
  1. import networkx as nx
  2. # Erstelle einen Graphen, der das "Haus vom Nikolaus" darstellt
  3. G = nx.Graph()
  4. edges = [("A", "B"), ("A", "C"), ("A", "D"), ("B", "C"), ("B", "E"), ("C", "D"), ("C", "E"), ("D", "E")]
  5. G.add_edges_from(edges)
  6. # Finde alle Euler-Pfade im Graphen
  7. eulerian_paths = list(nx.edge_dfs(G, source="A"))
  8. # Filtere Pfade, die alle Kanten genau einmal verwenden
  9. valid_paths = [path for path in eulerian_paths if len(path) == 9]
  10. # Anzahl der gültigen Pfade ausgeben
  11. print(
  12. f"Es gibt {len(valid_paths)} Möglichkeiten, das 'Haus vom Nikolaus' in einem Zug zu zeichnen, ohne den Stift abzusetzen."
  13. )
  14. # Alle gültigen Pfade ausgeben
  15. for path in eulerian_paths:
  16. print(path)