• Informatyka
  • Metoda d’Hondta - Jak liczyć mandaty i dlaczego premiuje największych?

Metoda d’Hondta - Jak liczyć mandaty i dlaczego premiuje największych?

Marcin Owsiak 5 czerwca 2026
Ręka w rękawiczce wrzuca kartę do urny. Wybory, metoda Donty.

Spis treści

To jeden z tych algorytmów, które wyglądają na czysto polityczne, a w gruncie rzeczy są bardzo matematyczne. Poniżej rozkładam na czynniki pierwsze metodę d’Hondta: pokazuję, jak liczy się mandaty, dlaczego wynik nie zawsze jest „idealnie proporcjonalny” i jak zapisać cały mechanizm w prostym modelu informatycznym. Przy okazji wyjaśniam, czemu jedne listy zyskują na tym systemie więcej, a inne mniej.

Najkrócej rzecz ujmując, to algorytm zamieniający głosy na mandaty

  • Polega na dzieleniu liczby głosów przez kolejne liczby naturalne i wybieraniu największych ilorazów.
  • Każdy wybrany iloraz oznacza jeden mandat dla danej listy.
  • W Polsce przy wyborach do Sejmu liczą się też progi 5% dla komitetów partyjnych i 8% dla koalicyjnych.
  • System zwykle premiuje większe ugrupowania, więc nie daje wyniku „1 do 1” z samym procentem poparcia.
  • W informatyce można go opisać jako prosty, deterministyczny algorytm rankingowy.
  • Najłatwiej zrozumieć go na małej tabeli ilorazów, a nie na samej definicji.

Na czym polega metoda d’Hondta i dlaczego traktuję ją jak algorytm

W swojej istocie to metoda najwyższych ilorazów. Najpierw bierze się liczbę ważnych głosów oddanych na każdą listę, potem dzieli ją przez 1, 2, 3, 4 i kolejne liczby naturalne, a następnie wybiera się tyle największych ilorazów, ile mandatów trzeba rozdzielić. Brzmi politycznie, ale logicznie działa jak zwykły algorytm sortowania i selekcji.

Przeczytaj również: Jak pomnożyć w Excelu - proste metody i najczęstsze błędy do uniknięcia

Dlaczego patrzę na nią jak na algorytm

Bo ma jasno określone wejście, regułę przetwarzania i wynik. Wejściem są głosy i liczba mandatów, regułą jest dzielenie oraz ranking ilorazów, a wyjściem jest lista mandatów przypisana do konkretnych komitetów. To ważne z perspektywy informatyki, bo taki model da się łatwo zakodować, przetestować i porównać z innymi metodami.

Najważniejsza cecha tego mechanizmu jest prosta: nie porównuje się samych procentów poparcia, tylko kolejne „średnie” uzyskane po dzieleniu głosów. Z tego powodu dwa komitety z podobnym wynikiem mogą dostać zupełnie inną liczbę mandatów, jeśli działają w różnych okręgach albo konkurują o inną liczbę miejsc. Najlepiej zobaczyć to na konkretnym przykładzie.

W praktyce ta logika jest bardzo czytelna, gdy zapisze się ją w tabeli. A właśnie taki zapis zwykle najbardziej pomaga uczniom i osobom, które chcą zrozumieć mechanizm bez politycznego szumu.

Jak policzyć mandaty krok po kroku

Załóżmy, że w okręgu są do rozdania 3 mandaty, a trzy listy uzyskały odpowiednio 10 100, 6 700 i 4 000 głosów. Dzielimy każdą z tych liczb przez kolejne dzielniki i porównujemy powstałe ilorazy. W praktyce nie trzeba od razu liczyć wszystkiego do końca świata, tylko tyle wartości, ile może wejść do czołówki wyników.

Lista Głosy /1 /2 /3
A 10 100 10 100 5 050 3 366,67
B 6 700 6 700 3 350 2 233,33
C 4 000 4 000 2 000 1 333,33

Największe ilorazy w kolejności to: 10 100, 6 700, 5 050, 4 000 i 3 366,67. Gdybyśmy mieli 3 mandaty, trafiają one odpowiednio do list A, B i A. W efekcie lista A dostaje 2 mandaty, lista B 1 mandat, a lista C nie zdobywa żadnego miejsca.

