Was ist ein effizienter Algorithmus zur Erstellung aller möglichen Kombinationen?
Sagen wir mal es gibt n Menge von Einträgen, von denen jeder nehmen kann, der Wert von 0 oder 1. Das bedeutet, es gibt 2^n möglichen Kombinationen dieser Einträge. Die Anzahl der Einträge kann variieren von 1 zu 6.
Wie können Sie erstellen, die jede mögliche Kombination als eine Folge von zahlen (d.h. für n = 2: 00, 01, 10, 11), ohne Rückgriff auf tausend IFs?
- Haben Sie gesehen, die Antworten an: stackoverflow.com/questions/127704/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie erreichen, dass nur durch den Druck der zahlen
0..2^n-1
in binärer form.Könnte genauso gut mit ints:
Verrückt, dezimal zu Binär conversion-gehoben von diese Antwort.
Ausgabe:
Erzeugung der mth Lexikographische Element einer Mathematischen Kombination.
LINK
Und Sie müssen sehen, dass diese durch DON KNUTH.(Die Erzeugung aller möglichen Kombinationen.HINWEIS:C# - code ist auch dort zur Verfügung stellen.)
Wenn möglich-Werte für die einzelnen Einträge können nur 0 oder 1, und Sie wollen einfach nur 0 und 1 Kombination, warum nicht Sie nutzen die natürlichen zahlen (in binärer form) bis 2^(n-1)...wie oben vorgeschlagen von Nick..und formatieren Sie diese mit '0' padding-wenn Sie möchten, string...
Oder verwenden Sie
itertools
:Beachten Sie, dass das Element ist ein Tupel aus 4 Elementen in diesem Fall.