You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

优化马匹亲缘校验程序的组合遍历代码,减少冗余计算

马匹亲缘关系校验程序优化方案

核心优化思路

利用Python标准库itertools.combinations生成无重复的父代组合,同时从根源规避子代作为自身父代的无效情况,替代低效的三层循环实现。

规则匹配逻辑

针对给定马匹ID列表(示例df = [10, 11, 12, 13]),严格生成符合以下规则的组合:

  • 子代ID与两个父代ID均不重复
  • 父代组合不考虑顺序,无重复实例(如(11,12)与(12,11)仅保留一个)

优化后代码示例

import itertools

def generate_valid_combinations(horse_ids):
    for offspring in horse_ids:
        # 生成排除当前子代的父代候选池
        parent_candidates = [hid for hid in horse_ids if hid != offspring]
        # 直接生成无顺序重复的2元素父代组合
        for parent_pair in itertools.combinations(parent_candidates, 2):
            # 传入校验函数处理有效组合
            search_for_parents(offspring, parent_pair[0], parent_pair[1])

# 示例调用
df = [10, 11, 12, 13]
generate_valid_combinations(df)

优化优势

  • 消除冗余计算:itertools.combinations原生生成无顺序重复的组合,无需额外去重步骤
  • 规避无效场景:通过预过滤排除子代自身,从源头避免“子代作为父代”的无效组合
  • 提升执行效率:相比三层循环,大幅减少不必要的迭代次数,马匹ID数量越大,性能提升越显著
  • 代码简洁易维护:逻辑清晰,依赖标准库,无需复杂的手动循环控制

内容的提问来源于stack exchange,提问作者Viacheslav Grachev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 18:42:43