Проблема, которую вы пытаетесь решить, обычно называется проблемой распределения или распределения голосов.Это та же проблема, что и при назначении количества мест в Палате представителей США для каждого штата.
Проблема устойчивости, которой не удается достичь в вашем подходе (известном как метод Гамильтона или метод наибольшего остатка),известный как Алабамский парадокс .Из статьи в Википедии: «Парадокс Алабамы был обнаружен в 1880 году, когда было обнаружено, что увеличение общего количества мест уменьшит долю Алабамы с 8 до 7».
Исторически сложилось так, что по крайней мере четыре различных методаиспользуемый в США: метод Джефферсона, метод Гамильтона, метод Вебстера и текущий метод Хантингтона-Хилла , используемый с 1941 года.
Идея этих последних методов заключается в следующем.Пусть D = N/k
, общая численность населения, деленная на количество мест / шаперонов.Затем позвольте d = D
и изменяйте d
до тех пор, пока округление k_i = round(G_i/d)
не составит правильное количество мест, то есть
раунд (G_1 / d) + раунд (G_2 / d) + ...+ round (G_m / d) = k
Подвох в том, как работает функция round
.Обходы Вебстера обходятся в обычном смысле: слабо выше .5 идут вверх и строго ниже .5 идут вниз, что очень похоже на использование среднего арифметического.Метод Хантингтона-Хилла основан на идее использования среднего геометрического вместо.Вот краткое изложение этих методов здесь .Обратите внимание, что все эти алгоритмы делителей имеют недостатки в том, что они нарушают правило квоты: государство не может получить по крайней мере floor(G_m/D)
представителей.
Если вы хотите поэкспериментировать с этим больше, естьОтличная статья об этом на Cut The Knot в комплекте с историей, уравнениями и забавными апплетами.