On Thu, 01 Jul 2004 07:49:26 +0200, Jimmy wrote:
> Jeg har en streng med bogstaverne fra a-z.
> Jeg vil gerne udskrive samtlige fem-tegns kombinationer, hvor man gerne må
> genbruge bogstaverne.
Øhm, er du sikker på at du gerne vil skrive _samtlige_ kombinationer ud?
Hvis du har bogstaverne fra a til z (altså 25 bogstaver) og gerne vil
skrive alle kombinationer:
aaaaa
aaaab
...
zz
Så har du 25*25*25*25*25 = 25^5 = 9765625 ~ 10 millioner muligheder.
> Jeg kan ikke komme i gang med det, og vil gerne have et par ord om,
> hvordan man bør gribe det meste effektivt an.
Der er ingen effektiv måde at gøre det på. Men følgende vil gøre det
hurtigst muligt:
$letters = array('a', 'b', ..., 'z');
foreach ($letters as $first) {
foreach ($letters as $second) {
foreach ($letters as $third) {
foreach ($letters as $fourth) {
foreach ($letters as $fifth) {
print $first.$second.$third.$fourth.$fifth."\n";
}
}
}
}
}
Hvis din streng i stedet er et ord - f.eks. missetand - så skal du først
sørge for at hvert bogstav kun forekommer een gang - ellers vil der blive
udskrevet dubletter.
--
Mvh.
/Thomas