To dobry moment, żeby zauważyć jedną rzecz: mandat nie trafia do listy „za jeden dobry wynik”, tylko za to, że jej kolejne ilorazy nadal mieszczą się w czołówce całego rankingu. Jeśli ostatni mandat przypada przy remisie ilorazów, polskie przepisy przewidują dodatkowe reguły rozstrzygania, więc nie zostawia się tego przypadkowi.

Gdy mam tłumaczyć ten mechanizm komuś pierwszy raz, zawsze zaczynam od takiego mini-przykładu. Dopiero potem przechodzę do tego, gdzie ta metoda jest używana w praktyce i czemu jej skutki bywają politycznie odczuwalne.

Gdzie w Polsce ta metoda ma realne znaczenie

W polskim systemie wyborczym ten algorytm ma największe znaczenie przy podziale mandatów w wyborach proporcjonalnych do Sejmu. Dopuszczone do podziału są tylko listy, które spełniają ustawowe warunki wejścia do gry, a więc przede wszystkim próg wyborczy.

  • 5% ważnych głosów w skali kraju dla komitetu partyjnego.
  • 8% ważnych głosów w skali kraju dla komitetu koalicyjnego.
  • Wyjątek dla mniejszości narodowych - po spełnieniu formalnych warunków ich listy mogą być zwolnione z progu 5%.
  • Wariant szczególny - gdy standardowe progi nie zostaną spełnione przez żadną listę albo tylko przez jedną, przepisy przewidują niższe minimum 3% dla komitetów partyjnych i 5% dla koalicyjnych.

To właśnie te warunki sprawiają, że wynik bywa inny, niż sugerowałby sam procent poparcia. Komitet z 4,9% głosów może zostać całkowicie poza podziałem mandatów, a komitet z 5,1% wejść do gry i zacząć zbierać mandaty w okręgach. Matematycznie różnica wygląda na niewielką, ale politycznie potrafi zmienić bardzo dużo.

Warto też pamiętać, że w wyborach proporcjonalnych nie liczy się wyłącznie skala kraju. Ostateczny efekt zależy od wyników w poszczególnych okręgach, ich wielkości i tego, jak rozkładają się głosy między listami. To prowadzi już wprost do pytania, dlaczego niektóre ugrupowania zyskują więcej niż inne.

Dlaczego wynik faworyzuje większe ugrupowania

To nie jest wada programu, tylko konsekwencja reguły. Metoda d’Hondta premiuje listy, które od początku mają wysoki wynik, bo ich ilorazy przez 2, 3 czy 4 nadal pozostają konkurencyjne wobec ilorazów słabszych list. W praktyce oznacza to, że większe ugrupowania częściej „zabierają” kolejne mandaty jeszcze zanim mniejsze listy zdążą wejść do czołówki rankingu.

Najmocniej wpływają na to cztery rzeczy:

  • Wielkość okręgu - im mniej mandatów do rozdania, tym ostrzej działa mechanizm i tym trudniej o pełną proporcjonalność.
  • Rozproszenie głosów - gdy poparcie jest rozbite na wiele średnich list, największe ugrupowania łatwiej przebijają się do czołówki ilorazów.
  • Próg wyborczy - odcina listy, które mogłyby wejść do podziału mandatów przy innym systemie.
  • Remis na granicy ostatniego mandatu - przy identycznych ilorazach wchodzą dodatkowe reguły, więc wynik nie zawsze wynika wyłącznie z gołego dzielenia.

Właśnie dlatego w małym okręgu mandat potrafi pójść do listy, która ma wyraźnie mniej głosów niż lider, ale nadal utrzymuje jeden z najwyższych ilorazów. W dużym okręgu ta asymetria jest zwykle słabsza, bo ranking ilorazów ma więcej miejsc do obsadzenia i wynik robi się bliższy proporcji głosów.

Jeśli patrzysz na to jak na proces decyzyjny, warto zapamiętać prostą zasadę: im większa liczba mandatów do rozdania, tym metoda zachowuje się łagodniej. To prowadzi do bardzo praktycznego pytania informatycznego: jak taki mechanizm zapisać w kodzie bez błędów zaokrągleń i bez niepotrzebnej złożoności?

Jak zapisać ten mechanizm w kodzie lub arkuszu

