# Script (c) Copyright 2010 TheGreenPapers.com # Richard E. Berg-Andersson, Research and Commentary # Tony Roza, Webmaster # URL: http://www.TheGreenPapers.com # ******************************************************************** # declare 2010 census values (from 1 April 2010) for each state $StatePopulation{"Alabama"}=4802982; $StatePopulation{"Alaska"}=721523; $StatePopulation{"Arizona"}=6412700; $StatePopulation{"Arkansas"}=2926229; $StatePopulation{"California"}=37341989; $StatePopulation{"Colorado"}=5044930; $StatePopulation{"Connecticut"}=3581628; $StatePopulation{"Delaware"}=900877; $StatePopulation{"Florida"}=18900773; $StatePopulation{"Georgia"}=9727566; $StatePopulation{"Hawaii"}=1366862; $StatePopulation{"Idaho"}=1573499; $StatePopulation{"Illinois"}=12864380; $StatePopulation{"Indiana"}=6501582; $StatePopulation{"Iowa"}=3053787; $StatePopulation{"Kansas"}=2863813; $StatePopulation{"Kentucky"}=4350606; $StatePopulation{"Louisiana"}=4553962; $StatePopulation{"Maine"}=1333074; $StatePopulation{"Maryland"}=5789929; $StatePopulation{"Massachusetts"}=6559644; $StatePopulation{"Michigan"}=9911626; $StatePopulation{"Minnesota"}=5314879; $StatePopulation{"Mississippi"}=2978240; $StatePopulation{"Missouri"}=6011478; $StatePopulation{"Montana"}=994416; $StatePopulation{"Nebraska"}=1831825; $StatePopulation{"Nevada"}=2709432; $StatePopulation{"New Hampshire"}=1321445; $StatePopulation{"New Jersey"}=8807501; $StatePopulation{"New Mexico"}=2067273; $StatePopulation{"New York"}=19421055; $StatePopulation{"North Carolina"}=9565781; $StatePopulation{"North Dakota"}=675905; $StatePopulation{"Ohio"}=11568495; $StatePopulation{"Oklahoma"}=3764882; $StatePopulation{"Oregon"}=3848606; $StatePopulation{"Pennsylvania"}=12734905; $StatePopulation{"Rhode Island"}=1055247; $StatePopulation{"South Carolina"}=4645975; $StatePopulation{"South Dakota"}=819761; $StatePopulation{"Tennessee"}=6375431; $StatePopulation{"Texas"}=25268418; $StatePopulation{"Utah"}=2770765; $StatePopulation{"Vermont"}=630337; $StatePopulation{"Virginia"}=8037736; $StatePopulation{"Washington"}=6753369; $StatePopulation{"West Virginia"}=1859815; $StatePopulation{"Wisconsin"}=5698230; $StatePopulation{"Wyoming"}=568300; 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"; }