给定一个数字集合 S = S= S={ a 1 , a 2 , a 3 , a 4 , . . . , a n a_{1},a_{2},a_{3},a_{4},...,a_{n} a1,a2,a3,a4,...,an};
定义“集合的和”为:集合中所有元素累加的结果。
定义“集合的乘积”为:集合中所有元素累乘的结果。
问题一、求集合的所有子集的“集合的和”之和
n个元素的非空子集 2 n − 1 2 ^ {n}-1 2n−1个,
集合中每个元素在出现在数目一定的一个子集的概率都是相同的。
换言之,对于所有元素,它在这 2 n − 1 2^n-1 2n−1个集合中出现次数(设为 n u m num num)是相同的。
举个例子。元素个数为一的子集共有n个,每个元素出现一次,每个元素出现的概率是1/n。
元素个数为2的子集共有
C
(
n
,
2
)
=
n
∗
(
n
−
1
)
/
2
C(n,2)=n *(n-1)/2
C(n,2)=n∗(n−1)/2,元素个数共有
2
∗
C
(
n
,
2
)
=
n
∗
(
n
−
1
)
2*C(n,2)=n *(n-1)
2∗C(n,2)=n∗(n−1),每个元素出现的概率相同,所以每个元素应该出现了
2
∗
C
(
n
,
2
)
/
n
=
n
−
1
2*C(n,2) /n=n-1
2∗C(n,2)/n=n−1次,且分布在不同集合中。
所以结论就是
n u m = ∑ i = 1 i = n i × C ( n , i ) / n num=\sum_{i=1}^{i=n} i×C(n,i)/n num=∑i=1i=ni×C(n,i)/n = ∑ i = 0 i = n − 1 C ( n , i ) = 2 n − 1 \sum _{i=0}^{i=n-1} C(n,i)=2^{n-1} ∑i=0i=n−1C(n,i)=2n−1
一个更简单的证明方法, n u m = ( 2 n − 1 ) − ( 2 n − 1 − 1 ) num=(2^n-1)-(2^{n-1}-1) num=(2n−1)−(2n−1−1)----把这个元素拿出来,用其他元素可以构成 2 n − 1 − 1 2^{n-1}-1 2n−1−1个集合,然后用总的集合数减去未包含该元素的集合数,即可得到该元素在所有子集的出现次数。
所以问题一的答案即为: s u m S ∗ 2 n − 1 = ( a 1 + a 2 + a 3 + . . . + a n ) ∗ 2 n − 1 sumS*2^{n-1}=(a_{1}+a_{2}+a_{3}+...+a_{n})*2^{n-1} sumS∗2n−1=(a1+a2+a3+...+an)∗2n−1
问题二、求集合中所有子集的“集合的乘积”之和
定义“集合的乘积”为集合中所有元素的乘积,那么如何求一个集合的所有子集的乘积之和呢?
先来看一个有趣的展开式
(
x
+
1
)
∗
(
y
+
1
)
=
x
y
+
x
+
y
+
1
(x+1)*(y+1)=xy+x+y+1
(x+1)∗(y+1)=xy+x+y+1
接着来尝试一下
(
x
+
1
)
∗
(
y
+
1
)
∗
(
z
+
1
)
=
(
x
y
+
x
+
y
+
1
)
∗
(
z
+
1
)
=
x
y
z
+
x
y
+
x
z
+
x
+
y
z
+
y
+
z
+
1
(x+1)*(y+1)*(z+1)=(xy+x+y+1)*(z+1)=xyz+xy+xz+x+yz+y+z+1
(x+1)∗(y+1)∗(z+1)=(xy+x+y+1)∗(z+1)=xyz+xy+xz+x+yz+y+z+1
整理一下,不难发现规律,
所以问题二的答案即为: ( a 1 + 1 ) ∗ ( a 2 + 1 ) ∗ . . . ∗ ( a n + 1 ) − 1 (a_{1}+1)*(a_{2}+1) * ...* (a_{n}+1)-1 (a1+1)∗(a2+1)∗...∗(an+1)−1
那么具体怎样推到而来的呢?
对于一个集合个数为n的集合{
a
1
,
a
2
,
a
3
.
.
.
,
a
n
a_{1},a_{2},a_{3}...,a_{n}
a1,a2,a3...,an},现在往里面加一个元素
a
n
+
1
a_ {n+1}
an+1,我们考虑会增加什么子集。
其实就是
a
n
+
1
a_ {n+1}
an+1加入到原来的集合的所有子集(包括空集)所构成的集合。由于是乘积之和,显然我们可以提公因子,即
a
n
+
1
a_{n+1}
an+1。
例如对于集合{a,b,c},它的子集有{
a
,
b
,
c
a,b,c
a,b,c},{
a
,
b
a,b
a,b},{
a
,
c
a,c
a,c},{
b
,
c
b,c
b,c},{
a
a
a},{
b
b
b},{
c
c
c},{ },其子集的乘积之和
S
1
=
a
b
c
+
a
b
+
a
c
+
b
c
+
a
+
b
+
c
S_{1}=abc+ab+ac+bc+a+b+c
S1=abc+ab+ac+bc+a+b+c;
如果往集合{a,b,c}中加入一个元素d,那么会增加的子集有{
a
,
b
,
c
,
d
a,b,c,d
a,b,c,d},{
a
,
b
,
d
a,b,d
a,b,d},{
a
,
c
,
d
a,c,d
a,c,d},{
b
,
c
,
d
b,c,d
b,c,d},{
a
,
d
a,d
a,d},{
b
,
d
b,d
b,d},{
c
,
d
c,d
c,d},{
d
d
d},这些子集的乘积之和
S
2
=
a
b
c
d
+
a
b
d
+
a
c
d
+
b
c
d
+
a
d
+
b
d
+
c
d
+
d
=
d
(
a
b
c
+
a
b
+
a
c
+
b
c
+
a
+
b
+
c
)
+
d
=
d
(
S
1
+
1
)
S_{2}=abcd+abd+acd+bcd+ad+bd+cd+d=d(abc+ab+ac+bc+a+b+c)+d=d(S1+1)
S2=abcd+abd+acd+bcd+ad+bd+cd+d=d(abc+ab+ac+bc+a+b+c)+d=d(S1+1)。
所以集合{ a , b , c , d a,b,c,d a,b,c,d}的所有子集的乘积之和 S 3 = S 1 + S 2 = S 1 + d ( S 1 + 1 ) = ( S 1 + 1 ) ( d + 1 ) − 1 S3=S1+S2=S1+d(S1+1)=(S1+1)(d+1)-1 S3=S1+S2=S1+d(S1+1)=(S1+1)(d+1)−1。
类推可得,集合{
a
,
b
,
c
,
d
,
e
a,b,c,d,e
a,b,c,d,e}的所有子集的乘积之和
S
4
=
(
S
3
+
1
)
(
e
+
1
)
−
1
=
(
S
1
+
1
)
(
d
+
1
)
(
e
+
1
)
−
1
S_{4}=(S_{3}+1)(e+1)-1=(S1+1)(d+1)(e+1)-1
S4=(S3+1)(e+1)−1=(S1+1)(d+1)(e+1)−1
其实 S 1 + 1 = ( a + 1 ) ( b + 1 ) ( c + 1 ) S_{1}+1=(a+1)(b+1)(c+1) S1+1=(a+1)(b+1)(c+1),所以 S 4 = ( a + 1 ) ( b + 1 ) ( c + 1 ) ( d + 1 ) ( e + 1 ) − 1 S_{4}=(a+1)(b+1)(c+1)(d+1)(e+1)-1 S4=(a+1)(b+1)(c+1)(d+1)(e+1)−1。归纳可得上诉结论。