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

浙公网安备 33010602011771号