如何从两个UFC格斗选手列表生成所有可能的胜负预测组合
UFC赛事胜负预测全组合生成方案
需求说明
以下是本周六参赛的UFC格斗选手对阵名单,需要生成所有可能的胜负预测组合:每场对阵可任选一名选手作为获胜方,最终生成的组合必然包含与现实赛果完全一致的结果。
对阵列表
1. Jan VS Glover 2. Yan VS Sandhagen 3. Islam VS Hooker 4. Li VS Khamzat 5. Volkov VS Tybura 6. Ankalaev VS Oezdemir
组合示例
- 第1组组合:(Jan, Yan, Islam, Li, Volkov, Ankalaev)
- 第2组组合:(Jan, Yan, Islam, Khamzat, Tybura, Ankalaev)
- 其他组合按每场二选一的规则依次枚举即可
选手分组规则
每场对阵的两名选手分别对应list_a和list_b的同索引位置:
list_a = ['Jan', 'Yan', 'Islam', 'Li', 'Volkov', 'Ankalaev'] list_b = ['Glover', 'Sandhagen', 'Hooker', 'Khamzat', 'Tybura', 'Oezdemir']
实现方法
6场比赛每场有2种胜负可能,总计2^6=64种组合,可通过笛卡尔积快速生成全部结果,Python实现代码如下:
from itertools import product list_a = ['Jan', 'Yan', 'Islam', 'Li', 'Volkov', 'Ankalaev'] list_b = ['Glover', 'Sandhagen', 'Hooker', 'Khamzat', 'Tybura', 'Oezdemir'] # 构造每场比赛的胜者可选列表 match_choices = list(zip(list_a, list_b)) # 生成所有胜负组合 all_predictions = list(product(*match_choices)) # 格式化输出所有组合 for serial_num, pred in enumerate(all_predictions, 1): print(f"第{serial_num}组组合:{pred}")
内容的提问来源于stack exchange,提问作者Haidar Yahfoufi
相关产品推荐
相关产品推荐

