Besseres Gegenstück zu dieser verrückten verschachtelten Python-Schleife

8
%Vor%

Der obige Code wird verwendet, um alle Pfade bestimmter Länge in einem Diagramm zu erstellen. map [a] repräsentiert die Punkte, die Sie von Punkt a aus erreichen können.

Wie kann ich es ändern, um eine beliebige Anzahl von Schleifen zu simulieren?

Dies ist wie ein kartesisches Produkt (itertools.product) bei jeder Iteration Ihre Auswahl für das nächste Element ist auf die in map [current_point] beschränkt.

    
Babak 18.01.2012, 06:58
quelle

3 Antworten

6
%Vor%     
Baffe Boyois 18.01.2012, 07:09
quelle
3

Dies ist ein klassisches rekursives Problem. Ihre Funktion sollte die Verkettung des Knotenwerts mit allen Ergebnissen des Ergebnisses function für jeden untergeordneten Knoten zurückgeben. Wie Sie im Satz sehen können, wird das Funktionsverhalten rekursiv erklärt:

%Vor%

Ergebnis:

%Vor%

Dieser Code ist ein Startpunkt. Sie können alle Pfade in einer Liste speichern, verwenden Sie yield Generator, usw. Vergessen Sie nicht, Kreise zu verhindern.

Sehen Sie sich auch die Lösung für die Erstellung von Grafiken an. Sicher kann diese Bibliothek Ihnen helfen, sehen Sie dieses Beispiel: Findet alle kürzesten Pfade (Geodäten) von einem Scheitelpunkt zu allen anderen Scheitelpunkten .

Grüße.

    
danihp 18.01.2012 08:22
quelle
1

Wie andere vorgeschlagen, mit Rekursion:

%Vor%     
Bogdan 18.01.2012 10:50
quelle