Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Anzahl_der_Pfade = 0
- def Gitterpfad(m, n):
- global Anzahl_der_Pfade
- if m < 0 or n < 0: #Zu Beginn wird überprüft, ob richtige Koordinaten eingegeben worden sind
- #und falls dies nicht der Fall ist, eine entsprechende Fehlermeldung zurück-
- #gegeben.
- Anzahl_der_Pfade = False
- print "Ungültige Eingabe. Die Koordinaten müssen beide größer oder gleich null sein."
- elif m + n == 0:
- Anzahl_der_Pfade = 0
- print "Der Pfad vom Ursprung zum Ursprung selbst hat die Länge 0 bzw. ist eigentlich kein 'echter' Pfad."
- elif m + n == 1:
- Anzahl_der_Pfade = Anzahl_der_Pfade + 1
- else: #Wenn nun aber die Parameter akzeptiert worden sind, wird zwischen drei Fällen unterschieden:
- if m > 0 and n > 0: #1.: Wenn der Gitterpfad sich noch nicht auf der x- bzw. y-Achse befindet,
- #kann dieser sowohl nach Süden als auch nach Westen fortgeführt werden.
- #Somit ruft sich die Funktion für die beiden unterschiedlichen Möglichkeiten
- #wieder selber auf.
- Gitterpfad(m - 1, n)
- Gitterpfad(m, n - 1)
- elif m > 1 and n == 0: #2.: Befindet sich der Pfad nun schon auf der y-Achse, d.h. n = 0, so
- #kann sich der Pfad nur noch Richtung Süden erweitern.
- #Somit ruft sich die Funktion selbst nur einmal auf.
- Gitterpfad(m - 1, n)
- elif m == 0 and n > 1: #3.: Dies funktioniert analog zu 2., nur dass hier m = 0 ist und
- #sich der Pfad somit nur noch Richtung Westen erweitern kann.
- Gitterpfad(m, n - 1)
- #Allgemein wird hier, wie in der Aufgabenstellung empfohlen, "rückwärts gedacht."
- #Statt vom Ursprung aus zu starten und nur nach Norden oder Osten zu gehen, starten wir
- #vom Punkt (m,n) aus und bewegen uns ausschließlich Richtung Süden und Westen gen Ursprung.
- m = 5
- n = 3
- Gitterpfad(m, n)
- print "Die Anzahl der verschiedenen Pfade vom Ursprung zu dem Punkt", Tupel_aus_m_und_n, "lautet:", Anzahl_der_Pfade
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement