Kom ihåg mig?
Home Menu

Menu


Script som fördelar artiklar jämt

Ämnesverktyg Visningsalternativ
Oläst 2010-09-03, 14:54 #1
simals simals är inte uppkopplad
Nykomling
 
Reg.datum: Mar 2010
Inlägg: 48
simals simals är inte uppkopplad
Nykomling
 
Reg.datum: Mar 2010
Inlägg: 48
Standard Script som fördelar artiklar jämt

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?
simals är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-09-03, 15:42 #2
Bjorne Bjorne är inte uppkopplad
Flitig postare
 
Reg.datum: Sep 2009
Inlägg: 374
Bjorne Bjorne är inte uppkopplad
Flitig postare
 
Reg.datum: Sep 2009
Inlägg: 374
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
Man kan jämna till urvalet ytterligare om man ordnar grupperna efter längd:
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
Bjorne är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-09-03, 20:17 #3
simals simals är inte uppkopplad
Nykomling
 
Reg.datum: Mar 2010
Inlägg: 48
simals simals är inte uppkopplad
Nykomling
 
Reg.datum: Mar 2010
Inlägg: 48
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.
simals är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-09-07, 13:28 #4
Bjorne Bjorne är inte uppkopplad
Flitig postare
 
Reg.datum: Sep 2009
Inlägg: 374
Bjorne Bjorne är inte uppkopplad
Flitig postare
 
Reg.datum: Sep 2009
Inlägg: 374
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.
Bjorne är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-09-09, 13:54 #5
robincox robincox är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2008
Inlägg: 301
robincox robincox är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2008
Inlägg: 301
Standard Vilket språk?

Citat:
Ursprungligen postat av simals Visa inlägg
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?
Vilket programmeringsspråk håller du på med, är det php du kodar i så är det lätt att lösa det.
robincox ä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 08:26.

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