如何生成一个完全有k个部分的数的分区,其中每个部分都有最小值和最大值?在
例如,如果要选择21的所有分区,其中6个部分的最小部分值为3,而最大的部分值为6,则应获得以下分区:
[3, 3, 3, 3, 3, 6]
[3, 3, 3, 3, 4, 5]
[3, 3, 3, 4, 4, 4]
我有以下升序分区代码,由http://jeromekelleher.net/generating-integer-partitions.html提供
^{pr2}$我写了一个简单的函数,只从上面的函数中得到我想要的分区:
def eligible_partitions(list_of_partitions, min_value, max_value, k):
l = []
for x in list_of_partitions:
if min(x) >= min_value and max(x) <= max_value and len(x) == k:
l.append(x)
return l
我只想生成满足指定条件的那些分区,而不必生成和循环特定值的所有分区。在
以下是一种方法:
这会产生:
^{pr2}$相关问题 更多 >
编程相关推荐