Я работаю над проектом школьного программирования, и мне нужно назначить каждого студента группе, чтобы все группы имеют примерно такое же количество мальчиков, как девочки.Как разделить число студентов на разные группы таким образом, чтобы они содержали примерно одинаковое количество мальчиков и девочек
Кроме того, старые ученики сохраняют одну и ту же группу, поэтому изначально у меня есть две группы (A и B) с некоторыми уже назначенными учениками и список для назначения группы. В каждой группе допускается максимальное количество студентов.
Например:
-чисел студентов, ранее присвоенных:
Group A Group B
-------------- ---------------
Boys 6 Boys 12
Girls 9 Girls 8
-------------- ---------------
Total 15 Total 20
-чисел студентов для назначения:
-------------- ---------------
Boys 8 Girls 4
-------------- ---------------
-Максимальный количество студентов в группе:
------------------------------------------
25 students per group
------------------------------------------
-решением быть получено:
Group A Group B
-------------- ---------------
Boys 13 Boys 13
Girls 11 Girls 10
-------------- ---------------
Total 24 Total 23
-The процесс я следовал, чтобы достичь этого решения заключается в следующем:
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
Мне нужно знать, как сделать назначение быть справедливо для любого числа ранее назначенных студентов. Мне также нужно сделать тот же процесс с тремя группами (A, B и C).
Заранее благодарен
Бьюсь об заклад, ваша проблема может быть полиномиально уменьшена до [рюкзака] (https://en.wikipedia.org/wiki/Knapsack_problem) или [подмножества] (https://en.wikipedia.org/wiki/Subset_sum_problem) проблема. – Jan