StartAlgorytmySystemy wyborczeMetoda Hare-Niemeyer'a
Baza Wiedzy
Wersja offline serwisu przeznaczona na urządzenia z systemem Android.

Darowizny
darowiznaWspomóż rozwój serwisu


Nagłówki RSS
Kanał artykuły
Kanał implementacje
Kanał komentarze
Kanał forum


Bookmarki









Sonda
Implementacji w jakim języku programowania poszukujesz?
 
Metoda Hare-Niemeyer'a
Ocena użytkowników:+++++ / 2
SłabyŚwietny 
Wpisany przez Tomasz Lubiński
sobota, 22 kwietnia 2006 14:10
W ramach modelu wyborów proporcjonalnych wyróżnić można kilka metod przydzielania mandatów na podstawie wyników. Opisywana metoda wywodzi swoją nazwę od nazwiska metody zaproponowanej początkowo przez Thomasa Hare'a i zmodyfikowanej następnie przez niemieckiego matematyka Horsta Niemeyer'a. Algorytm ten znany jest również pod nazwą metody największych reszt (ang. Largest reminder method).

Dla każdej partii obliczany jest następujący współczynnik:
(vi * s) / vt, gdzie:
vi - liczba głosów zdobytych przez i-tą partię w wyborach,
vt - liczba głosów oddanych na wszystkie partie,
s - liczba mandatów do przydzielenia.

W pierwszym kroku każda partia otrzymuje tyle mandatów ile wynosi całkowita część obliczonego dla niej współczynnika. Czyli jeżeli współczynnik wynosi 2.1202 to partia otrzymuje 2 mandaty, w przypadku gdy współczynnik wynsi 5.899928 partia otrzymuje 5 mandatów.
W kolejnym kroku patrzymy na reszty współczynników (wartości po przecinku). Dopóki pozostają jeszcze wolne mandaty przydzielamy je tym partiom, które mają największą wartość po przecinku.
Metoda ta sprzyja głównie małym i średnim ugrupowaniom.

Przykład:
Niech będzie dany okręg 7-mandatowy, w którym walczy 5 partii, każda otrzymała następującą liczbę głosów.
Partia APartia BPartia CPartia DPartia E
12281012850543352

W pierwszym kroku algorytmu obliczymy współczynniki. Sumaryczna liczba oddanych głosów wynsi: 1228 + 1012 + 850 + 543 + 352 = 3985.
Partia A (0)Partia B (0)Partia C (0)Partia D (0)Partia E(0)
2,1571,7781,4930,9540,618

Przydzielimy każdej partii tyle mandatów ile wynosi część całkowita obliczonego współczynnika. Zostawimy tylko reszty współczynników, które potrzebne będą w kolejnym kroku
Partia A (2)Partia B (1)Partia C (1)Partia D (0)Partia E(0)
0,1570,7780,4930,9540,618

Przydzieliliśmy do tej pory 4 mandaty z 7. Pozostały zatem 3 wolne mandaty, przydzielamy je tym partiom, które mają największą wartość po przecinku. W tym kroku największą wartość współczynnika ma partia D. Wyzerujemy jej wartość współczynnika by nie wziąć jej pod uwagę przy przydzielaniu następnego mandatu.
Partia A (2)Partia B (1)Partia C (1)Partia D (1)Partia E(0)
0,1570,7780,49300,618

W tym kroku największą wartość współczynnika ma partia B i to ona otrzymuje mandat.
Partia A (2)Partia B (2)Partia C (1)Partia D (1)Partia E(0)
0,15700,49300,618

Ostatni wolny mandat otrzymuje partia E.
Partia A (2)Partia B (2)Partia C (1)Partia D (1)Partia E(1)
0,15700,49300,618

Czyli ostatecznie partia A ma 2 mandaty, partia B 2 mandaty, partia C 1 mandat, partia D 1 mandat oraz partia E jeden mandat.



Autor Język programowania Komentarz Otwórz Pobierz Ocena
Tomasz Lubiński C/C++
Implementacja w C/C++
Implementacja w C/C++
++++- / 1
Tomasz Lubiński Delphi/Pascal
Implementacja w Delphi/Pascal
Implementacja w Delphi/Pascal
++++- / 1
Tomasz Lubiński Java
Implementacja w Java
Implementacja w Java
++++- / 1
 
Dodaj własną implementację tego algorytmu
  • Zaloguj się na stronie
Plik:
Język programowania:
Komentarz:
  By móc dodać implementacje zaloguj się na stronie



Poprawiony: piątek, 10 czerwca 2011 20:40

Dodaj komentarz

Kod antysapmowy
Odśwież