FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Nykomling
|
Ponera att jag har 4 olika typer av artiklar, vi kan kalla dem för typ A, typ B, typ C och typ D. Av typ A har jag 2 artiklar, av typ B har jag 4 artiklar, av typ C har jag 5 artiklar och av typ D har jag 3 artiklar. Kan man på något sätt göra ett script i PHP som fördelar artiklarna så jämt som det bara är möjligt? Kanske någon form av loop? Här nedan följer ett par exempel på vad jag menar:
2 typ A och 2 typ B = A-B-A-B 4 typ A och 2 typ B = A-A-B-A-A-B 2 typ A, 4 typ B och 3 typ C = B-C-A-B-C-B-A-C-B (det tror jag i alla fall är den mest jämna fördelning) Ett sådant script hade underlättat uppdateringarna utav ett par av mina hemsidor en hel del. Någon smart jävel som kan hjälpa mig lite? ![]() |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Flitig postare
|
Använd en roundrobin-algoritm för att plocka artiklarna. Här är exempelkod i Python: http://docs.python.org/library/itertools.html#recipes (sök på roundrobin)
Kod:
for letter in roundrobin('AA', 'BBBB', 'CCCCC', 'DDD'): print letter, => A B C D A B C D B C D B C C Kod:
for letter in roundrobin('CCCCC', 'BBBB', 'DDD', 'AA'): print letter, => C B D A C B D A C B D C B C |
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Nykomling
|
Verkar vara precis vad jag letar efter. Är det jättebökigt att få igång scriptet? Jag har aldrig hållt på med Python tidigare.
|
||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Flitig postare
|
Nej det är inte jättebökigt. Men för att få det att fungera i PHP behöver man copy-pasta någon annans kod eller själv lära sig hur round robin fungerar.
|
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Flitig postare
|
Citat:
|
||
![]() |
![]() |
Svara |
|
|