美国大选科普加写代码预(找)测(乐)比(子)分
作者:互联网
大洋彼岸的大选,简直在国内是春晚一样的存在。
看到朋友圈有预测大选比分的,突然好奇,最终比分会是如何,出于吃瓜群众的好奇,敲了如下代码,博自己一乐,也让自己有点参与感。
先简单介绍下如何算赢得大选:
选举人制度:根据人口不同,每个州的选举人数量也不同,人数越多,选举人越多。
赢家通吃:以州为单位,获得票数更多的赢家,通吃这州的所有选举人票。
最终选举人票多的赢得大选胜利(所以不用关注支持率,只看候选人的选举人票数即可)。
一共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:299View Code
最后:
无论谁当选,反华的政策都不会放松,这已经是漂亮国的国策了,
所以我更希望伤敌一千自损八百的懂王再来四年,"maga" !
标签:votes,Trump,Win,代码,Biden,选举人,sum,大选,科普 来源: https://www.cnblogs.com/liangmingshen/p/13929601.html