To dobry temat na zadanie z informatyki, bo algorytm jest prosty, ale wymaga porządku. Najpierw trzeba ustalić dane wejściowe, potem wygenerować ilorazy, następnie je posortować i na końcu przypisać mandaty. W arkuszu kalkulacyjnym wystarczy kilka kolumn, a w kodzie lepiej od razu myśleć o strukturze danych, która nie wymusza liczenia wszystkiego od zera po każdym mandacie.

  1. Wczytaj liczby głosów dla wszystkich list.
  2. Ustal liczbę mandatów do rozdania.
  3. Dla każdej listy oblicz kolejne ilorazy przez 1, 2, 3, 4 i tak dalej.
  4. Wybierz najwyższe ilorazy aż do wyczerpania mandatów.
  5. Zlicz, ile razy dana lista pojawiła się w czołówce.
wejście: votes[1..P], seats

dla każdej listy i:
    push do kolejki (votes[i] / 1, i, 1)

powtórz seats razy:
    (q, lista, dzielnik) = zdejmij_największy_element()
    seatsWon[lista] += 1
    push do kolejki (votes[lista] / (dzielnik + 1), lista, dzielnik + 1)

W wersji szkolnej można po prostu rozwinąć tabelę i posortować wszystkie ilorazy malejąco. W wersji bardziej technicznej lepiej użyć kolejki priorytetowej, czyli struktury danych, która zawsze zwraca największy aktualny wynik. Dzięki temu nie trzeba generować pełnej macierzy wszystkich dzielników dla każdej listy.

Jeśli chodzi o złożoność, wariant naiwny daje zwykle wynik rzędu O(P × S log(P × S)), gdzie P to liczba list, a S liczba mandatów. Wersja z kolejką priorytetową jest wygodniejsza przy większych danych i w praktyce schodzi do O(S log P). Dla zwykłej lekcji to może brzmieć jak detal, ale właśnie takie detale odróżniają „liczenie na piechotę” od sensownej implementacji.

Jedna uwaga praktyczna: przy dużych liczbach głosów lepiej nie opierać porównania na przypadkowych zaokrągleniach typu float. Bezpieczniej jest porównywać ułamki przez mnożenie krzyżowe albo przechowywać dodatkowo licznik i mianownik. Dopiero wtedy algorytm zachowuje się naprawdę deterministycznie.

Gdy już widać, jak to zakodować, naturalnie pojawia się pytanie o konkurencyjne metody. I tu różnice zaczynają być naprawdę czytelne.

D’Hondt a inne metody podziału mandatów

Najczęściej porównuję ten system z metodą Sainte-Laguë i z metodą największych reszt. Dopiero obok nich widać, że nie ma jednej „neutralnej” drogi przeliczania głosów na mandaty - każda metoda premiuje nieco inny rozkład poparcia.

Metoda Jak działa Kogo zwykle faworyzuje Co warto zapamiętać
d’Hondta Dzielniki 1, 2, 3, 4... Większe listy Stabilna, prosta i mniej korzystna dla małych ugrupowań
Sainte-Laguë Dzielniki 1, 3, 5, 7... Małe i średnie listy Bliższa czystej proporcjonalności, łagodniejsza w podziale mandatów
Największych reszt Najpierw quota, potem reszty Zależnie od kwoty i zaokrągleń Wynik mocno zależy od przyjętej normy przedstawicielstwa

Jeżeli zależy ci na zrozumieniu polskiej praktyki wyborczej, d’Hondt jest pierwszym wyborem do nauki. Jeżeli chcesz zobaczyć, skąd biorą się różnice między „większościowym” a „bardziej proporcjonalnym” efektem, porównanie z Sainte-Laguë daje bardzo dużo. Ja traktuję takie zestawienie jak test porównawczy dla samego algorytmu: od razu widać, czy celem jest wzmocnienie największych list, czy możliwie wierne odwzorowanie rozkładu głosów.

To prowadzi do najczęstszej pułapki, którą widzę u osób uczących się tego tematu po raz pierwszy: błędnego czytania wyników.

Najczęstsze błędy przy interpretacji wyników

W praktyce problem rzadko polega na samym liczeniu. Częściej ktoś dobrze liczy, ale źle rozumie, co z tego wynika. Dlatego warto od razu wyłapać kilka typowych pomyłek.

  • Mylenie procentów z mandatami - 10% głosów nie musi oznaczać 10% miejsc, bo działa ranking ilorazów i próg wyborczy.
  • Pomijanie wielkości okręgu - w okręgach z małą liczbą mandatów wynik bywa dużo mniej proporcjonalny niż w dużych.
  • Zaokrąglanie zbyt wcześnie - wcześniejsze obcięcie liczb potrafi zmienić kolejność ilorazów i dać błędny rezultat.
  • Patrzenie tylko na wynik ogólnokrajowy - mandaty rozdziela się okręgami, więc suma kraju nie oddaje całej dynamiki.
  • Ignorowanie remisu na granicy ostatniego mandatu - przy równej wartości ilorazów trzeba zastosować dodatkową regułę, a nie zgadywać.

