算法中常见的求和问题,数学公式
求和公式(Summation Formulas)
1. 等差数列求和(Arithmetic Series)
公式:
S
n
=
n
2
(
a
1
+
a
n
)
S_n = \frac{n}{2} (a_1 + a_n)
Sn=2n(a1+an)
其中:
- S n S_n Sn 是前 n n n项的和。
- a 1 a_1 a1 是首项, a n a_n an是第 n n n项。
- 适用于 每一项与前一项的差(公差 d d d)相同 的数列。
例子:
计算
1
+
3
+
5
+
⋯
+
99
1 + 3 + 5 + \dots + 99
1+3+5+⋯+99(前50个奇数之和):
S
50
=
50
2
(
1
+
99
)
=
2500
S_{50} = \frac{50}{2} (1 + 99) = 2500
S50=250(1+99)=2500
2. 等比数列求和(Geometric Series)
公式:
S
n
=
a
1
⋅
1
−
r
n
1
−
r
(
r
≠
1
)
S_n = a_1 \cdot \frac{1 - r^n}{1 - r} \quad (r \neq 1)
Sn=a1⋅1−r1−rn(r=1)
其中:
- a 1 a_1 a1 是首项, r r r 是公比。
- 适用于 每一项与前一项的比相同 的数列。
例子:
计算
1
+
2
+
4
+
8
+
⋯
+
1024
1 + 2 + 4 + 8 + \dots + 1024
1+2+4+8+⋯+1024(公比
r
=
2
r=2
r=2):
S
11
=
1
⋅
1
−
2
11
1
−
2
=
2047
S_{11} = 1 \cdot \frac{1 - 2^{11}}{1 - 2} = 2047
S11=1⋅1−21−211=2047
3. 平方和公式(Sum of Squares)
公式:
∑
k
=
1
n
k
2
=
n
(
n
+
1
)
(
2
n
+
1
)
6
\sum_{k=1}^n k^2 = \frac{n(n+1)(2n+1)}{6}
k=1∑nk2=6n(n+1)(2n+1)
例子:
计算
1
2
+
2
2
+
3
2
+
⋯
+
1
0
2
1^2 + 2^2 + 3^2 + \dots + 10^2
12+22+32+⋯+102:
∑
k
=
1
10
k
2
=
10
×
11
×
21
6
=
385
\sum_{k=1}^{10} k^2 = \frac{10 \times 11 \times 21}{6} = 385
k=1∑10k2=610×11×21=385
4. 立方和公式(Sum of Cubes)
公式:
∑
k
=
1
n
k
3
=
(
n
(
n
+
1
)
2
)
2
\sum_{k=1}^n k^3 = \left( \frac{n(n+1)}{2} \right)^2
k=1∑nk3=(2n(n+1))2$
例子:
计算
1
3
+
2
3
+
3
3
+
⋯
+
5
3
1^3 + 2^3 + 3^3 + \dots + 5^3
13+23+33+⋯+53:
∑
k
=
1
5
k
3
=
(
5
×
6
2
)
2
=
225
\sum_{k=1}^5 k^3 = \left( \frac{5 \times 6}{2} \right)^2 = 225
k=1∑5k3=(25×6)2=225
5. 二项式系数求和(Binomial Coefficients)
公式:
∑
k
=
0
n
(
n
k
)
=
2
n
\sum_{k=0}^n \binom{n}{k} = 2^n
k=0∑n(kn)=2n
解释:
- ( n k ) \binom{n}{k} (kn) 是组合数,表示从 n n n个元素中选 k k k 个的方式数。
- 这个公式说明 所有子集的总数 是 2 n 2^n 2n(每个元素有“选”或“不选”两种情况)。
6. 调和级数(Harmonic Series)
公式:
H
n
=
∑
k
=
1
n
1
k
≈
ln
(
n
)
+
γ
H_n = \sum_{k=1}^n \frac{1}{k} \approx \ln(n) + \gamma
Hn=k=1∑nk1≈ln(n)+γ
其中:
- γ ≈ 0.5772 \gamma \approx 0.5772 γ≈0.5772 是欧拉-马歇罗尼常数。
- 适用于 概率、算法分析(如快速排序的平均时间复杂度)。
7. 容斥原理求和(Inclusion-Exclusion Principle)
公式:
∣
A
∪
B
∪
C
∣
=
∣
A
∣
+
∣
B
∣
+
∣
C
∣
−
∣
A
∩
B
∣
−
∣
A
∩
C
∣
−
∣
B
∩
C
∣
+
∣
A
∩
B
∩
C
∣
|A \cup B \cup C| = |A| + |B| + |C| - |A \cap B| - |A \cap C| - |B \cap C| + |A \cap B \cap C|
∣A∪B∪C∣=∣A∣+∣B∣+∣C∣−∣A∩B∣−∣A∩C∣−∣B∩C∣+∣A∩B∩C∣
应用:
- 计算至少满足一个条件的情况(如“至少包含3和7的数字字符串”)。
- 避免重复计数。
8. 泰勒级数展开(Taylor Series)
公式:
e
x
=
∑
n
=
0
∞
x
n
n
!
e^x = \sum_{n=0}^\infty \frac{x^n}{n!}
ex=n=0∑∞n!xn
应用:
- 用于函数逼近(如计算 e 0.5 e^{0.5} e0.5的近似值)。
总结
求和类型 | 公式 | 适用场景 |
---|---|---|
等差数列 | S n = n 2 ( a 1 + a n ) S_n = \frac{n}{2} (a_1 + a_n) Sn=2n(a1+an) | 线性增长序列 |
等比数列 | S n = a 1 1 − r n 1 − r S_n = a_1 \frac{1 - r^n}{1 - r} Sn=a11−r1−rn | 指数增长序列 |
平方和 | ∑ k 2 = n ( n + 1 ) ( 2 n + 1 ) 6 \sum k^2 = \frac{n(n+1)(2n+1)}{6} ∑k2=6n(n+1)(2n+1) | 平方数求和 |
立方和 | ∑ k 3 = ( n ( n + 1 ) 2 ) 2 \sum k^3 = \left( \frac{n(n+1)}{2} \right)^2 ∑k3=(2n(n+1))2 | 立方数求和 |
二项式系数 | ∑ ( n k ) = 2 n \sum \binom{n}{k} = 2^n ∑(kn)=2n | 组合数学 |
调和级数 | H n ≈ ln ( n ) + γ H_n \approx \ln(n) + \gamma Hn≈ln(n)+γ | 概率、算法分析 |
容斥原理 | ∣ A ∪ B ∣ = ∣ A ∣ + ∣ B ∣ − ∣ A ∩ B ∣ \vert A \cup B\vert = \vert A \vert + \vert B\vert - \vert A \cap B \vert ∣A∪B∣=∣A∣+∣B∣−∣A∩B∣ | 避免重复计数 |
泰勒级数 | e x = ∑ x n n ! e^x = \sum \frac{x^n}{n!} ex=∑n!xn | 函数近似计算 |