Единый передаваемый голос (СТВ) по методу Мик - PullRequest
0 голосов
/ 15 января 2020

Суммируйте

Есть ли уже существующая реализация, к которой мы могли бы получить доступ в нашем java решении для голосования? Целью будет внедрение библиотеки STV с открытым исходным кодом для обеспечения прозрачности и справедливости. Мы уже пытались найти собственное решение, но мы не можем справиться со сложной математикой, стоящей за ним.

Описание

Для начала, мы уже нашли статью о том, что Новый Зеландия использует в качестве своего тезиса ( вы можете найти его здесь ) для STV. Это довольно полезно с точки зрения его работы, но использование Pascal - это не то, что мы намерены делать в нашем программном обеспечении. Чтение параграфа связанного кода , честно говоря, затруднительно читать .

Моя собственная попытка

Моя собственная попытка:

  1. В ролях список для голосования на деревьях
    • Каждый элемент дерева имеет счетчик количества голосов, которые он имеет за свою позицию.
    • Дети указанного элемента основаны на следующей позиции голосов
    • Повторите рекурсивно.
  2. Рассчитайте порог (голосов / (мест + 1) + 1)
  3. L oop до заполнения всех мест:
    • для каждого элемента дерева (количество голосов * коэффициент сохранения) сверх порога:
      • пересчитать коэффициент сохранения (порог / текущий счетчик голосов за элемент)
      • для каждого дочернего элемента указанного узла:
        • распространение (1 - коэффициент сохранения) для них
    • назначить им свое место
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...