Richard Damon
4/12/2015 2:14:00 AM
On 4/9/15 3:44 PM, Stefan Weiss wrote:
> On 2015-04-08 19:46, Rahul Reddy wrote:
>> In the second step the result is split into the integer portion and
>> the rest. The integer parts are attributed to the respective party as
>> seats. The remaining seats are allocated to parties in the order of the
>> size of the fractional portions.
>
> I would reject this algorithm as incomplete.
>
> Example input: 10 seats, votes: 50 A, 35 B, 15 C
>
> Does C get one or two seats?
> What should the program do if it can't find an unambiguous distribution?
>
> (Amusingly, Denis's solution would solve this specific example by simply
> adding a seat.)
>
> - stefan
>
There is a fundamental problem with ANY vote system of how to handle
ties. The simplest case would be 1 seat, two parties, equal votes. The
next level would be 2 seats, 3 parties, or 3 seat, 2 parties with equal
votes. Fundamentally, such a case (due to the symmetry) can't (from what
I see) have a solution other than going to chance or a new vote, or
maybe have some other body "vote" to break the tie. With typical number
of votes in a real election, the odds of having a true tie gets small,
and if the number of seat is large having a lottery choose might not be
unreasonable (perhaps add a extra tie breaking rule biasing cases like
the above one way or the other, but these couldn't handle the 50/25/25
case due to symmetry, that would need to go to another stage (lottery or
re-vote, etc).
Sometimes adding a seat is a viable solution, but properly if you add
(or remove) a seat, you should redo the whole calculation and I suspect
it may be possible that there are cases when you do this the extra seat
goes elsewhere. You also run into the issue that normally the number of
seats is set by a more fundamental law (and may be constrained by the
actually number of physical seats).