我有10種貨幣我正在分析,我想以10%的增量找到這些貨幣的所有可能的組合。例如:是否有更高效的方式以10%的增量找到10個項目的所有組合?
10% of A, 20% of B...etc
約束如下:
總有總結爲100% 可以有各貨幣的0%和100%之間的任何量,所以100%的組合A是有效
目前我的代碼看起來是這樣的:
for element in itertools.product(*curr_arr):
if round(sum(element),1)==1:
comb_input.append(list(element))
哪裏curr_arr本質上是一個數組如下:
[0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0]
這種方法非常慢,因爲它會查看所有組合,然後提取合計爲一的組合。有沒有更有效的方法來加快我的代碼?
如果可能,請使用百分比(10,20,30,...)而不是浮點數(0.1,0.2,0.3,...)。這些浮點數並不總和爲1.0 .:'0.3 + 0.3 + 0.3 + 0.1'返回'0.99999999999999989' – eumiro 2012-03-29 07:50:57