StartAlgorytmySystemy wyborczeMetoda d'Hondt'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 d'Hondt'a
Ocena użytkowników:+++-- / 4
SłabyŚwietny 
Wpisany przez Tomasz Lubiński
środa, 01 marca 2006 19:41
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 Belgijskiego matematyka Wiktora d'Hondt'a.
Dopóki wszystkie mandaty nie zostaną przydzielone dla każdej partii obliczany jest następujący współczynnik:
v / (s+1), gdzie:
v - liczba głosów zdobytych przez partię w wyborach,
s - liczba miejsc przydzielonych partii do tej pory.

W danym kroku algorytmu mandat otrzymuje ta partia, która ma największą jego wartość. Uważa się, że metoda d'Hondt'a preferuje silniejsze partie, które przy jej zastosowaniu mogą zdobyć więcej mandatów niż w przypadku innych metod.
Stosować też można różne dodatkowe modyfikacje metody, na przykład wprowadzać poziom procentowy poniżej, którego partia wogóle nie jest brana pod uwagę podczas przydzielania mandatów, nawet gdyby mogła teoretycznie zdobyć jakiś mandat.
Jeżeli kilka partii uzyskało takie same współczynniki i nie ma już wystarczającej liczby mandatów do rozdania wówczas stosuje się dodatkowe atrybuty, takie jak: pierwszeństwo mają partie, które otrzymały w ogólności więcej głosów, lub/i pierwszeństwo mają partię z większą liczbą obwodów głosowania, w których na daną partię oddano większą liczbę głosów. Sposoby rozstrzygania takich sytuacji mogą być różne.

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 wszystkie partie mają przydzielonych 0 mandatów zatem, współczynniki będą miały wartość:
Partia A (0)Partia B (0)Partia C (0)Partia D (0)Partia E(0)
12281012850543352
Największą wartość współczynnika, ma partia A i to ona otrzymuje pierwszy mandat. Obliczamy dla niej nową wartość współczynnika

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

Partia A (1)Partia B (1)Partia C (0)Partia D (0)Partia E(0)
614506850543352
Teraz mandat przypada partii C.

Partia A (1)Partia B (1)Partia C (1)Partia D (0)Partia E(0)
614506425543352
Kolejny mandat otrzymuje partia A.

Partia A (2)Partia B (1)Partia C (1)Partia D (0)Partia E(0)
409,33506425543352
Teraz swój pierwszy mandat otrzymuje partia D.

Partia A (2)Partia B (1)Partia C (1)Partia D (1)Partia E(0)
409,33506425271,5352
W tym kroku kolejny mandat otrzymuje partia B.

Partia A (2)Partia B (2)Partia C (1)Partia D (1)Partia E(0)
409,33337,33425271,5352
W tym kroku kolejny mandat otrzymuje partia C.
A więc ostatecznie, partia A ma 2 mandaty, partia B 2 mandaty, partia C 2 mandaty, partia D 1 mandat, partia E nie otrzymała żadnego mandatu.



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:39

Dodaj komentarz

Kod antysapmowy
Odśwież