alle combinaties

Status
Niet open voor verdere reacties.

stykurgh

Gebruiker
Lid geworden
6 jul 2009
Berichten
715
hallo,
ik wil ik graag een programma maken die alle mogelijke combinaties geeft van ingegeven letters en cijfers etc.

bijv je geeft aan dat je het wilt hebben van "abcde"

dat zijn er 5. nu moet hij dus alle combinaties geven, niet alleen met 5, wat me overigens wel is gelukt. dan geeft hij dus "abcde" en "bacde" etc. maar hij moet eerst alle 1 combi's geven dan 2 etc tot het maximale ingevoerd hier dus 5. weet iemand hoe dit moet?

mvg

michel
 
[cpp]
#include <string>
#include <algorithm>
#include <iostream>

void show_permutations(const std::string cs)
{
for (unsigned int i = 1; i <= cs.length(); ++i) {
std::string s(cs.substr(0, i));
do {
std::cout << s << '\n';
} while (std::next_permutation(s.begin(), s.end()));
}
}
[/cpp]

Bedoel je zoiets?
 
ja, alleen doet hij alleen niet alle combi's als je abcde doet dan geeft hij a en dan ab maar hij moet eerst a,b,c,d,e appart doen en dan aan de 2 combi's beginnen etc. maar wel bedankt!
 
ja, alleen doet hij alleen niet alle combi's als je abcde doet dan geeft hij a en dan ab maar hij moet eerst a,b,c,d,e appart doen en dan aan de 2 combi's beginnen etc. maar wel bedankt!

Ik had je vraag niet helemaal goed begrepen, maar dit is de verbeterde versie:

[cpp]
void show_permutations(const std::string cs)
{
const unsigned int cLen = cs.length();
for (unsigned int i = 1; i <= cLen; ++i) {
for (unsigned int j = 0; j <= cLen-i; ++j) {
std::string s(cs.substr(j, i));
do {
std::cout << s << '\n';
} while (std::next_permutation(s.begin(), s.end()));
}
}
}
[/cpp]
 
bedankt, alleen hij klopt nog steeds niet helemaal.

hij pakt nu de 1 combinaties alleen bij de 2 combinaties doet hij alleen ab,ba maar niet ac,ca etc en bij de andere combinaties ook niet.
 
Laatst bewerkt:
iemand een idee hoe ik de laatst geposte code helemaal goed krijg? het lukt me niet. wel heel erg bedankt voor de hulp, misschien krijg jij hem goed? iig heel erg bedankt!

mvg

michel
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan