Python 求列表的所有 k 阶子列

Python 求列表的所有 k 阶子列,第1张

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)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5443109.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存