In der Mathematik gibt es viele spannende Konzepte, die oft miteinander verwechselt werden. Zwei davon sind der euklidische Kreis und der Eulerkreis. Obwohl sie Àhnlich klingen, haben sie absolut nichts miteinander zu tun.
đŻ Der euklidische Kreis â der Klassiker aus der Geometrie
Ein euklidischer Kreis ist der Kreis, den wir alle aus dem Schulunterricht kennen:
Ein Kreis ist die Menge aller Punkte, die von einem festen Mittelpunkt den gleichen Abstand haben.
đ Der Eulerkreis â unterwegs im Graphen
Ein Eulerkreis ist ein Weg in einem Graphen, bei dem jede Kante genau einmal benutzt wird und man wieder am Startpunkt landet. đ
â Voraussetzungen fĂŒr einen Eulerkreis:
- Der Graph muss zusammenhÀngend sein.
đ Man muss von jedem Knoten zu jedem anderen Knoten gelangen können. - Alle Knoten haben einen geraden Grad (Also 0, 2, 4 usw. Kanten).
đ Jeder Knoten hat eine gerade Anzahl von Verbindungen (Kanten).
Um auszurechnen, ob die Knoten einen geraden Grad haben, habe ich folgendes Python Programm geschrieben
has_eulerian_circuit = lambda graph: all(len(graph[node]) % 2 == 0 for node in graph) #Alle Knoten haben einen geraden Grad -> Modulo 2
graph = {
'A': ['B', 'C'],
'B': ['A', 'C'],
'C': ['A', 'B']
}
print("Hat der Graph einen Eulerkreis?", has_eulerian_circuit(graph)) # â
True
đ¶ââïž Der Eulerpfad â fast wie der Eulerkreis
Ein Eulerpfad (Eulerian Path) ist sehr Àhnlich, aber es gibt einen kleinen Unterschied:
Auch hier wird jede Kante genau einmal benutzt, aber Start- und Endpunkt dĂŒrfen unterschiedlich sein.
â Voraussetzungen fĂŒr einen Eulerpfad:
- Der Graph muss zusammenhÀngend sein.
- Genau zwei Knoten haben ungeraden Grad.
has_eulerian_path = lambda graph: sum(len(graph[node]) % 2 != 0 for node in graph) in [0, 2] #Genau 2 Knoten haben ungeraden Grad
graph = {
'A': ['B'],
'B': ['A', 'C'],
'C': ['B']
}
print("Hat der Graph einen Eulerpfad?", has_eulerian_path(graph)) # â
True
đ Zusammenfassung
Begriff | Definition | Voraussetzungen |
---|---|---|
Eulerkreis | Jede Kante genau einmal, Start = Ziel | ZusammenhÀngend, alle Knoten gerade |
Eulerpfad | Jede Kante genau einmal, Start â Ziel möglich | ZusammenhĂ€ngend, zwei Knoten ungerade |