问题简单如下:
A组数据n个Ai (i=1~n, n<200),
B组数据m个Bj (j=1~m, m<200),
假设他们每组内部可以分拆成S个子组, 一个子组必定在另一个组内存在一个子组两者之和相等,而且这样的一对子组不能继续分拆为更细的子组对。
举例如下:
A组7个数: 12.31|35.20|22.03|45.25|3.12|44.44|10.00|3.45
B组5个数: 47.51|10.01|12.02|35.68|12.69|57.89
他们可以分成如下相等的子组:
| A子组: | B子组: |
| 12.31|35.20 | 47.51 |
| 22.03 | 10.01|12.02 |
| 45.25|3.12 | 35.68|12.69 |
| 44.44|10.00|3.45 | 57.89 |
每对子组都相等且是最细分的。
在数据少的时候排列组合去比较和相等还可以在短时间内找到解,但当任意一组数据稍微大点(比如大于28),组合的结果就庞大了。
期望寻求一种优化的计算方法。
我遇到的比较极端的情形是A组就2个数据A1和A2,而B组有100多个数据,其实就是将B拆分成两组,其和分别等A1和A2。但就这样的问题都难住我了。
大家给点意见。