von Ratinger Linke » Fr 30. Sep 2011, 11:39
Sinnvoll ist eine Rundung jedenfalls nicht, aber abstruse Rundungsregeln kommen schon vor. In Deutschland wird zumindest bei Hare/Niemeyer in den meisten (allen?) Wahlgesetzen bzw. Wahlordnungen nicht gerundet. Selbst in NRW, wo es besonders abartige Rundungsregeln gibt, waren früher bei Hare/Niemeyer so viele Stellen zu berechnen wie nötig. Üblich sind Rundungen, die u.U. auch zur Unlösbarkeit des Problems führen können, aber z.B. in Österreich. Bei der Verteilung der Nationalratswahlkreise wird z.B. auf 3 Dezimalstellen gerundet, sowohl bei der Quote als auch bei der Verteilung. Programmiertechnisch hat man aber das Problem, dass zwangsläufig gerundet wird, sobald man mit Gleitkommazahlen arbeitet. Die Gleichheit von Resten lässt sich deshalb nicht ohne Weiteres feststellen. Z.B. sind [font=courier new,courier,monospace]1/3==4/3-1[/font], [font=courier new,courier,monospace]1/3==7/3-2[/font] und [font=courier new,courier,monospace]4/3-1==7/3-2[/font] alle falsch, wenn man im 64-bittigen IEEE-754-Format (wie in PCs implementiert) rechnet (lässt sich z.B. leicht überprüfen, wenn man das in der Error-Console von Firefox eingibt). Wenn man später gezielt rundet, löst man das Problem auch noch nicht sicher, weil Zahlen, die exakt gerechnet eigentlich gleich wären, auf verschiedene Seiten der Rundungsgrenze fallen können. Um die Gleichheit sicher zu überprüfen, muss man schon den Absolutwert der Differenz berechnen, um aus der Gesamtzahl der Stimmen ableiten zu können, dass es sich exakt gerechnet um den selben oder unterschiedliche Werte handeln muss (ausreichende Genauigkeit des verwendeten Zahlenformats vorausgesetzt). Bei Hare/Niemeyer ist es aber einfacher, gar nicht mit Gleitkommazahlen zu rechnen, sondern die Reste in Stimmen statt Mandatsanspüchen zu vergleichen. Dabei muss man aber beachten, dass 32 Bit nicht mehr reichen, wenn man z.B. die Verteilung der Sitze in der Bundesversammlung auf die Länder berechnen will (Einwohnerzahl multipliziert mit der Sitzzahl ergibt bei den größeren Ländern höhere Werte). Bei Sainte-Laguë ist es etwas schwieriger, nur exakt mit ganzen Zahlen zu rechnen.
Sinnvoll ist eine Rundung jedenfalls nicht, aber abstruse Rundungsregeln kommen schon vor. In Deutschland wird zumindest bei Hare/Niemeyer in den meisten (allen?) Wahlgesetzen bzw. Wahlordnungen nicht gerundet. Selbst in NRW, wo es besonders abartige Rundungsregeln gibt, waren früher bei Hare/Niemeyer so viele Stellen zu berechnen wie nötig. Üblich sind Rundungen, die u.U. auch zur Unlösbarkeit des Problems führen können, aber z.B. in Österreich. Bei der Verteilung der Nationalratswahlkreise wird z.B. auf 3 Dezimalstellen gerundet, sowohl bei der Quote als auch bei der Verteilung. Programmiertechnisch hat man aber das Problem, dass zwangsläufig gerundet wird, sobald man mit Gleitkommazahlen arbeitet. Die Gleichheit von Resten lässt sich deshalb nicht ohne Weiteres feststellen. Z.B. sind [font=courier new,courier,monospace]1/3==4/3-1[/font], [font=courier new,courier,monospace]1/3==7/3-2[/font] und [font=courier new,courier,monospace]4/3-1==7/3-2[/font] alle falsch, wenn man im 64-bittigen IEEE-754-Format (wie in PCs implementiert) rechnet (lässt sich z.B. leicht überprüfen, wenn man das in der Error-Console von Firefox eingibt). Wenn man später gezielt rundet, löst man das Problem auch noch nicht sicher, weil Zahlen, die exakt gerechnet eigentlich gleich wären, auf verschiedene Seiten der Rundungsgrenze fallen können. Um die Gleichheit sicher zu überprüfen, muss man schon den Absolutwert der Differenz berechnen, um aus der Gesamtzahl der Stimmen ableiten zu können, dass es sich exakt gerechnet um den selben oder unterschiedliche Werte handeln muss (ausreichende Genauigkeit des verwendeten Zahlenformats vorausgesetzt). Bei Hare/Niemeyer ist es aber einfacher, gar nicht mit Gleitkommazahlen zu rechnen, sondern die Reste in Stimmen statt Mandatsanspüchen zu vergleichen. Dabei muss man aber beachten, dass 32 Bit nicht mehr reichen, wenn man z.B. die Verteilung der Sitze in der Bundesversammlung auf die Länder berechnen will (Einwohnerzahl multipliziert mit der Sitzzahl ergibt bei den größeren Ländern höhere Werte). Bei Sainte-Laguë ist es etwas schwieriger, nur exakt mit ganzen Zahlen zu rechnen.