Comment 63101

By Zot (anonymous) | Posted May 05, 2011 at 11:18:55 in reply to Comment 63088

I assume you were referring to my suggestion "say what". The short answer is yes, I would accept those Baldesaro and green results. Here is why: Remember that the lottery vote method just decides who gets elected. Votes within the house of commons i.e. the elected members voting on legislation, would continue to be decided on the basis of a simple majority the way they are now.

So, in the case of Baldesaro having 5% support within his riding his chances of being elected would indeed be 1 in 20. But in the case of the Green Party having 5% support in each riding and a member running in every riding it's chances of getting the 155 seats needed to form a majority would be vastly smaller than 5%.
This result might not be obvious to those unfamiliar with probability theory.

I wrote a little Monte Carlo simulation of 1 million elections given these assumptions.

In those one million simulated elections the smallest number of the 308 possible seats in the house won by the Greens was 1, and the largest was 35. The average was 15.3974. This agrees well with the 15.4 seat average you would expect if the greens got exactly 5% of the vote.

Increasing the number of elections held in the simulation to 10 million increased the number of Green seats in their best election to 43

Here is the source code for the simulation, written in the BASIC programming language:

'mote carlo simulation of minority party,
'"Greens", winning a majority using lottery voting
'assumes greens have a candidate in every riding
'and that percentage popular support is the same in every riding
'in this case 5%
'written in "FREEBasic"

'define variables:
Dim seats_in_the_house As Integer = 308
Dim needed_for_majority As Integer = 155
Dim green_percentage_support As Double = 5.0
Dim number_of_elections As Integer = 1000000

Dim As Integer greens_elected, election_count, seat_count
Dim As Integer max_greens, total_greens, green_majorities
Dim As Integer min_greens = seats_in_the_house

'Initialize random number generator with mersene twister algorithm
Randomize ,3

'Run the simulation
For election_count = 1 To number_of_elections ' do each election
greens_elected = 0
For seat_count = 1 To seats_in_the_house ' do a single seat
If (green_percentage_support / 100.0) >= rnd Then
greens_elected += 1
EndIf
Next
total_greens += greens_elected
If greens_elected >= needed_for_majority Then
green_majorities += 1
EndIf
If greens_elected > max_greens Then
max_greens = greens_elected
EndIf
If greens_elected < min_greens Then
min_greens = greens_elected
EndIf
Next
' print results:
Print "Elections in simulation:", number_of_elections
Print "Minimum Greens elected:", min_greens
Print "Maximum Greens elected:", max_greens
Print "Average Greens elected:", total_greens / number_of_elections
Print "Green Majorities:", green_majorities

'finish the program
sleep
End