random verdeler

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jeroen VD

Jeroen VD

21/05/2015 14:48:22
Quote Anchor link
Beste allemaal,

Ik ben een registratiescript aan het maken. Dat zit qua techniek etc wel goed maar ik loop tegen de logica aan.

Iedereen die zich registreert kan zich aanmelden voor 1 workshops, van de 6 beschikbare workshops. Na alle validatie van het formulier wordt iedereen onder zijn identificatienummer en workshopinschrijving in de database gezet. (er wordt gevalideerd of er nog genoeg plaatsen zijn).

Nu wordt elke workshop op 2 momenten gegeven, en ik wil dat elke workshop, in de eerste en tweede ronde, gelijkwaardig bezocht worden. Om het tussen de workshops eerlijk te verdelen, is de limiet per workshop het aantal bezoekers gedeeld door het aantal workshops (keer twee, vanwege de twee rondes). Nu zit ik met het volgende: als x aantal bezoekers zich hebben aangemeld voor workshop y, hoe zorg ik dan dat er twee gelijke groepen ontstaan uit x?

Ik heb twee opties: 1) de eerste helft van de records van workshop y wijs ik toe aan workshopronde 1 en de tweede helft aan ronde 2. het probleem hiervan is dat ik ook graag zou willen zien dat de mensen random verdeeld zijn (ik heb reden om aan te nemen dat de ene helft anders zou kunnen zijn dan de andere helft qua mensen). dus dan is optie 2) het random toewijzen dmv rand() aan 1 van de 2 rondes per record, maar het probleem is daarvan dat ik dan niet zeker weet dat de groepen even groot zijn.

Hoe pak ik dit aan?

Jeroen
 
PHP hulp

PHP hulp

03/03/2025 07:55:33
 
- wes  -

- wes -

21/05/2015 15:08:22
Quote Anchor link
COUNT op het aantal aanmeldingen op workshop Y en X. Bij de laagste COUNT zet je de nieuwe aanmelding. In geval van gelijk aantal gebruik je een eentje naar keuze, maakt niet uit.
 
Jeroen VD

Jeroen VD

21/05/2015 23:47:53
Quote Anchor link
ik wil juist elke workshop in twee groepen verdelen. de verschillende workshops hebben een vaste grootte (die opgevuld gaan zijn)
 
Willem vp

Willem vp

22/05/2015 08:14:37
Quote Anchor link
Zoiets?

- alle deelnemers (deelnemer-ids) van een workshop in een array zetten
- array randomizen met array_rand()
- array opsplitsen met array_chunk()
Gewijzigd op 22/05/2015 08:16:18 door Willem vp
 

22/05/2015 09:54:27
Quote Anchor link
Als je gecontroleerd hebt dat er genoeg plek is voor elke workshop, dan kan je het aantal mensen evenredig verdelen. Van te voren de volgorde in het array door elkaar husselen garandeert een normalere verdeling. Ga voor Willem z'n oplossing. Je zou ipv. array_rand() ook shuffle() kunnen gebruiken.
 
D B

D B

22/05/2015 10:08:26
Quote Anchor link
Heb je er ook aan gedacht dat bepaalde mensen misschien samen willen/moeten zitten? Dus weet niet of random verdelen de goede oplossing is?
 
Jeroen VD

Jeroen VD

22/05/2015 10:34:18
Quote Anchor link
Ah kijk ik wist niet dat die functies bestonden. Daar ben ik mee geholpen!

@DB het is juist de bedoeling om dat soort mensen uit elkaar te trekken: een doel van die workshops is jezelf profileren ipv altijd maar aan anderen op te trekken
 
Ozzie PHP

Ozzie PHP

22/05/2015 12:16:19
Quote Anchor link
Jeroen VD op 22/05/2015 10:34:18:
@DB het is juist de bedoeling om dat soort mensen uit elkaar te trekken: een doel van die workshops is jezelf profileren ipv altijd maar aan anderen op te trekken

"Dat soort mensen"?

Waak ervoor dat je niet in je eigen valkuil/overtuigingen trapt. Er zijn veel mensen (ook binnen bedrijven) die het volgen van een workshop als een sociale activiteit beschouwen en die het juist leuk vinden om bij elkaar in het groepje te zitten. Jij gaat nu voor die mensen bepalen wat in jouw ogen goed voor ze is. Ik zou daar voorzichtig mee zijn. Kijk maar eens wat er gebeurt als mensen in de achtbaan niet samen in hetzelfde karretje kunnen, of als mensen die samen reizen bij een vliegtuigreis ineens niet naast elkaar kunnen zitten. Niet iedereen is daar van gediend. Ik denk dat dat ook voor workshops geldt.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.