Last active
August 29, 2015 14:21
-
-
Save kac-/4b5e55b003420c36203d to your computer and use it in GitHub Desktop.
JOW z przekazywaniem
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Map<String, Integer> result = new HashMap<String, Integer>(); | |
while (constituencies.size() > 0) { | |
Iterator<List<Candidate>> ci = constituencies.iterator(); | |
while (ci.hasNext()) { | |
List<Candidate> l = ci.next(); | |
Collections.sort(l); | |
Candidate candidate = l.get(0); | |
if (candidate.acceptor != null && !candidate.acceptor.out) { | |
candidate.acceptor.votes += candidate.votes; | |
} else if (candidate.reserve != null && !candidate.reserve.out) { | |
candidate.reserve.votes += candidate.votes; | |
} | |
candidate.out = true; | |
l.remove(candidate); | |
if (l.size() == 1) { | |
Candidate win = l.get(0); | |
Integer v = result.get(win.party); | |
v = v == null ? 1 : v + 1; | |
result.put(win.party, v); | |
ci.remove(); | |
} | |
} | |
} |
Efekt 3 uruchomień( losowi Akceptorzy i Rezerwowi pośród partii oraz kolejność „odpytywania” okręgów).
partia | miejsca | udział | partia | miejsca | udział | partia | miejsca | udział | ||
---|---|---|---|---|---|---|---|---|---|---|
Con | 292 | 44,92% | Con | 292 | 44,92% | Con | 291 | 44,77% | ||
Lab | 233 | 35,85% | Lab | 228 | 35,08% | Lab | 228 | 35,08% | ||
UKIP | 45 | 6,92% | UKIP | 48 | 7,38% | UKIP | 51 | 7,85% | ||
SNP | 39 | 6,00% | SNP | 40 | 6,15% | SNP | 42 | 6,46% | ||
LD | 23 | 3,54% | LD | 18 | 2,77% | LD | 17 | 2,62% | ||
SF | 5 | 0,77% | DUP | 5 | 0,77% | DUP | 5 | 0,77% | ||
DUP | 4 | 0,62% | SF | 5 | 0,77% | SF | 4 | 0,62% | ||
PC | 3 | 0,46% | PC | 4 | 0,62% | PC | 3 | 0,46% | ||
Alliance | 2 | 0,31% | UUP | 4 | 0,62% | SDLP | 3 | 0,46% | ||
UUP | 2 | 0,31% | Green | 3 | 0,46% | Alliance | 2 | 0,31% | ||
Green | 1 | 0,15% | SDLP | 2 | 0,31% | Green | 2 | 0,31% | ||
SDLP | 1 | 0,15% | Alliance | 1 | 0,15% | UUP | 2 | 0,31% |
Można dodać współczynnik tłumienia tj. np. tylko 3/4 głosów odpadającego przechodzi do Akceptora. Przy takich parametrach ok. 70 reprezentantów dostałoby się z lokalnego drugiego miejsca a 30 z trzeciego, pojedynczy( <10) kandydaci dostaliby się z lokalnych miejsc czwartych i piątych.
Przykładowy wynik:
partia | miejsca | udział |
---|---|---|
Con | 296 | 45,54% |
Lab | 231 | 35,54% |
SNP | 50 | 7,69% |
UKIP | 34 | 5,23% |
LD | 17 | 2,62% |
DUP | 5 | 0,77% |
SF | 5 | 0,77% |
PC | 4 | 0,62% |
SDLP | 3 | 0,46% |
UUP | 3 | 0,46% |
Green | 2 | 0,31% |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Takie rozwiązanie pozwala wyeliminować listy wyborcze a jednocześnie w wynikach odzwierciedlić proporcjonalnie reprezentację pewnej grupy( o ile kandydaci tej grupy/partii w miarę racjonalnie wskażą swoich Akceptorów). Wszystko przy zachowaniu zalet JOWów.
Metoda na licencji Creative Commons - BY