【发布时间】:2018-07-12 07:18:48
【问题描述】:
所以我无法解决以下问题:
给定一个数组大小,为了方便问题大小=20
它用零填充如下 arr = [0]*20 ==> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
我们有几个固定的样本大小,例如 4,3,2
SampleA=4,SampleB=3,SampleC=2
我需要了解如何分配列表的排列/变化。
我可以将每个样本放在不同的位置/索引
例如,sampleA= 4 我可以把它放在 0:3 或 1:4... 15:19 的索引中。 (如您所见,有相当多的可能性)
一旦变得更加拥挤,事情就会变得复杂,例如:
3+2+3 +4
[0, x, x, x, 0, 0, x x, 0, x, x, x, 0, 0, 0, 0, x, x,x, x]
我基本上需要的是找到所有分配样本的可能性,
我得到一本字典: key = 索引的样本大小,以及 value=多次重复。
上例:{3:2,2:1,4:1}
我希望该函数返回一个索引列表!=0
对于这个例子: [0, x, x, x, 0, 0, x x, 0, x, x, x, 0, 0, 0, 0, x, x,x, x]
函数将返回: list_ind = [0,5,6,9,13,14,15,16]
【问题讨论】:
-
检查你的例子 - 这很奇怪......是否允许将两个样本设置在一起而不分离 0?展示你的尝试,直到大规模投票。
-
我添加了一个解决方案。基本上,您可以将样本放在一起,例如:[0,0,0,x,x,x,x,y,y,y,y,0,0,0,z,z,z,0,w, w,w,w,0]
标签: python arrays algorithm itertools