Python 拆分数组中的元素,使新数组具有子集和为零问题的2个子集解
我有一个与子集和问题不同的问题,最好用一个例子来说明 给定保证和等于零的实数N项数组Python 拆分数组中的元素,使新数组具有子集和为零问题的2个子集解,python,dynamic-programming,subset-sum,Python,Dynamic Programming,Subset Sum,我有一个与子集和问题不同的问题,最好用一个例子来说明 给定保证和等于零的实数N项数组 Example: [13.6, 21, 49, -40.8, -22.4, -20.4] 找到一种方法,将数组中的最后一项拆分为两个数字,这两个数字相加为原始的最后一项,在解决子集和问题时,有两个或多个子集的和正好为零。对于本例,解决方案如下所示: [13.6, 21, 49, -40.8, -22.4, -(20.4-x), -x] 设x为8.2 [13.6, 21, 49, -40.8, -22.4,
Example: [13.6, 21, 49, -40.8, -22.4, -20.4]
找到一种方法,将数组中的最后一项拆分为两个数字,这两个数字相加为原始的最后一项,在解决子集和问题时,有两个或多个子集的和正好为零。对于本例,解决方案如下所示:
[13.6, 21, 49, -40.8, -22.4, -(20.4-x), -x]
设x为8.2
[13.6, 21, 49, -40.8, -22.4, -12.2, -8.2]
那么和为零的两个子集是
[13.6, 21, -22.4, -12.2] and [49, -40.8, -8.2]
问题是什么是找到所有可能的x的有效方法,这些x将在之后启用有效的子集分割。一个更普遍的问题是找到所有可能的方法将最后一个条目拆分为m个不同的条目,这样就有m个有效子集的总和为零
我被卡住了,不知道如何继续。感谢您给予的任何帮助或建议!此外,如果可能的话,任何用Python实现的解决方案或提示都将不胜感激