Суммируйте
Есть ли уже существующая реализация, к которой мы могли бы получить доступ в нашем java решении для голосования? Целью будет внедрение библиотеки STV с открытым исходным кодом для обеспечения прозрачности и справедливости. Мы уже пытались найти собственное решение, но мы не можем справиться со сложной математикой, стоящей за ним.
Описание
Для начала, мы уже нашли статью о том, что Новый Зеландия использует в качестве своего тезиса ( вы можете найти его здесь ) для STV. Это довольно полезно с точки зрения его работы, но использование Pascal - это не то, что мы намерены делать в нашем программном обеспечении. Чтение параграфа связанного кода , честно говоря, затруднительно читать .
Моя собственная попытка
Моя собственная попытка:
- В ролях список для голосования на деревьях
- Каждый элемент дерева имеет счетчик количества голосов, которые он имеет за свою позицию.
- Дети указанного элемента основаны на следующей позиции голосов
- Повторите рекурсивно.
- Рассчитайте порог (голосов / (мест + 1) + 1)
- L oop до заполнения всех мест:
- для каждого элемента дерева (количество голосов * коэффициент сохранения) сверх порога:
- пересчитать коэффициент сохранения (порог / текущий счетчик голосов за элемент)
- для каждого дочернего элемента указанного узла:
- распространение (1 - коэффициент сохранения) для них
- назначить им свое место