Pagina 1 di 1
Dubbi su metodo D'Hondt
Inviato: mer giu 10, 2009 9:57 am
da margottid
Buongiorno,
Eleonline mi da una ripartizione di seggi:
http://elezioni.comune.lugo.ra.it/clien ... onsiglieri
diversa da quella indicata dalla Prefettura:
http://www.prefettura.it/FILES/docs/120 ... e_lugo.pdf
Secondo voi, chi ha ragione?
Il metodo D'Hondt va applicato su TUTTE le liste (indipendentemente dalla coalizione) oppure va applicato tante volte per quante sono le coalizioni?
E, se è vero quest'ultimo caso (come sembra risultare dal PDF della Prefettura), come si calcola il numero di seggi da assegnare alle varie coalizioni?
Grazie mille,
Daniele
Inviato: mer giu 10, 2009 12:37 pm
da roby
In genere la prefettura non sbaglia, anche se la stessa magistratura si e' espressa in questo tema con sentenze contraddittorie. La funzione di assegnazione dei seggi e' frutto di uno studio della legge e delle sentenze (per quanto possibile, come detto prima) emesse nel corso di questi anni.
Bug a parte, sempre possibili, va detto che questa è la prima elezione comunale in cui la funzione viene effettivamente messa sotto "torchio". Appena il sito della prefettura che mi hai indicato mi permetterà di scaricare il documento farò i raffronti e ti farò sapere cosa ne penso.
Roberto
Inviato: mer giu 10, 2009 1:06 pm
da roby
Secondo me va applicato prima sulla coalizione e una volta assegnato il numero di seggi al raggruppamento si fa la suddivisione per le liste collegate. Devo controllare il comportamento della funzione. Poi ti faccio sapere.
Roberto
Inviato: mer giu 10, 2009 3:59 pm
da roby
Il problema non e' nella modalità di calcolo, sia la prefettura sia la nostra funzione calcolano prima l'assegnazione per gruppo. E' invece nel fatto che facendo il calcolo sui numeri:
(10848>=((19030*40)/100)) and 10848<((19030*60)/100))
dove 10848 e' il risultato del sindaco eletto
19030 i voti validi
si ha l'assegnazione del premio di maggioranza con la suddivisione 18 a 12
Facendo invece il calcolo direttamente sui seggi ottenuti applicando il metodo d'hondt si ha il risultato di 19 a 11.
Certo il premio di maggioranza non puo' penalizzare il vincitore quindi è giusto il risultato della prefettura. Implementerò quanto prima una patch.
Colgo l'occasione per ringraziarti del report e invito anche gli altri comuni a riportare eventuali problemi. Penso sia il modo migliore per perfezionare il programma e renderlo sempre piu' affidabile.
Roberto
Inviato: mer giu 10, 2009 4:13 pm
da roby
Ecco la patch, dalla riga 479 del file client/modules/Elezioni/consiglieri.php:
#e se nessun altro gruppo ha superato il 50% assegna il premio di maggioranza
Aggiungere:
#e se nessun altro gruppo ha superato il 50% e nessuno ha ottenuto piu' del 60% dei seggi, assegna il premio di maggioranza
$consmin=$numcons;
$gruppomin=calcoloseggi($groups,$consmin,0);
$nopremio=1;
foreach ($gruppomin as $key=>$val) {if (($num_cons*60/100)<$val) $nopremio=0;}
if (($groups[$gruppo]>=(($validi*$supminpremio)/100) or ! $primoturno) and $groups[$gruppo]<(($validi*$suppremio)/100) and !$premio and $nopremio) $premio=1;
Inviato: mer giu 10, 2009 4:16 pm
da roby
non ho precisato che l'ultima riga sostituisce la successiva, cioe' questa:
if (($groups[$gruppo]>=(($validi*$supminpremio)/100) or ! $primoturno) and $groups[$gruppo]<(($validi*$suppremio)/100) and !$premio) $premio=1;
che quindi va eliminata.
Roberto
Inviato: mer giu 10, 2009 4:20 pm
da roby
Altra precisazione, NON DA POCO. La correzione specificata è per la versione 2 di eleonline. Ora preparo quella per la versione 1 e la pubblico.
Inviato: mer giu 10, 2009 4:24 pm
da roby
Sempre dalla riga 479 del file client/modules/Elezioni/consiglieri.php:
#e se nessun altro gruppo ha superato il 50% assegna il premio di maggioranza
Aggiungere:
#e se nessun altro gruppo ha superato il 50% e nessuno ha ottenuto piu' del 60% dei seggi, assegna il premio di maggioranza
$consmin=$numcons;
$gruppomin=calcoloseggi($groups,$consmin,0);
$nopremio=1;
foreach ($gruppomin as $key=>$val) {if (($num_cons*60/100)<$val) $nopremio=0;}
if (($groups[$gruppo]>=(($validi*$SUPMINPREMIO)/100) or ! $primoturno) and $groups[$gruppo]<(($validi*$SUPPREMIO)/100) and !$premio and $nopremio) $premio=1;
Si è uguale, la sola differenza sta nell'uppercase delle due variabili
Inviato: mer giu 10, 2009 8:45 pm
da roby
Scusate ho postato un errore, la riga del foreach:
foreach ($gruppomin as $key=>$val) {if (($num_cons*60/100)<$val) $nopremio=0;}
non e' corretta, deve essere così:
foreach ($gruppomin as $key=>$val) {if (($numcons*60/100)<$val) $nopremio=0;}
Inviato: gio giu 11, 2009 3:29 pm
da margottid
Funziona, grazie mille!
Daniele
Inviato: gio giu 11, 2009 3:40 pm
da roby
Il mio comune invece me l'ha fatta oscurare perche' un gruppo di liste ha superato il 50 % del totale dei voti di lista mentre il candidato sindaco si è fermato al 49,12%. Per questo la funzione di calcolo non assegna alla seconda coalizione il premio di maggioranza neanche se vincera' il ballottaggio. Secondo loro il 50% dei voti validi di riferimento per il gruppo di liste va calcolato sul totale dei voti validi per il sindaco (che sono di piu' e quindi portano la percentuale del raggruppamento di liste che ha preso piu' voti sotto la soglia del 50%).
Voi che ne pensate?
Roberto
Inviato: gio giu 11, 2009 5:04 pm
da margottid
Il Ministero dell'Interno calcola le percentuali per i candidati Sindaci sul totale dei voti validi per il Sindaco, e le percentuali per ogni lista sul totale dei voti validi assegnati alle liste:
http://elezioni.interno.it/amministrati ... 700375.htm
Secondo me è giusto così, perché nei Comuni oltre 15.000 abitanti è come se si votasse due volte: per il Sindaco e per la Lista (ed è infatti previsto anche il voto disgiunto).
Se si vota solo per il Sindaco, senza tracciare il segno sulla lista, non si dà alcun voto valido per le liste.
Quando si parla di liste, i voti validi dovrebbero essere quelli effettivamente dati alle liste.
D'altra parte, se la matematica non è un'opinione, la somma delle
percentuali deve dare sempre
cento...!
Daniele
Inviato: gio giu 11, 2009 5:45 pm
da roby
Grazie in particolare per il link. Mette fine a ogni discussione.
Roberto