zoukankan      html  css  js  c++  java
  • 美国大选科普加写代码预(找)测(乐)比(子)分

    大洋彼岸的大选,简直在国内是春晚一样的存在。

    看到朋友圈有预测大选比分的,突然好奇,最终比分会是如何,出于吃瓜群众的好奇,敲了如下代码,博自己一乐,也让自己有点参与感。

    先简单介绍下如何算赢得大选:

    选举人制度:根据人口不同,每个州的选举人数量也不同,人数越多,选举人越多。

    赢家通吃:以州为单位,获得票数更多的赢家,通吃这州的所有选举人票。

    最终选举人票多的赢得大选胜利(所以不用关注支持率,只看候选人的选举人票数即可)。

    一共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" !

  • 相关阅读:
    Q:简单实现URL只能页面跳转,禁止直接访问
    Q:elementUI中tree组件动态展开
    一个切图仔的 JS 笔记
    一个切图仔的HTML笔记
    一个切图仔的 CSS 笔记
    GnuPG使用笔记
    SQL Svr 2012 Enterprise/Always-on节点连接超时导致节点重启——case分享
    网卡配置文件备份在原目录下引起网络配置异常
    python培训
    service脚本的写法
  • 原文地址:https://www.cnblogs.com/liangmingshen/p/13929601.html
Copyright © 2011-2022 走看看