Página 1 de 2

¿Ha perdido las elecciones? ¡Cambie de método de reparto!

Publicado: 11 Mar 2008 22:19
por Prez
Buenas.

Como ando ocioso, voy a dedicar unos minutillos a jugar con los resultados de las últimas elecciones generales españolas, aplicándole distintos métodos de reparto, a ver cuántos escaños se llevaría cada uno. Seguramente ya lo hayan hecho por ahí muchos, pero bueno, así me distraigo.

Los datos los tomo de la página que ha dedicado el Ministerio del Interior a estas elecciones centrándome en el Congreso, que el Senado pinta menos que Gallardón en Génova.

Así han quedado con la ley actual, esto es, con D'Hondt, circunscripciones provinciales y un mínimo de un 3% de los votos válidos por circunscripción.

Código: Seleccionar todo

P.S.O.E. 169 
P.P.     154
CiU       10
EAJ-PNV    6
ESQUERRA   3
I.U.       2
B.N.G.     2
CC-PNC     2
UPyD       1
NA-BAI     1


Así quedarían con D'Hondt, circunscripción única y una cota inferior del 3%.

Código: Seleccionar todo

P.S.O.E. 170 
P.P.     155
I.U.      14
CiU       11


Con D'Hondt, circunscripción única y sin cota inferior.

Código: Seleccionar todo

P.S.O.E. 162 
P.P.     147
I.U.      13
CiU       11
EAJ-PNV    4
UPyD       4
ESQUERRA   4
B.N.G.     3
CC-PNC     2


Con reparto proporcional puro, circunscripción única y una cota inferior del 3%.

Código: Seleccionar todo

P.S.O.E. 169 
P.P.     154
I.U.      15
CiU       12


Con reparto proporcional puro, circunscripción única y sin cota inferior.

Código: Seleccionar todo

P.S.O.E.      154 
P.P.          140
I.U.           13
CiU            11
EAJ-PNV         4
UPyD            4
ESQUERRA        4
B.N.G.          3
CC-PNC          3
CA              1
NA-BAI          1
EA              1
C's             1
PACMA           1
VERDES          1
PAR             1
CHA             1
NC-CCN          1
LV-GV           1
ARALAR          1
BLOC-IC-EV-EE   1
UPLI            1
PUM+J           1


Mayoritario, circunscripción provincial.

Código: Seleccionar todo

P.S.O.E. 175 
P.P.     175


Para los cálculos mediante el método D'Hondt, me he ayudado de un cutrescript en _perl_ que me hecho. Por si alguien lo quiere para hacer el indio un rato, aquí lo dejo.

Código: Seleccionar todo

#!/usr/local/bin/perl

# Propósito: pide al usuario una relación de partidos políticos juno con sus respectivos votos conseguidos y devuelve los escaños que se les asignaría según el método D'Hondt, suponiendo una circunscripción única y un limite inferior en % sobre el total de votos válidos.

use strict;

my $num_partidos = 0;  # Número de partidos políticos
my $total_votos_validos = 0;  # Número total de votos válidos. Incluye los votos en blanco, pero no los nulos.
my $total_escanios = 350;  # Número total de escaños (por ejemplo, hay 350 en el Congreso de los diputados y 111 en la Asamblea de Madrid)
my $limite_inferior = 0.03; # Límite inferior (por ejemplo, para el congreso es del 3% y para la Comunidad de Madrid del 5%)

# Pide el número de escaños
print "Número total de escaños: ";
chop( $total_escanios = <STDIN> );

# Pide el límite mínimo
print "Límite mínimo de votos (en %): ";
chop( $limite_inferior = <STDIN> );
$limite_inferior /= 100; # Se pasa al tanto por uno

# Pide el número de partidos
print "Número de partidos políticos: ";
chop( $num_partidos = <STDIN> );

# Lista de partidos: se inicializa con los votos en blanco, que siempre serán considerados.
my %lista_votos = ( "Blanco" => 0 );

# Va preguntando los nombres y los votos de los partidos.
my $nombre_partido;
my $numero_votos;
for ( my $i = 1; $i <= $num_partidos; $i++ )
{
   print "Nombre del partido número $i: ";
   chop( $nombre_partido = <STDIN> );
   print "Número de votos conseguidos por el partido número $i: ";
   chop( $numero_votos = <STDIN> );
   $lista_votos{ $nombre_partido } = $numero_votos;

   # Acumula el número de votos
   $total_votos_validos += $numero_votos;
}

# Pide votos en blanco
print "Número de votos en blanco: ";
chop( $lista_votos{ "Blanco" } = <STDIN> );
$total_votos_validos += $lista_votos{ "Blanco" };  # Acumula número de votos válidos

# Lista de restos: sólo se incluirán los partidos cuyos votos superen el 3%.
my %lista_restos;
my $partido;
foreach $partido ( keys %lista_votos )
{
   if ( $lista_votos{ $partido } >= $total_votos_validos * $limite_inferior and $partido ne "Blanco" )
   {
      # Si el partido supera el 3%, se construye un array de longitud 350 con su lista de restos
      for ( my $i = 1; $i <= $total_escanios; $i++ )
      {
         push( @{ $lista_restos{ $partido } }, $lista_votos{ $partido } / $i );
      }
   }
}

