这儿的 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)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)