FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Flitig postare
|
jag har en text "hej hå oj nej ja". Texten splittar jag upp i beståndsdelar så här
$words = preg_split("/[\s,;\.]+/", $text, PREG_SPLIT_NO_EMPTY); Nu vill jag kombinera dessa ord på så många sätt som möjligt. Resultatet skall bli en lista som innehåller "hej hå oj nej ja" "hå hej oj nej ja" "hå oj hej nej ja" "hå oj nej hej ja" "hå oj nej ja hej" ... osv. ... "hej hå oj ja nej" "hej hå ja oj nej" "hej ja hå oj nej" "ja hej hå oj nej" I detta fall blir det alltså 5! (5*5*5*5*5 eller 9765625) kombinationer. Men hur skapar jag alla kombinationer? Just nu står det still i huvudet ![]() |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Medlem
|
Nu är inte jag riktigt 100 på matte men jag tror du bara får ut 25 kombinationer av det där.
|
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Medlem
|
Du kan ju tänka dig det som ett träd där varje ord blir en gren... Lås ett ord och rekursera dig ner i trädet... Men eftersom jag antar att varje ord bara får vara med en gång (det får alltså inte vara "hej hej hej hå oj" så blir det inte 9765625 olika kombinationer utna "bara" 120 kombinationer... 5*4*3*2*1 = 120.
Se t.ex nedan för ett exempel på hur många varianter du kan kombinera siffrorna 1, 2 och 3 om varje siffra måste finnas med en gång, och nebart en gång. 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 Som du ser så blir det 6 kombinationer (3*2*1) och inte 27 (3*3*3) eftersom för varje siffra/ord som "låses" på en viss position, så finns det för nästa position ett ord mindre att välja på. |
||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Flitig postare
|
Helt rätt av dig al'Thor! 120 kombinationer blir det. Tack!
Just det där med att låsa ordet och rekursera ned i trädet. Hur gör man det? |
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Klarade millennium-buggen
|
Det här kanske kan hjälpa:
http://webscripts.softpedia.com/script/PHP...rics-12448.html |
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Flitig postare
|
Tack! makeDispositionWoR() gjorde precis det jag letade efter.
|
||
![]() |
![]() |
Svara |
|
|