chiark / gitweb /
compute-scottish-stv: slight improvements
[appendix-a6.git] / compute-scottish-stv
index 528cc5f..4760407 100755 (executable)
@@ -207,8 +207,8 @@ sub countballots () {
 sub computequota () {
     my $totalvalid = 0/1;
     $totalvalid += $_->{Total} foreach values %cands;
-    $quota = floor($totalvalid / (1 + $seats));
-    prf "quota %s\n", sv $quota;
+    $quota = floor($totalvalid / (1 + $seats) + 1);
+    prf "total valid %s quota %s\n", (sv $totalvalid), (sv $quota);
 }
 
 sub total_history_cmp () {
@@ -334,6 +334,8 @@ for (;;) {
            next;
        }
 
+       last if $seats_remain == 1; # don't bother doing more transfers
+
        my $B = $c->{Total};
        my %tspr;
 
@@ -354,7 +356,7 @@ for (;;) {
                die unless $tspr{"@$previously"} == $xfervalue;
            } else {
                $tspr{"@$previously"} = $xfervalue;
-               prf "transfer value of ballots %s: %s\n",
+               prf "transfer value of ballots %20s: %s\n",
                    "@$previously", sv $xfervalue;
            }
        }