# Se construye la lista de escaños
my %lista_escanios;
foreach $partido ( keys %lista_restos )
{
   $lista_escanios{ $partido } = 0;   
}
for ( my $i = 1; $i <= $total_escanios; $i++ )
{
   my $mayor_resto = 0;
   my $partido_con_mayor_resto;
   foreach $partido ( keys %lista_restos )
   {
      if ( ${@{ $lista_restos{ $partido } } }[0] > $mayor_resto )
      {
         $mayor_resto = ${@{ $lista_restos{ $partido } } }[0];
         $partido_con_mayor_resto = $partido;
      }
   }
   $lista_escanios{ $partido_con_mayor_resto } += 1;  # Se le asigna el escaño al partido con mayor resto
   shift( @{ $lista_restos{ $partido_con_mayor_resto } });  # Se elimina el resto utilizado
}

# Por último, muestra los escaños por partidos.
foreach $partido ( keys %lista_escanios )
{
   print $partido . ": " . $lista_escanios{ $partido }  . " escaños\n";
}

Re: ¿Ha perdido las elecciones? ¡Cambie de método de reparto!

Publicado: 11 Mar 2008 23:46
por Xavi Fernandez
¿Y contando los votos en blanco?

Para cuando te aburras otro rato, digo.

Je.

Re: ¿Ha perdido las elecciones? ¡Cambie de método de reparto!

Publicado: 11 Mar 2008 23:48
por Prez
Contados están.

Edito: Ah, ¿te refieres dejando escaños vacío en función de los votos en blanco? Es fácil, ahora lo hago.

Re: ¿Ha perdido las elecciones? ¡Cambie de método de reparto!

Publicado: 12 Mar 2008 00:29
por Prez
Con D'Hondt, circunscripción única, sin cota inferior y asignando escaños vacíos a los votos en blanco.

Código: Seleccionar todo

P.S.O.E. 160 
P.P.     145
I.U.      13
CiU       11
EAJ-PNV    4
UPyD       4
ESQUERRA   4
En blanco  4
B.N.G.     3
CC-PNC     2


Proporcional puro, circunscripción única, sin cota inferior y asignando escaños vacíos a los votos en blanco.

Código: Seleccionar todo

P.S.O.E.      154 
P.P.          140
I.U.           13
CiU            11
EAJ-PNV         4
UPyD            4
ESQUERRA        4
En blanco       4
B.N.G.          3
CC-PNC          3
CA              1
NA-BAI          1
EA              1
C's             1
PACMA           1
VERDES          1
PAR             1
CHA             1
NC-CCN          1
LV-GV           1


El resto no variaría, al representar el voto en blanco menos de un 3% de los votos válidos.

Re: ¿Ha perdido las elecciones? ¡Cambie de método de reparto!

Publicado: 12 Mar 2008 21:28
por Mclaud
Eh!.

Prez!.

Has probado a hacerlo con circunscripciones autonomicas, a ver que ocurre?.

Re: ¿Ha perdido las elecciones? ¡Cambie de método de reparto!

Publicado: 13 Mar 2008 02:55
por Álvaro
(Vía Daphne@PI)

Re: ¿Ha perdido las elecciones? ¡Cambie de método de reparto!

Publicado: 30 Mar 2008 20:10
por curreta
¿Y para cuando un recuento que haga ganar al PP?

Re: ¿Ha perdido las elecciones? ¡Cambie de método de reparto!

Publicado: 31 Mar 2008 15:30
por NORNA
curreta escribió:¿Y para cuando un recuento que haga ganar al PP?

Los reyes son los padres.

Re: ¿Ha perdido las elecciones? ¡Cambie de método de reparto!

Publicado: 31 Mar 2008 16:54
por Stewie
curreta escribió:¿Y para cuando un recuento que haga ganar al PP?


Dichosos lo ohos!

En cuántico apruebe ZP la reforma electoral que introduzca el reparto animádocratico. Por cada 100km de distancia a la puerta del Sol, el voto vale la mitad. Asín, un terralliurano de Girona, que queda a unos 700km del cartelico del Tio Pepe, decidirá con su voto 1/128 de lo que decide un buen padre de phamilia del barrio Salamanca.

Re: ¿Ha perdido las elecciones? ¡Cambie de método de reparto!

Publicado: 27 Abr 2008 20:17
por Prez
Buenas de nuevo.

He modificado los datos que aparecen en el mensaje que abre este hilo, ya que, tras el recuento de los votos de los emigrantes, han variado algunas cosas ─de hecho, hasta ha habido un cambio de escaño en Barcelona─.

Los datos definitivos los he tomado de los publicados en el BOE por la Junta Electoral Central, que resumidos son, en número total de votos, los siguientes:

Código: Seleccionar todo

P.S.O.E. (+ P.S.C.)    9598787 + 1689911 = 11288698
P.P. (+ U.P.N.)        10144750 + 133059 = 10277809
I.U.                   969871
CiU                    779425
EAJ-PNV                306128
UPyD                   306078
ESQUERRA               291532
B.N.G.                 212543
CC-PNC                 174629
CA                     68679
NA-BAI                 62398
EA                     50371
C's                    46313
PACMA                  44795
VERDES                 41523
PAR                    40054
CHA                    38202
NC-CCN                 38024
LV-GV                  30840
ARALAR                 29989
BLOC-IC-EV-EE          29760
UPLI                   25454
PUM+J                  23324
LVE                    20419
PSD                    20126
PCPE                   20030
CENB                   14193
FE de las JONS         14023

Blanco                 286182

Total válidos          25734863

Nulos                  165576