Kom ihåg mig?
Home Menu

Menu


kombinera en lista med ord på alla olika sätt

Ämnesverktyg Visningsalternativ
Oläst 2008-04-15, 12:27 #1
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
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
radioaktivitet är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-15, 12:32 #2
Knalli Knalli är inte uppkopplad
Medlem
 
Reg.datum: Jul 2007
Inlägg: 189
Knalli Knalli är inte uppkopplad
Medlem
 
Reg.datum: Jul 2007
Inlägg: 189
Nu är inte jag riktigt 100 på matte men jag tror du bara får ut 25 kombinationer av det där.
Knalli är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-15, 12:37 #3
al'Thor al'Thor är inte uppkopplad
Medlem
 
Reg.datum: Feb 2008
Inlägg: 116
al'Thor al'Thor är inte uppkopplad
Medlem
 
Reg.datum: Feb 2008
Inlägg: 116
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å.
al'Thor är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-15, 13:08 #4
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
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?
radioaktivitet är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-15, 13:46 #5
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Det här kanske kan hjälpa:
http://webscripts.softpedia.com/script/PHP...rics-12448.html
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-15, 15:10 #6
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
Tack! makeDispositionWoR() gjorde precis det jag letade efter.
radioaktivitet är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 11:18.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017