Ik heb maar een subforum gekozen, het is niet voor school of studie maar gewoon iets waar ik zelf mee aan het pielen was. Het is vast makkelijk, maar ik kon het antwoord niet vinden of verzinnen.
Wat is een handig algoritme (systematische manier) om alle mogelijke volgorden te krijgen van een reeks (van getallen of letters of whatever)?
Bijvoorbeeld bij een reeks van 3 cijfers zijn er 3!=6 mogelijkheden:
123
231
312
132
213
321
Da's nog goed te doen, maar hoe schrijf ik netjes achter elkaar alle mogelijke volgorden van een reeks van 4 of meer? Niet dat ik daadwerkelijk bergen wil gaan zitten schrijven, maar ik zocht een manier om ze allemaal te vinden, voor het schrijven van een programmaatje waarmee ik een puzzel wilde oplossen.
Algoritme voor bepalen alle mogelijke volgorden
-
- Nieuw lid
- Berichten: 2
- Lid geworden op: 12 mar 2008, 01:27
-
- Vergevorderde
- Berichten: 1144
- Lid geworden op: 21 jan 2006, 15:09
- Locatie: Krimpen aan den IJssel
Re: Algoritme voor bepalen alle mogelijke volgorden
Zij A een verzameling met n elementen.
Noteer Per(A) voor de verzameling van alle mogelijke volgorden van de elementen van A.
Zij A een verzameling met 1 element. Dan Per(A) = A
Zij A een verzameling met n+1 elementen. Dan is Per(A) = {(a,p) | a A, p Per(A - {a})}
Voorbeeld: A = {1,2,3}
A heeft 3 elementen. (2 + 1)
Dit is een recursieve definitie: Je schrijft wat het is voor een singleton. En tevens schrijf je het voor een n+1-verz in termen van n-verz. Probeer maar eens er mee te werken.
Noteer Per(A) voor de verzameling van alle mogelijke volgorden van de elementen van A.
Zij A een verzameling met 1 element. Dan Per(A) = A
Zij A een verzameling met n+1 elementen. Dan is Per(A) = {(a,p) | a A, p Per(A - {a})}
Voorbeeld: A = {1,2,3}
A heeft 3 elementen. (2 + 1)
Code: Selecteer alles
Per (A) =
{(1,p) | p \in Per({2,3})}
u
{(2,p) | p \in Per({1,3})}
u
{(3,p) | p \in Per({1,2})}
``Life is complex. It has real and imaginary parts.''