大洋彼岸的大選,簡直在國內是春晚一樣的存在。
看到朋友圈有預測大選比分的,突然好奇,最終比分會是如何,出於吃瓜群眾的好奇,敲了如下程式碼,博自己一樂,也讓自己有點參與感。
先簡單介紹下如何算贏得大選:
選舉人制度:根據人口不同,每個州的選舉人數量也不同,人數越多,選舉人越多。
贏家通吃:以州為單位,獲得票數更多的贏家,通吃這州的所有選舉人票。
最終選舉人票多的贏得大選勝利(所以不用關注支援率,只看候選人的選舉人票數即可)。
一共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" !