栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python 求列表的所有 k 阶子列

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python 求列表的所有 k 阶子列

求所有 k 阶子列

这儿的 k 阶子列 和线性代数里边矩阵的 k 阶子式 差不多,子列个数也和组合的公式相符,所以我就不啰嗦了。

import itertools

input_list = [1, 2, 4, 3, 5]
n = len(input_list)
k = 3
for i in range(1, n + 1):
    i_subsequence = itertools.combinations(input_list, i)
    if i == k:
        k_subsequence = list(i_subsequence)
        print(k_subsequence)
[(1, 2, 4), (1, 2, 3), (1, 2, 5), (1, 4, 3), (1, 4, 5), (1, 3, 5), (2, 4, 3), (2, 4, 5), (2, 3, 5), (4, 3, 5)]
求最具竞争力的 k 阶子列

所谓最具竞争力,就是在相同位置上,对应的数更小,则更具竞争力。比如 (1, 2, 3) 比 (1, 2, 4) 更具竞争力。

import itertools

input_list = [1, 2, 4, 3, 5]
n = len(input_list)
k = 3
k_subsequence = list(itertools.combinations(input_list, k))
k_subsequence.sort()
print(k_subsequence[0])
(1, 2, 3)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/467617.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号