证明两个集合的划分最小绝对值差问题
2012-05-12 11:09
281 查看
总的 解空间的大小 是
C(2n, n)/2 = 2n!/(n!*n!)/2
从2n个元素中取出n个元素的组合数目, 又由于对称性 , 所以除以2
例如: 1234 ---》 取出两个元素的组合: 12 13 14 23 24 34
分成两个集合的可能性是: (12, 34), (13, 24), (14, 23)
生成组合的程序:
n = 4
p = range(0, n)
def get(seq, k):
m = len(seq)
print m, k
if k == 0:
return [[]]
if m < k:
return []
res = []
for i in get(seq[1:], k-1):
res.append([seq[0]]+i)
res += get(seq[1:], k)
return res
r = get(p, n/2)
print r
当n=1 时候:唯一的解
当n=2时候: 可以元素按照 从小到大排序, a1 <= a2 <= a3<= a4
那么最优解决是: (a1,a4 ) (a2,a3)
证明如下:
(a1, a2) (a3, a4) 组合 的差值的绝对值最大, 因为对于任意的 2n个元素中取出n个元素,头n个元素之和最小, 最后n个元素之和最大, 差值绝对值自然最大
又有如下
(a1, a3), (a2, a4) |a1-a2+a3-a4| = |a1-a2|+|a3-a4| >= |a1+a4-(a2+a3)|
所以(a1,a4), (a2,a3) 组合解最优
证明n=3 的情况的约束条件
C(2n, n)/2 = 2n!/(n!*n!)/2
从2n个元素中取出n个元素的组合数目, 又由于对称性 , 所以除以2
例如: 1234 ---》 取出两个元素的组合: 12 13 14 23 24 34
分成两个集合的可能性是: (12, 34), (13, 24), (14, 23)
生成组合的程序:
n = 4
p = range(0, n)
def get(seq, k):
m = len(seq)
print m, k
if k == 0:
return [[]]
if m < k:
return []
res = []
for i in get(seq[1:], k-1):
res.append([seq[0]]+i)
res += get(seq[1:], k)
return res
r = get(p, n/2)
print r
当n=1 时候:唯一的解
当n=2时候: 可以元素按照 从小到大排序, a1 <= a2 <= a3<= a4
那么最优解决是: (a1,a4 ) (a2,a3)
证明如下:
(a1, a2) (a3, a4) 组合 的差值的绝对值最大, 因为对于任意的 2n个元素中取出n个元素,头n个元素之和最小, 最后n个元素之和最大, 差值绝对值自然最大
又有如下
(a1, a3), (a2, a4) |a1-a2+a3-a4| = |a1-a2|+|a3-a4| >= |a1+a4-(a2+a3)|
所以(a1,a4), (a2,a3) 组合解最优
证明n=3 的情况的约束条件
相关文章推荐
- 证明两个集合的划分最小绝对值差问题
- 一个数字划分成两个之差最小的数组问题
- 图论, 1.各种方案的最短路径,最小生成树,拓扑排序, 2.隐式图的搜索,N-皇后问题,数独,马踏棋盘,中文划分,回文划分.
- 【转】关于int范围中负数最小值的绝对值比整数最大值大初学C,问题源自:为什么C中的int类型(16位)的下溢下限为-32768而上溢上限却是32767。 首先说吧,32767很容易理解,32767
- nyoj+贪心过河问题+借助于最轻的两个让最胖的过去花费最小。
- 将一个数组拆分成两个数组,两个数组的差的绝对值最小
- 集合划分问题
- 集合划分问题--贝尔数
- 整数集合近似均匀划分的问题
- 有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数。
- 实验证明在一片Norflash上划分两个TrueFFS分区的误区
- 集合划分问题算法探讨
- Network Saboteur 简单dfs(), 计算怎样分两个集合 最优问题 用flag[] 数组标记
- POJ3469 Dual Core CPU 最小割求解最小费用划分集合
- 有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数。
- A题之绝对值最小问题
- 算法:讲一个list拆分为两个list,并使两个list和的差的绝对值最小
- 集合的划分问题(二)
- 求解两个数组中总体平均的差的绝对值和最小
- 4000 集合的划分问题(动态规划DP)