あまりにもバカバカしい、恣意的な記事を共同がアップしていたので、馬鹿にしてみる。
【47】衆院選は民主305議席? 衆院選シミュレーション
http://www.47news.jp/CN/201007/CN2010071201000837.html
なんでも、比例の票数で算出したそうで。まあ確かに、比例区の票数だけを見りゃ、今回民主圧勝だけどね。なんか意味あるんすか。
そう思ったので、俺は今日、共同通信の記者を超える事にした。
まずは、時事通信の選挙区毎票数をゲット。
【時事】選挙区毎票数
http://www.jiji.com/jc/c?g=pol_30&k=2010071200775
そして、その表に比例区の表を足す…。それが、以下。
それを、自作のドント式を用いた議席割り振り計算プログラムで算出する。プログラム言語はExcelVBAを使用。プログラムは後述するが、よって、シートのマクロに貼り付ければ誰でも確認可能。ドント式による計算方法は、ぐぐってくれ。
そして、その結果が、以下だ。
与党側は、民主+国民=179議席なので、過半数に届かない。ちなみに自公連立でも184なので届いていない。240議席確保か…。厳しいもんだなぁ。民主党はもっとボロボロになるべき。
まあ、この計算意味ないけどな。あくまで全得票数を比例区の計算方法で議席割り振りしただけだから。
【47】衆院選は民主305議席? 衆院選シミュレーション
http://www.47news.jp/CN/201007/CN2010071201000837.html
なんでも、比例の票数で算出したそうで。まあ確かに、比例区の票数だけを見りゃ、今回民主圧勝だけどね。なんか意味あるんすか。
そう思ったので、俺は今日、共同通信の記者を超える事にした。
まずは、時事通信の選挙区毎票数をゲット。
【時事】選挙区毎票数
http://www.jiji.com/jc/c?g=pol_30&k=2010071200775
そして、その表に比例区の表を足す…。それが、以下。
それを、自作のドント式を用いた議席割り振り計算プログラムで算出する。プログラム言語はExcelVBAを使用。プログラムは後述するが、よって、シートのマクロに貼り付ければ誰でも確認可能。ドント式による計算方法は、ぐぐってくれ。
そして、その結果が、以下だ。
民主党 175
自民党 142
みんなの党 59
公明党 42
共産党 33
社民党 12
たちあがれ日本 6
新党改革 7
国民新党 4
自民党 142
みんなの党 59
公明党 42
共産党 33
社民党 12
たちあがれ日本 6
新党改革 7
国民新党 4
与党側は、民主+国民=179議席なので、過半数に届かない。ちなみに自公連立でも184なので届いていない。240議席確保か…。厳しいもんだなぁ。民主党はもっとボロボロになるべき。
まあ、この計算意味ないけどな。あくまで全得票数を比例区の計算方法で議席割り振りしただけだから。
Option Base 0
Sub test()
'得票数
Dim dTokuhyo(9) As Double
Dim dBuf(9) As Double
'議席数
Dim 民主 As Integer
Dim 自民 As Integer
Dim みん As Integer
Dim 公明 As Integer
Dim 共産 As Integer
Dim 社民 As Integer
Dim たち As Integer
Dim 新改 As Integer
Dim 国民 As Integer
dTokuhyo(0) = 41206137
dTokuhyo(1) = 33567753
dTokuhyo(2) = 13921039
dTokuhyo(3) = 9905249
dTokuhyo(4) = 7819954
dTokuhyo(5) = 2845419
dTokuhyo(6) = 1560682
dTokuhyo(7) = 1797825
dTokuhyo(8) = 1167589
Dim i As Integer
Dim j As Integer
Dim iMax As Integer
Dim dMax As Double
For i = 0 To 8
dBuf(i) = dTokuhyo(i)
Next i
For j = 1 To 480
dMax = 0
iMax = 0
For i = 0 To 8
If dMax <dBuf(i) Then
iMax = i
End If
Next i
If iMax = 0 Then
民主 = 民主 + 1
dBuf(iMax) = Round(dTokuhyo(iMax) / (民主 + 1))
ElseIf iMax = 1 Then
自民 = 自民 + 1
dBuf(iMax) = Round(dTokuhyo(iMax) / (自民 + 1))
ElseIf iMax = 2 Then
みん = みん + 1
dBuf(iMax) = Round(dTokuhyo(iMax) / (みん + 1))
ElseIf iMax = 3 Then
公明 = 公明 + 1
dBuf(iMax) = Round(dTokuhyo(iMax) / (公明 + 1))
ElseIf iMax = 4 Then
共産 = 共産 + 1
dBuf(iMax) = Round(dTokuhyo(iMax) / (共産 + 1))
ElseIf iMax = 5 Then
社民 = 社民 + 1
dBuf(iMax) = Round(dTokuhyo(iMax) / (社民 + 1))
ElseIf iMax = 6 Then
たち = たち + 1
dBuf(iMax) = Round(dTokuhyo(iMax) / (たち + 1))
ElseIf iMax = 7 Then
新改 = 新改 + 1
dBuf(iMax) = Round(dTokuhyo(iMax) / (新改 + 1))
ElseIf iMax = 8 Then
国民 = 国民 + 1
dBuf(iMax) = Round(dTokuhyo(iMax) / (国民 + 1))
End If
Next j
MsgBox "民主 " & CStr(民主) & vbCrLf & _
"自民 " & CStr(自民) & vbCrLf & _
"みん " & CStr(みん) & vbCrLf & _
"公明 " & CStr(公明) & vbCrLf & _
"共産 " & CStr(共産) & vbCrLf & _
"社民 " & CStr(社民) & vbCrLf & _
"たち " & CStr(たち) & vbCrLf & _
"新改 " & CStr(新改) & vbCrLf & _
"国民 " & CStr(国民), vbOKOnly + vbInformation, ""
End Sub
Sub test()
'得票数
Dim dTokuhyo(9) As Double
Dim dBuf(9) As Double
'議席数
Dim 民主 As Integer
Dim 自民 As Integer
Dim みん As Integer
Dim 公明 As Integer
Dim 共産 As Integer
Dim 社民 As Integer
Dim たち As Integer
Dim 新改 As Integer
Dim 国民 As Integer
dTokuhyo(0) = 41206137
dTokuhyo(1) = 33567753
dTokuhyo(2) = 13921039
dTokuhyo(3) = 9905249
dTokuhyo(4) = 7819954
dTokuhyo(5) = 2845419
dTokuhyo(6) = 1560682
dTokuhyo(7) = 1797825
dTokuhyo(8) = 1167589
Dim i As Integer
Dim j As Integer
Dim iMax As Integer
Dim dMax As Double
For i = 0 To 8
dBuf(i) = dTokuhyo(i)
Next i
For j = 1 To 480
dMax = 0
iMax = 0
For i = 0 To 8
If dMax <dBuf(i) Then
iMax = i
End If
Next i
If iMax = 0 Then
民主 = 民主 + 1
dBuf(iMax) = Round(dTokuhyo(iMax) / (民主 + 1))
ElseIf iMax = 1 Then
自民 = 自民 + 1
dBuf(iMax) = Round(dTokuhyo(iMax) / (自民 + 1))
ElseIf iMax = 2 Then
みん = みん + 1
dBuf(iMax) = Round(dTokuhyo(iMax) / (みん + 1))
ElseIf iMax = 3 Then
公明 = 公明 + 1
dBuf(iMax) = Round(dTokuhyo(iMax) / (公明 + 1))
ElseIf iMax = 4 Then
共産 = 共産 + 1
dBuf(iMax) = Round(dTokuhyo(iMax) / (共産 + 1))
ElseIf iMax = 5 Then
社民 = 社民 + 1
dBuf(iMax) = Round(dTokuhyo(iMax) / (社民 + 1))
ElseIf iMax = 6 Then
たち = たち + 1
dBuf(iMax) = Round(dTokuhyo(iMax) / (たち + 1))
ElseIf iMax = 7 Then
新改 = 新改 + 1
dBuf(iMax) = Round(dTokuhyo(iMax) / (新改 + 1))
ElseIf iMax = 8 Then
国民 = 国民 + 1
dBuf(iMax) = Round(dTokuhyo(iMax) / (国民 + 1))
End If
Next j
MsgBox "民主 " & CStr(民主) & vbCrLf & _
"自民 " & CStr(自民) & vbCrLf & _
"みん " & CStr(みん) & vbCrLf & _
"公明 " & CStr(公明) & vbCrLf & _
"共産 " & CStr(共産) & vbCrLf & _
"社民 " & CStr(社民) & vbCrLf & _
"たち " & CStr(たち) & vbCrLf & _
"新改 " & CStr(新改) & vbCrLf & _
"国民 " & CStr(国民), vbOKOnly + vbInformation, ""
End Sub