Hallo zusammen,
ich bin gerade bei einem Problem, bei dem ich nicht weiter weiß und mich über eure Hilfe freuen würde. Es ist für mich ein Rekursionsproblem mit folgenden Gesichtspunkte:
Gegeben sei ein numerisches Array der Form
Das ganze stellt ein Kombinationsmöglichkeiten mit folgendem Regelwerk dar:
Eine gültige Kombination liegt dann vor, wenn stets ein Schlüssel in seinen inneren (kombinierbaren) Schlüsseln liegt.
Im Bsp heißt das:
716 besitzt die Elemente 723, 735, 746 und 758.
Da die 716 auch in der 723 enthalten ist, stellt dies eine gültige Kombination dar. Mit der 723 ist neben der 716 auch die 758 kombinierbar. Da wiederum die 716 und die 723 Bestandteile von 758 sind, ist
716+723+758 eine gültige Kombination. Ebenfalls gültige Kombinationen sind
716+735+758 sowie
716+746.
Doppelte Einträge sollten nicht dabei sein, d.h. 716+723+758 ist das gleiche wie 723+716+758. Daher ist im oben stehenden Beispiel die Lösungsmenge 3.
Dies versuche ich momentan in PHP in einer rekursiven Funktion niederzuschreiben. Wie bekomme ich nun die Restlisten zusammen mit den erstellten Ergebnislisten rekursiv übertragen?
Ich würde mich riesig über eure Hilfe freuen. Wenn Frage sind, dann immer her damit.
Vielen Dank
Roman
ich bin gerade bei einem Problem, bei dem ich nicht weiter weiß und mich über eure Hilfe freuen würde. Es ist für mich ein Rekursionsproblem mit folgenden Gesichtspunkte:
Gegeben sei ein numerisches Array der Form
Code:
Array ( [716] => Array ( [0] => 723 [1] => 735 [2] => 746 [3] => 758 ) [723] => Array ( [0] => 716 [1] => 758 ) [735] => Array ( [0] => 716 [1] => 758 ) [746] => Array ( [0] => 716 ) [758] => Array ( [0] => 716 [1] => 723 [2] => 735 ) )
Eine gültige Kombination liegt dann vor, wenn stets ein Schlüssel in seinen inneren (kombinierbaren) Schlüsseln liegt.
Im Bsp heißt das:
716 besitzt die Elemente 723, 735, 746 und 758.
Da die 716 auch in der 723 enthalten ist, stellt dies eine gültige Kombination dar. Mit der 723 ist neben der 716 auch die 758 kombinierbar. Da wiederum die 716 und die 723 Bestandteile von 758 sind, ist
716+723+758 eine gültige Kombination. Ebenfalls gültige Kombinationen sind
716+735+758 sowie
716+746.
Doppelte Einträge sollten nicht dabei sein, d.h. 716+723+758 ist das gleiche wie 723+716+758. Daher ist im oben stehenden Beispiel die Lösungsmenge 3.
Dies versuche ich momentan in PHP in einer rekursiven Funktion niederzuschreiben. Wie bekomme ich nun die Restlisten zusammen mit den erstellten Ergebnislisten rekursiv übertragen?
Ich würde mich riesig über eure Hilfe freuen. Wenn Frage sind, dann immer her damit.
Vielen Dank
Roman
Kommentar