# Script (c) Copyright 2009 TheGreenPapers.com # Richard E. Berg-Andersson, Research and Commentary # Tony Roza, Webmaster # URL: http://www.TheGreenPapers.com # ******************************************************************** # declare 2010 estimated census values (from 1 July 2009) for each state $StatePopulation{"Alabama"}=4708708; $StatePopulation{"Alaska"}=698473; $StatePopulation{"Arizona"}=6595778; $StatePopulation{"Arkansas"}=2889450; $StatePopulation{"California"}=36961664; $StatePopulation{"Colorado"}=5024748; $StatePopulation{"Connecticut"}=3518288; $StatePopulation{"Delaware"}=885122; $StatePopulation{"Florida"}=18537969; $StatePopulation{"Georgia"}=9829211; $StatePopulation{"Hawaii"}=1295178; $StatePopulation{"Idaho"}=1545801; $StatePopulation{"Illinois"}=12910409; $StatePopulation{"Indiana"}=6423113; $StatePopulation{"Iowa"}=3007856; $StatePopulation{"Kansas"}=2818747; $StatePopulation{"Kentucky"}=4314113; $StatePopulation{"Louisiana"}=4492076; $StatePopulation{"Maine"}=1318301; $StatePopulation{"Maryland"}=5699478; $StatePopulation{"Massachusetts"}=6593587; $StatePopulation{"Michigan"}=9969727; $StatePopulation{"Minnesota"}=5266214; $StatePopulation{"Mississippi"}=2951996; $StatePopulation{"Missouri"}=5987580; $StatePopulation{"Montana"}=974989; $StatePopulation{"Nebraska"}=1796619; $StatePopulation{"Nevada"}=2643085; $StatePopulation{"New Hampshire"}=1324575; $StatePopulation{"New Jersey"}=8707739; $StatePopulation{"New Mexico"}=2009671; $StatePopulation{"New York"}=19541453; $StatePopulation{"North Carolina"}=9380884; $StatePopulation{"North Dakota"}=646844; $StatePopulation{"Ohio"}=11542645; $StatePopulation{"Oklahoma"}=3687050; $StatePopulation{"Oregon"}=3825657; $StatePopulation{"Pennsylvania"}=12604767; $StatePopulation{"Rhode Island"}=1053209; $StatePopulation{"South Carolina"}=4561242; $StatePopulation{"South Dakota"}=812383; $StatePopulation{"Tennessee"}=6296254; $StatePopulation{"Texas"}=24782302; $StatePopulation{"Utah"}=2784572; $StatePopulation{"Vermont"}=621760; $StatePopulation{"Virginia"}=7882590; $StatePopulation{"Washington"}=6664195; $StatePopulation{"West Virginia"}=1819777; $StatePopulation{"Wisconsin"}=5654774; $StatePopulation{"Wyoming"}=544270; print "The formula used to determine the number of House Seats for each State\n"; print "is the Method of Equal Proportions. Each State is automatically assigned\n"; print "one seat to start with (as each State MUST have at least one seat in\n"; print "Congress). First, assign seats 1 thru 50 of 435.\n\n"; $iSeat=1; # seat number 1 to 435 @ListOfStates=sort(keys(%StatePopulation)); foreach $State (@ListOfStates) { print "$iSeat: $State, Population $StatePopulation{$State}\n"; $TotalPopulation += $StatePopulation{$State}; $StatesSeatNumber{$State}=1; $iSeat++; } print "\nTotal Population = $TotalPopulation\n"; print "\nEqual Proportions are used to determine which states shall receive\n"; print "seats 51 thru 435. Divide each State's population by the square root\n"; print "of n(n-1) where n equals the number of potential seats for a given\n"; print "State. The result is called the Priority Value.\n"; print "\nPriority Value = Population ÷ SQRT( ( N×(N-1) ) );\n"; print "where N = potential seats (2 to 53) for the state\n"; # Compute the Priority Value for seats 2 thru 60 for each state. for($iPotentialSeat=2; $iPotentialSeat <= 60; $iPotentialSeat++) { # for potential seats 2 thru 60, compute square root ( n * (n-1) ) $fRoot = sqrt( $iPotentialSeat*($iPotentialSeat-1) ); # sqrt( n * (n-1) ) foreach $State (@ListOfStates) { $value = sprintf( "%12.3f", $StatePopulation{$State} / $fRoot ); $PriorityValue{ $value } = $State; } } # sort priority values in decending order @ListOfPriority=reverse(sort(keys(%PriorityValue))); print "\nAssign seats 51 to 435 from those states with the largest priority values.\n\n"; while( $iSeat <= 445 ) { $Priority = @ListOfPriority[$iSeat-51]; if( $iSeat==436 ) { print "\nJust for grins show where additional seats would have gone.\n\n" } $State=$PriorityValue{$Priority}; $SeatNumber = ++$StatesSeatNumber{$State}; print "$iSeat: $State Seat $SeatNumber, PV=" . int($Priority) . "\n"; if( $iSeat > 435 ) { $StatesSeatNumber{$State}-- }; # fix up! $iSeat++; } print "\nShow how many House Seats each state received.\n\n"; foreach $State (@ListOfStates) { print "$State - $StatesSeatNumber{$State} seats\n"; }