groeps verdeling
Ik wil dat uit en aantal inschrijvingen automatisch groepen worden gemaakt
nou heb ik:
- minimum aantal deelnemers in het voorbeeld 13
- maximum aantal deelnemers in het voorbeeld 25
en in inschrijvingen 27
nu laat ik er en while op los die uittekent dat je het kan verdelen in 3 groepen en dan met 9 deelnemers. maar dat is natuurlijk niet de goeie uitkomst.
nu kan ik natuurlijk wel kijken of de uitkomst goed is.
maar me vraag is hoe los ik op dat hij ziet dat de uitkomst 13 en 14 moet wezen?
Hoop dat me vraag duidelijk is.
PS deze code is ter illustratie gemaakt ;)
nou heb ik:
- minimum aantal deelnemers in het voorbeeld 13
- maximum aantal deelnemers in het voorbeeld 25
en in inschrijvingen 27
nu laat ik er en while op los die uittekent dat je het kan verdelen in 3 groepen en dan met 9 deelnemers. maar dat is natuurlijk niet de goeie uitkomst.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
nu kan ik natuurlijk wel kijken of de uitkomst goed is.
maar me vraag is hoe los ik op dat hij ziet dat de uitkomst 13 en 14 moet wezen?
Hoop dat me vraag duidelijk is.
PS deze code is ter illustratie gemaakt ;)
Gesponsorde koppelingen:
Je moet er een recursief ding van maken. Dat jou voorbeeld 13 geeft klopt, want je doet nu dus maar een uitkomst geven. Het aantal groepen is gelijk aan het aantal uitkomsten.
Verder kom je denk ik ook niet over de 25 heen als je de overgebleven gewoon over alle groepen verdeeld.
Dus dan kan je gewoon zes in de ene doen en zes in de andere.
En dat kan je weer uitvinden door het aantal over gedeeld door het aantal groepen te doen. En het aantal groepen kan je flooren, want er kunnen geen zoveelste deel van mensen in een groep.
Als het aantal over kleiner of gelijk aan het aantal groepen is, kan je d'r gewoon met een for overheen loopen van het aantal over en dan steeds eentje bij de groep in stoppen.
Verder kom je denk ik ook niet over de 25 heen als je de overgebleven gewoon over alle groepen verdeeld.
Code (php)
Dus dan kan je gewoon zes in de ene doen en zes in de andere.
En dat kan je weer uitvinden door het aantal over gedeeld door het aantal groepen te doen. En het aantal groepen kan je flooren, want er kunnen geen zoveelste deel van mensen in een groep.
Als het aantal over kleiner of gelijk aan het aantal groepen is, kan je d'r gewoon met een for overheen loopen van het aantal over en dan steeds eentje bij de groep in stoppen.
Gewijzigd op 01/01/1970 01:00:00 door Karl Karl
Ik realiseer me net dat ik en belangerijk detail ben vergeten het aantal groepen moet zo klein mogelijk zijn.
Dat is inderdaad wel belangrijk.
Zelf lijkt mij dat niet zo handig, maar goed.
Dan moet je gewoon weer kijken hoe vaak de overgebleven in 13 kan worden gestopt (als het goed is, en ik heb goed logisch nagedacht komt er nooit meer dan 12 uit).
Als het aantal kleiner of gelijk aan één is betekend dat je gewoon de overgeblevenen bij een groep in kan gooien. Anders moet je 12 in een groep gooien en dan nog eens kijken.
Zelf lijkt mij dat niet zo handig, maar goed.
Dan moet je gewoon weer kijken hoe vaak de overgebleven in 13 kan worden gestopt (als het goed is, en ik heb goed logisch nagedacht komt er nooit meer dan 12 uit).
Als het aantal kleiner of gelijk aan één is betekend dat je gewoon de overgeblevenen bij een groep in kan gooien. Anders moet je 12 in een groep gooien en dan nog eens kijken.
Ik zou het zo doen:
Zo is het aantal groepen minimaal en worden de deelnemers gelijkmatig verdeeld, de overgebleven deelnemers kunnen bijvoorbeeld met for loop worden ingedeeld.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$aanInschrijvingen = 104;
$minAanDeelnemers = 13;
$maxAanDeelnemers = 25;
$aantalGroepen = ceil($aanInschrijvingen / $maxAanDeelnemers);
echo "Groepen: ".$aantalGroepen."<br />\n";
echo "Deelnemers per groep: ".($aanInschrijvingen - $aanInschrijvingen % $aantalGroepen) / $aantalGroepen."<br />\n";
echo "Overgebleven deelnemers: ".$aanInschrijvingen % $aantalGroepen."<br />\n";
?>
$aanInschrijvingen = 104;
$minAanDeelnemers = 13;
$maxAanDeelnemers = 25;
$aantalGroepen = ceil($aanInschrijvingen / $maxAanDeelnemers);
echo "Groepen: ".$aantalGroepen."<br />\n";
echo "Deelnemers per groep: ".($aanInschrijvingen - $aanInschrijvingen % $aantalGroepen) / $aantalGroepen."<br />\n";
echo "Overgebleven deelnemers: ".$aanInschrijvingen % $aantalGroepen."<br />\n";
?>
Zo is het aantal groepen minimaal en worden de deelnemers gelijkmatig verdeeld, de overgebleven deelnemers kunnen bijvoorbeeld met for loop worden ingedeeld.
@Karl
bedankt voor het meedenken zal even kijken of ik zoiets in me kaar gezet krijg.
maar als je het het simpel weg maar gaat verdelen ga je dan niet over je max heen?
bedankt voor het meedenken zal even kijken of ik zoiets in me kaar gezet krijg.
Lauren schreef op 14.09.2009 11:23:
Ik zou het zo doen:
Zo is het aantal groepen minimaal en worden de deelnemers gelijkmatig verdeeld, de overgebleven deelnemers kunnen bijvoorbeeld met for loop worden ingedeeld.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$aanInschrijvingen = 104;
$minAanDeelnemers = 13;
$maxAanDeelnemers = 25;
$aantalGroepen = ceil($aanInschrijvingen / $maxAanDeelnemers);
echo "Groepen: ".$aantalGroepen."<br />\n";
echo "Deelnemers per groep: ".($aanInschrijvingen - $aanInschrijvingen % $aantalGroepen) / $aantalGroepen."<br />\n";
echo "Overgebleven deelnemers: ".$aanInschrijvingen % $aantalGroepen."<br />\n";
?>
$aanInschrijvingen = 104;
$minAanDeelnemers = 13;
$maxAanDeelnemers = 25;
$aantalGroepen = ceil($aanInschrijvingen / $maxAanDeelnemers);
echo "Groepen: ".$aantalGroepen."<br />\n";
echo "Deelnemers per groep: ".($aanInschrijvingen - $aanInschrijvingen % $aantalGroepen) / $aantalGroepen."<br />\n";
echo "Overgebleven deelnemers: ".$aanInschrijvingen % $aantalGroepen."<br />\n";
?>
Zo is het aantal groepen minimaal en worden de deelnemers gelijkmatig verdeeld, de overgebleven deelnemers kunnen bijvoorbeeld met for loop worden ingedeeld.
maar als je het het simpel weg maar gaat verdelen ga je dan niet over je max heen?
Aantal groepen = Inschrijvingen / maxDeelnemers
(Inschrijvingen / Aantal groepen) kan dus nooit hoger zijn dan maxDeelnemers
(Inschrijvingen / Aantal groepen) kan dus nooit hoger zijn dan maxDeelnemers
De redenering van Lauren is helemaal correct. De overgebleven personen kun je gelijkmatig over de groepen verdelen totdat ze op zijn.



