目的
从一系列事物中选择一种,对其进行处理、判断,然后接着再次从那些剩下的事物中选一种,对其进行处理、判断,处理时计算一个目标值,假设一些列事物有n个,则会进行n!次运算,共n!种组合,每种组合的尽头计算最优值。
def findBest(argsOut):
# 每次遍历一遍,外部传参决定遍历事物内容多少
for i in things:
# 计算目标函数及其他操作
deal
# 计算当前组合下的下层的各种组合,使用得到的最优值
findBest(argsNow)
# 得到下层所有组合的最优值后处理计算
deal
# 根据结果更新最优值
update
# 返回本层找到的最优组合的最优值
return best