# Script (c) Copyright 2000 TheGreenPapers.com # Richard E. Berg-Andersson, Research and Commentary # Tony Roza, Webmaster # URL: http://www.TheGreenPapers.com # ******************************************************************** # declare 2000 raw census values for each state $StatePopulation{"Alabama"}=4461130; $StatePopulation{"Alaska"}=628933; $StatePopulation{"Arizona"}=5140683; $StatePopulation{"Arkansas"}=2679733; $StatePopulation{"California"}=33930798; $StatePopulation{"Colorado"}=4311882; $StatePopulation{"Connecticut"}=3409535; $StatePopulation{"Delaware"}=785068; $StatePopulation{"Florida"}=16028890; $StatePopulation{"Georgia"}=8206975; $StatePopulation{"Hawaii"}=1216642; $StatePopulation{"Idaho"}=1297274; $StatePopulation{"Illinois"}=12439042; $StatePopulation{"Indiana"}=6090782; $StatePopulation{"Iowa"}=2931923; $StatePopulation{"Kansas"}=2693824; $StatePopulation{"Kentucky"}=4049431; $StatePopulation{"Louisiana"}=4480271; $StatePopulation{"Maine"}=1277731; $StatePopulation{"Maryland"}=5307886; $StatePopulation{"Massachusetts"}=6355568; $StatePopulation{"Michigan"}=9955829; $StatePopulation{"Minnesota"}=4925670; $StatePopulation{"Mississippi"}=2852927; $StatePopulation{"Missouri"}=5606260; $StatePopulation{"Montana"}=905316; $StatePopulation{"Nebraska"}=1715369; $StatePopulation{"Nevada"}=2002032; $StatePopulation{"New Hampshire"}=1238415; $StatePopulation{"New Jersey"}=8424354; $StatePopulation{"New Mexico"}=1823821; $StatePopulation{"New York"}=19004973; $StatePopulation{"North Carolina"}=8067673; $StatePopulation{"North Dakota"}=643756; $StatePopulation{"Ohio"}=11374540; $StatePopulation{"Oklahoma"}=3458819; $StatePopulation{"Oregon"}=3428543; $StatePopulation{"Pennsylvania"}=12300670; $StatePopulation{"Rhode Island"}=1049662; $StatePopulation{"South Carolina"}=4025061; $StatePopulation{"South Dakota"}=756874; $StatePopulation{"Tennessee"}=5700037; $StatePopulation{"Texas"}=20903994; $StatePopulation{"Utah"}=2236714; $StatePopulation{"Vermont"}=609890; $StatePopulation{"Virginia"}=7100702; $StatePopulation{"Washington"}=5908684; $StatePopulation{"West Virginia"}=1813077; $StatePopulation{"Wisconsin"}=5371210; $StatePopulation{"Wyoming"}=495304; 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 Seats each state received.\n\n"; foreach $State (@ListOfStates) { print "$State - $StatesSeatNumber{$State} seats\n"; }