Adams方式

都道府県ごとの議員定数を求めるために,「総定数×各都道府県の人口÷総人口」の小数点以下を切り上げて求めるのがAdams方式である。ただし,この合計が総定数を超える場合は,超えなくなるまで総人口を増やす。

Rで書くとこんな具合か:

都道府県 = c("北海道", "青森県", "岩手県", "宮城県", "秋田県",
    "山形県", "福島県", "茨城県", "栃木県", "群馬県", "埼玉県", "千葉県",
    "東京都", "神奈川県", "新潟県", "富山県", "石川県", "福井県",
    "山梨県", "長野県", "岐阜県", "静岡県", "愛知県", "三重県", "滋賀県",
    "京都府", "大阪府", "兵庫県", "奈良県", "和歌山県", "鳥取県",
    "島根県", "岡山県", "広島県", "山口県", "徳島県", "香川県", "愛媛県",
    "高知県", "福岡県", "佐賀県", "長崎県", "熊本県", "大分県", "宮崎県",
    "鹿児島県", "沖縄県")

# 2010年国勢調査
# 人口 = c(5506419, 1373339, 1330147, 2348165, 1085997, 1168924,
#     2029064, 2969770, 2007683, 2008068, 7194556, 6216289, 13159388,
#     9048331, 2374450, 1093247, 1169788, 806314, 863075, 2152449, 2080773,
#     3765007, 7410719, 1854724, 1410777, 2636092, 8865245, 5588133,
#     1400728, 1002198, 588667, 717397, 1945276, 2860750, 1451338, 785491,
#     995842, 1431493, 764456, 5071968, 849788, 1426779, 1817426, 1196529,
#     1135233, 1706242, 1392818)

# 2015年国勢調査
人口 = c(5383579, 1308649, 1279814, 2334215, 1022839, 1122957, 1913606,
    2917857, 1974671, 1973476, 7261271, 6224027, 13513734, 9127323,
    2305098, 1066883, 1154343, 787099, 835165, 2099759, 2032533, 3701181,
    7484094, 1815827, 1413184, 2610140, 8838908, 5536989, 1365008, 963850,
    573648, 694188, 1922181, 2844963, 1405007, 756063, 976756, 1385840,
    728461, 5102871, 833245, 1377780, 1786969, 1166729, 1104377, 1648752,
    1434138)

x = sum(人口) # 総人口

総定数 = 289  # 現行295だが6減したとして

while (sum(ceiling(総定数 * 人口 / x)) > 総定数) x = x + 1

結果 = data.frame(都道府県, 新定数=ceiling(総定数 * 人口 / x))
結果

結果は次の通り:

   都道府県 新定数
1    北海道     12
2    青森県      3
3    岩手県      3
4    宮城県      5
5    秋田県      3
6    山形県      3
7    福島県      4
8    茨城県      7
9    栃木県      5
10   群馬県      5
11   埼玉県     16
12   千葉県     14
13   東京都     29
14 神奈川県     20
15   新潟県      5
16   富山県      3
17   石川県      3
18   福井県      2
19   山梨県      2
20   長野県      5
21   岐阜県      5
22   静岡県      8
23   愛知県     16
24   三重県      4
25   滋賀県      3
26   京都府      6
27   大阪府     19
28   兵庫県     12
29   奈良県      3
30 和歌山県      3
31   鳥取県      2
32   島根県      2
33   岡山県      5
34   広島県      6
35   山口県      3
36   徳島県      2
37   香川県      3
38   愛媛県      3
39   高知県      2
40   福岡県     11
41   佐賀県      2
42   長崎県      3
43   熊本県      4
44   大分県      3
45   宮崎県      3
46 鹿児島県      4
47   沖縄県      3

ついでに:

現行定数 = c(12, 4, 4, 6, 3, 3, 5, 7, 5, 5, 15, 13, 25, 18, 6, 3, 3,
    2, 2, 5, 5, 8, 15, 5, 4, 6, 19, 12, 4, 3, 2, 2, 5, 7, 4, 2, 3, 4, 2,
    11, 2, 4, 5, 3, 3, 5, 4)
結果$現行定数 = 現行定数
結果$差 = 結果$新定数 - 結果$現行定数
結果[結果$差 != 0, ]

と打つと,変更点だけが列挙できる。

   都道府県 新定数 現行定数 差
2    青森県      3        4 -1
3    岩手県      3        4 -1
4    宮城県      5        6 -1
7    福島県      4        5 -1
11   埼玉県     16       15  1
12   千葉県     14       13  1
13   東京都     29       25  4
14 神奈川県     20       18  2
15   新潟県      5        6 -1
23   愛知県     16       15  1
24   三重県      4        5 -1
25   滋賀県      3        4 -1
29   奈良県      3        4 -1
34   広島県      6        7 -1
35   山口県      3        4 -1
38   愛媛県      3        4 -1
42   長崎県      3        4 -1
43   熊本県      4        5 -1
46 鹿児島県      4        5 -1
47   沖縄県      3        4 -1

9増15減である。