Volgens mij kan je berekenen hoeveel verschillende mogelijkheden er zijn door aantal mogelijkheden per teken tot de macht aantal tekens te doen... Ik denk dat zo een functie opzich wel te maken is.
mss een late reactie he fenrir, maar als je als aantal 3 instelt begint hij met aab ipv aaaen eindigt met ccb ipv ccc
by 4 letters begint hy met aabc en eindigt hij met ccba
dit toch bij de onderste he
Thomas - 09/04/2005 13:33 (laatste wijziging 09/04/2005 13:33)
Moderator
Ah, permutaties.
Onderstaande code ziet elke letter als "uniek symbool". Wanneer je "aabc" invult, zul je dus dubbele items krijgen, maar deze kun je er makkelijk uitfilteren, bijvoorbeeld met array_count_values() ofzo.
jah, maar fenrir had eerst een script gepost waarbij hij alle combinaties afging:
aaa
aab
aac
aba
...
en die werkte perfect, tot hij een "betere versie" over zijn script zette, en toen werkte het niet meer zo goed:s
en ik kan dat eerste van hem wel gebruiken
Thomas - 10/04/2005 13:55 (laatste wijziging 10/04/2005 14:10)
Moderator
Euh, je wilt dus alle combinaties van N karakters in een string ter lengte L ? Dat zijn dus (als mijn kennis mij niet in de steek laat) "N boven L" combinaties, oftewel N! / (L! * (N - L)!
In jouw geval zijn dit 14950 combinaties.
EDIT: Je zou mijn oplossing kunnen gebruiken door alle combinaties van L karakters te pakken, en daarvan (van elke combinatie) alle permutaties te bepalen.
1. zoek alle mogelijke lettercombinaties (volgorde doet er niet toe)
Bijvoorbeeld (als je alle 3-letter combinaties uit de reeks a-z wilt hebben): abc, abd, abe, et cetera
2. bepaal alle permutaties (verwisselingen) van deze combinaties:
voor abc: abc, acb, bac, bca, cab, cba
voor abd: abd, adb, bad, bda, dab, dba
voor abe: abe, aeb, bae, bea, eab, eba
et cetera
function combinaties($mogelijkheden=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'),$lengte=4)
function combinaties($mogelijkheden=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'),$lengte=4)
Je kunt hem eerst in een variabele zetten, voor als je er nog iets mee wilt doen ipv alleen op het scherm zetten.
Of je kunt hem meteen op het scherm zetten, zodat je er niks meer mee kunt doen.
even offtopic
dit:
array('a','b','c'.....'y','z');
Is juist het zelfde als:
range('a', 'z');
OF met numbers=
$symbolen=array_merge(range('a', 'z'), range('0', '9'))
jah, ik kan lezen he
ik weet wel hoe ik hem moet gebruiken, maar hoe kan je instellen waarmee hij moet STARTEN
vb:
in $start staat "ghi"
eenmaal hij begint toont hij dit:
ghi
ghj
ghk
ghl
ghm
...
En die ghi moet dan helemaal naar zzz ?
De karakters waaruit de string bestaat zijn dan g t/m z ? Dus er komt geen a in voor ofzo ? Want dat zou het wel wat makkelijker maken.
Ik heb nog steeds geen goed beeld van de specificatie zeg maar.
invoer -> uitvoer.