Ich versuche gerade aus 24 Elementen 24 Kombinationen zu bilden, unter der Einschränkung, dass sich in keiner Kombination 2 mal die gleichen Elemente, auf der gleichen Seite, berühren dürfen. Rein rechnerisch müsste es funktionieren so auf genau 24 Varianten zu kommen.
Hier ein Beispiel für alle Kombinationen einer Lösung mit 4 Elementen:
1243
2314
3421
4132
Das war manuell noch halbwegs machbar - Aber wie stell ich das mit 24 Elementen an? Gibt’s da nen Algorithmus?
Erklärungsversuch
Beispiel: Ich habe 4 verschiedene Elemente {1,2,3,4}. Diese sollen kombiniert werden. Bedingung: Es müssen in jeder Kombination unterschiedliche Elemente aufeinanderfolgen.
Kombination
1243
Kombination
in dieser dürfen weder 12, 24 oder 43 vorkommen, da diese bereits in der 1. Kombination vorkommen.
2314
Kombination
Auch in dieser dürfen 12, 24 oder 43 nicht vorkommen. Zusätzlich dürfen (wegen Kombination 2) auch nicht 23, 31, und 14 vorkommen.
3421
Kombination
Hier dürfen zusätzlich nicht mehr verwendet werden: 34, 42, 21
Ob es wirklich genau 24 solche Kombinationen gibt hab ich nicht überprüft, aber unter der Annahme dass es 24 solche Kombination gibt habe ich einen Ansatz:
Erstelle einen gerichteten Graphen mit 24 Knoten in dem zwischen irgend 2 Knoten a und b genau eine Kante von a nach b und genau eine Kante von b nach a geht.
for i=1:24
Finde einen Weg durch den Graphen der jeden Knoten genau einmal durchläuft und entferne dabei alle benutzten Kanten. Die Kombination ist die Reihenfolge in der die Knoten durchlaufen werden.
end
Fraglich hierbei ist, ob man jeden dieser Wege (ich glaube man nennt sie eulersch) nehmen darf, oder ob es Einschränkungen gibt (man muss ja sicherstellen dass es nach dem Entfernen der Kanten noch einen solchen Weg gibt). Zum Finden solcher Wege gibt es bekannte Algorithmen (Hierholzer glaube ich). Probiere es doch einfach mal aus!
Fraglich hierbei ist, ob man jeden dieser Wege (ich glaube man
nennt sie eulersch) nehmen darf, oder ob es Einschränkungen
gibt (man muss ja sicherstellen dass es nach dem Entfernen der
Kanten noch einen solchen Weg gibt).
Hm… interessante Idee. Ich denke es muss definitiv irgendwelche Einschränkungen geben. Wenn man z.B. immer mit dem gleichen Knoten beginnt, so ist mit den letzten 5 Kanten kein Pfad mehr möglich.
Fatale Verwechslung:
Wenn jeder Knoten abgelaufen werden soll ist das ein Hamiltonpfad und so einen zu finden ist verdammt eckelhaft.
Ein Ergebnis lässt sich allerdings aus dem Verfahren ableiten: In jedem Schritt ändern sich die Ein- und Ausgangsgrade der Knoten folgendermaßen
Anfangspunkt: --Ausgangsgrad (AG)
Endpunkt: --Eingangsgrad (EG)
Andere: --EG und --AG
Am Anfang gilt für alle Punkte EG=AG=23
Damit 24 Schritte möglich sind muss also jeder Punkt genau einmal Anfangspunkt und genau einmal Endpunkt eines Hamiltonpfades gewesen sein.
–> Jedes Element ist ein mal erstes und einmal letztes Element einer Permutation.