Ik wil van een serie getallen alle mogelijke combinaties hebben, waarbij een enkel getal niet herhaald wordt in één combinatie.
Kortom: "Permutaties n uit n", want de combinaties moeten alle gegeven getallen bevatten.
Ik ben al eventjes aan het zoeken geslagen en het áántal verschillende combinaties kan gevonden worden door de faculteit van n te nemen: n! (d.w.z., faculteit 3 = 3*2*1 = 6).
Een ding kom ik echter niet uit, ondanks het feit dat Soultaker hier een oplossing aandraagt (maar jammer genoeg geen complete want als als eerste argument ($left) het aantal array-elementen in de eerste instantie wordt meegegeven dan werkt de functie niet - oftewel, als in zijn voorbeeld i.p.v. een 3 een 4 wordt gegeven doet de functie niet meer wat hij moet doen).
Voor de duidelijkheid de hamvraag;
Hoe kan ik - praktisch - met behulp van PHP alle mogelijke combinaties van een serie getallen terugkrijgen, zonder getallen meerdere malen te tonen in één combinatie? Ik neem aan met recursiviteit, maar concreet kan ik de oplossing niet vinden dus ik moet mij beroepen op meer wiskundig aangelegde mensen dan ik..
Voor de duidelijkheid een voorbeeld van input/output:
Input:
output:
Kortom: "Permutaties n uit n", want de combinaties moeten alle gegeven getallen bevatten.
Ik ben al eventjes aan het zoeken geslagen en het áántal verschillende combinaties kan gevonden worden door de faculteit van n te nemen: n! (d.w.z., faculteit 3 = 3*2*1 = 6).
Een ding kom ik echter niet uit, ondanks het feit dat Soultaker hier een oplossing aandraagt (maar jammer genoeg geen complete want als als eerste argument ($left) het aantal array-elementen in de eerste instantie wordt meegegeven dan werkt de functie niet - oftewel, als in zijn voorbeeld i.p.v. een 3 een 4 wordt gegeven doet de functie niet meer wat hij moet doen).
Voor de duidelijkheid de hamvraag;
Hoe kan ik - praktisch - met behulp van PHP alle mogelijke combinaties van een serie getallen terugkrijgen, zonder getallen meerdere malen te tonen in één combinatie? Ik neem aan met recursiviteit, maar concreet kan ik de oplossing niet vinden dus ik moet mij beroepen op meer wiskundig aangelegde mensen dan ik..
Voor de duidelijkheid een voorbeeld van input/output:
Input:
code:
1
| array(1,2,3); |
output:
code:
1
2
3
4
5
6
7
8
| array( 0 => 1,2,3 1 => 1,3,2 2 => 2,1,3 3 => 2,3,1 4 => 3,1,2 5 => 3,2,1 ); |