美國大選科普加寫程式碼預(找)測(樂)比(子)分

暮良文王發表於2020-11-05

大洋彼岸的大選,簡直在國內是春晚一樣的存在。

看到朋友圈有預測大選比分的,突然好奇,最終比分會是如何,出於吃瓜群眾的好奇,敲了如下程式碼,博自己一樂,也讓自己有點參與感。

 

先簡單介紹下如何算贏得大選:

選舉人制度:根據人口不同,每個州的選舉人數量也不同,人數越多,選舉人越多。

贏家通吃:以州為單位,獲得票數更多的贏家,通吃這州的所有選舉人票。

最終選舉人票多的贏得大選勝利(所以不用關注支援率,只看候選人的選舉人票數即可)。

一共538張選舉人票,誰到270誰就贏了。

 

 

 

 

 

 

我看時候是238:213,拜登領先,如果只論搖擺州(淺色)的勝負,那麼如下程式碼成立(深色的有反轉則程式碼失效)。

 

#!/usr/bin/python3
# -*- coding:utf-8 -*-
"""
@author: lms
@file: predict_votes_results.py
@time: 2020/11/4 23:29
@desc: 
"""
import itertools


def predict():
    votes = [3, 6, 10, 15, 16, 16, 20]

    votes_len = list(map(str, list(range(len(votes)))))  # 票的單個字元序列
    res = {}

    for repeat in range(len(votes) + 1):
        for i, val in enumerate(list(itertools.combinations(''.join(votes_len), repeat))):
            trump_votes = 213  # 川普初始票
            biden_votes = 238  # 拜登初始票
            v = [int(i) for i in val]
            a_vote = [votes[int(i)] for i in v]  # a組合票
            b_vote = [votes[int(i)] for i in votes_len if int(i) not in v]  # b組合票(剔除單字元中的a組合)
            # print(a_vote, b_vote)
            a_sum = sum(a_vote)  # a組合票和
            b_sum = sum(b_vote)  # b組合票和
            trump_votes += a_sum  # 川普最終得票
            biden_votes += b_sum  # 拜登最終得票
            res[trump_votes] = biden_votes  # 雙方組合去重
    for t, b in res.items():
        if t > b:
            winner = 'Trump'
        else:
            winner = 'Biden'
        print(f'【{winner}】Win!  Biden: {b} Trump:{t}')

    print(res)


if __name__ == '__main__':
    predict()

  

結果:

美國大選科普加寫程式碼預(找)測(樂)比(子)分
【Biden】Win!  Biden: 324 Trump:213
【Biden】Win!  Biden: 321 Trump:216
【Biden】Win!  Biden: 318 Trump:219
【Biden】Win!  Biden: 314 Trump:223
【Biden】Win!  Biden: 309 Trump:228
【Biden】Win!  Biden: 308 Trump:229
【Biden】Win!  Biden: 304 Trump:233
【Biden】Win!  Biden: 315 Trump:222
【Biden】Win!  Biden: 311 Trump:226
【Biden】Win!  Biden: 306 Trump:231
【Biden】Win!  Biden: 305 Trump:232
【Biden】Win!  Biden: 301 Trump:236
【Biden】Win!  Biden: 303 Trump:234
【Biden】Win!  Biden: 302 Trump:235
【Biden】Win!  Biden: 298 Trump:239
【Biden】Win!  Biden: 299 Trump:238
【Biden】Win!  Biden: 294 Trump:243
【Biden】Win!  Biden: 293 Trump:244
【Biden】Win!  Biden: 289 Trump:248
【Biden】Win!  Biden: 292 Trump:245
【Biden】Win!  Biden: 288 Trump:249
【Biden】Win!  Biden: 300 Trump:237
【Biden】Win!  Biden: 295 Trump:242
【Biden】Win!  Biden: 296 Trump:241
【Biden】Win!  Biden: 291 Trump:246
【Biden】Win!  Biden: 290 Trump:247
【Biden】Win!  Biden: 286 Trump:251
【Biden】Win!  Biden: 285 Trump:252
【Biden】Win!  Biden: 287 Trump:250
【Biden】Win!  Biden: 283 Trump:254
【Biden】Win!  Biden: 282 Trump:255
【Biden】Win!  Biden: 279 Trump:258
【Biden】Win!  Biden: 278 Trump:259
【Biden】Win!  Biden: 277 Trump:260
【Biden】Win!  Biden: 273 Trump:264
【Biden】Win!  Biden: 272 Trump:265
【Biden】Win!  Biden: 284 Trump:253
【Biden】Win!  Biden: 280 Trump:257
【Biden】Win!  Biden: 276 Trump:261
【Biden】Win!  Biden: 275 Trump:262
【Biden】Win!  Biden: 274 Trump:263
【Biden】Win!  Biden: 270 Trump:267
【Biden】Win!  Biden: 269 Trump:268
【Biden】Win!  Biden: 271 Trump:266
【Trump】Win!  Biden: 267 Trump:270
【Trump】Win!  Biden: 266 Trump:271
【Trump】Win!  Biden: 263 Trump:274
【Trump】Win!  Biden: 262 Trump:275
【Trump】Win!  Biden: 257 Trump:280
【Trump】Win!  Biden: 268 Trump:269
【Trump】Win!  Biden: 264 Trump:273
【Trump】Win!  Biden: 260 Trump:277
【Trump】Win!  Biden: 259 Trump:278
【Trump】Win!  Biden: 254 Trump:283
【Trump】Win!  Biden: 261 Trump:276
【Trump】Win!  Biden: 256 Trump:281
【Trump】Win!  Biden: 251 Trump:286
【Trump】Win!  Biden: 247 Trump:290
【Trump】Win!  Biden: 258 Trump:279
【Trump】Win!  Biden: 253 Trump:284
【Trump】Win!  Biden: 248 Trump:289
【Trump】Win!  Biden: 244 Trump:293
【Trump】Win!  Biden: 241 Trump:296
【Trump】Win!  Biden: 238 Trump:299
View Code

 

最後:

無論誰當選,反華的政策都不會放鬆,這已經是漂亮國的國策了,

所以我更希望傷敵一千自損八百的懂王再來四年,"maga" !

 

相關文章