政党0,1,2,3がそれぞれ1000,650,200,150票を得た。10人当選させるには,各政党から何人ずつ選べばよいか。
r = 10 # 当選数
n = a = np.array([1000, 650, 200, 150]) # 得票数
for i in range(2, r + 1):
a = np.append(a, n / i)
a
この上位 r
人を選べばよい。
o = np.argsort(-a)
np.bincount((o % 4)[:r])
なお,タイがない(a[o][r-1]
と a[o][r]
が等しくない)ことも確認しなければならない。
Last modified: