我有三个列表,每一个都有几个可能的值。在probs = ([0.1,0.1,0.2], \
[0.7,0.9], \
[0.5,0.4,0.1])
我想测试从每个列表中选择一个元素的所有可能的组合。在这个例子中,3*2*3=18个可能的组合。最后,我想根据一些标准选择最有利的组合。这是:
^{pr2}$
我可以通过使用三个嵌套的for循环来完成我的任务(我做过)。但是,在这个代码的实际应用中,我将有一个可变数量的列表。因此,似乎解决方案是使用一个递归函数,其中有一个for循环(我也这么做了)。代码:# three rows. Test all combinations of one element from each row
# This is [value form row0, value from row1, value from row2]
# So: 3*2*3 = 18 possible combinations
probs = ([0.1,0.1,0.2], \
[0.7,0.9], \
[0.5,0.4,0.1])
meu = [] # The list that will store the best combinations in the recursion
#######################################################
def main():
choice = [] #the list that will store the best comb in the nested for
# accomplish by nested for loops
for n0 in range(