Najważniejszy wniosek jest prosty: ten algorytm nie premiuje samej przewagi, tylko przewagę utrzymaną w kolejnych rundach dzielenia. Dlatego niewielka różnica w głosach może przełożyć się na dużą różnicę w mandatach, zwłaszcza gdy okręg jest mały albo scena polityczna mocno rozdrobniona.

Jeśli masz tę różnicę z tyłu głowy, łatwiej wykorzystasz ten temat zarówno na lekcji, jak i w zadaniu z programowania. Zostaje już tylko krótka rzecz, która domyka całość i pomaga utrwalić temat bez dublowania wszystkiego od nowa.

Co warto zapamiętać przy nauce tego algorytmu

Gdy tłumaczę ten temat, zawsze zaczynam od jednej prostej tabeli ilorazów. To lepsze niż sucha definicja, bo od razu widać, że algorytm nie „przelicza polityki”, tylko porządkuje głosy według jasno zdefiniowanej reguły.

  • Najpierw sprawdź, które listy w ogóle mogą brać udział w podziale mandatów.
  • Potem policz kolejne ilorazy i ustaw je malejąco.
  • Na końcu policz, ile razy dana lista pojawia się w czołówce rankingu.

Jeżeli chcesz naprawdę zrozumieć ten temat, policz go ręcznie na trzech listach i pięciu mandatach, a dopiero później przejdź do większych przykładów albo do implementacji w kodzie. To daje lepszy efekt niż wkuwanie definicji, bo pokazuje logikę działania całego systemu, a nie tylko jego nazwę.

FAQ - Najczęstsze pytania

To system podziału mandatów polegający na dzieleniu liczby głosów przez kolejne liczby naturalne (1, 2, 3...). Mandaty otrzymują te komitety, które uzyskały najwyższe ilorazy w całym rankingu dla danego okręgu wyborczego.

System faworyzuje większe ugrupowania, ponieważ ich wysokie wyniki pozwalają kolejnym ilorazom (np. po podziale przez 2 lub 3) wciąż wygrywać z pierwszymi ilorazami mniejszych list, które mają znacznie mniej głosów na starcie.

W wyborach do Sejmu mandaty dzielone są między komitety partyjne, które przekroczyły próg 5% głosów w skali kraju, oraz koalicje, które zdobyły min. 8%. Komitety mniejszości narodowych mogą być zwolnione z tego wymogu.

Nie jest idealnie proporcjonalna. Przez mechanizm dzielników i progi wyborcze, ostateczny podział mandatów często daje większym partiom więcej miejsc, niż wynikałoby to z samego procentowego poparcia w skali kraju.

Najlepiej użyć kolejki priorytetowej. W pętli pobieramy największy aktualny iloraz, przyznajemy mandat danej liście, a następnie wstawiamy do kolejki jej kolejny iloraz obliczony przez zwiększony o jeden dzielnik.

Oceń artykuł

Ocena: 0.00 Liczba głosów: 0

Tagi

metoda donta
metoda d’hondta
jak liczyć mandaty metodą d’hondta
przeliczanie głosów na mandaty
metoda d’hondta przykład obliczeń
Autor Marcin Owsiak
Marcin Owsiak
Jestem Marcin Owsiak, specjalizującym się w edukacji i analizie trendów w tym obszarze. Od ponad dziesięciu lat angażuję się w badanie i opisywanie innowacji edukacyjnych oraz metod nauczania, co pozwoliło mi zdobyć głęboką wiedzę na temat aktualnych wyzwań i możliwości w edukacji. Moim celem jest uproszczenie skomplikowanych danych, aby uczynić je dostępnymi i zrozumiałymi dla szerokiego grona odbiorców. Jako doświadczony twórca treści, stawiam na rzetelność i obiektywizm, co sprawia, że moje artykuły są zawsze poparte solidnymi badaniami i aktualnymi informacjami. Dążę do tego, aby dostarczać czytelnikom wartościowe treści, które nie tylko informują, ale także inspirują do refleksji nad przyszłością edukacji. Moja misja to wspieranie czytelników w zrozumieniu skomplikowanego świata edukacji poprzez dostarczanie sprawdzonych i aktualnych informacji.

Udostępnij artykuł

Napisz komentarz