Joseph - 9 days ago 5
jQuery Question

# How to divide a number of students into different groups in a way that contains approximately the same number of boys and girls

I'm working on a school programming project, and I need to assign each student a group, so that all groups have approximately the same number of boys as girls.

In addition the old students keep the same group, so I initially have 2 groups (A and B) with some students already assigned and a list to assign the group. Each group has a maximum number of students allowed.

For example:

-Numbers of students previously assigned:

``````          Group A                     Group B
--------------             ---------------
Boys      6                 Boys     12
Girls     9                 Girls     8
--------------             ---------------
Total     15                Total     20
``````

-Numbers of students to assign:

``````       --------------             ---------------
Boys      8                 Girls     4
--------------             ---------------
``````

-Maximum number of students per group:

``````       ------------------------------------------
25 students per group
------------------------------------------
``````

-Solution to be obtained:

``````          Group A                     Group B
--------------             ---------------
Boys      13                 Boys     13
Girls     11                 Girls    10
--------------             ---------------
Total     24                Total     23
``````

-The process I followed to reach this solution is as follows:

``````1. I have calculated the total number of boys and girls:

Total Boys: 6 + 12 + 8 = 26
Total Girls: 9  + 8 + 4 = 21

2. I have calculated half of both amounts:

Total Boys:   26 / 2 = 13
Total Girls:  21 / 2 = 10 (10.5)

3. I have calculated the difference between the students assigned and the
students remaining to be assigned until the amount obtained previously:

Group A                     Group B
--------------             ---------------
Boys   13-6= 7               Boys   13-12= 1
Girls  10-9= 1               Girls  10-8= 2
--------------             ---------------

4. I have assigned the necessary amount of the students in each group:

Group A                     Group B
--------------             ---------------
Boys   6+7= 13              Boys   12+1= 13
Girls  9+1= 10              Girls  8+2=  10
--------------             ---------------
Total     23                Total     23

5. And finally the one that I have left I have added it to the first
group:

Group A                     Group B
--------------             ---------------
Boys   13                   Boys   13
Girls  10+1=11              Girls  10
--------------             ---------------
Total     24                Total     23
``````

I need to know how to make the assignment to be valid for any number of previously assigned students. I also need to do the same process with three groups (A, B and C).

The solution you propose is good one. Just please remeber to divide the number of students by the number of groups in `step #2`. That should be enough to make your solution flexible.