转自点击打开链接
http://mathworld.wolfram.com/Euler-MascheroniConstant.html
调和级数S=1+1/2+1/3+……是发散的,证明如下:
由于 ln(1+1/n)<1/n (n=1,2,3,…)
于是调和级数的前n项部分和满足
Sn = 1+1/2+1/3+…+1/n
> ln(1+1)+ln(1+1/2)+ln(1+1/3)+…+ln(1+1/n)
= ln2+ln(3/2)+ln(4/3)+…+ln[(n+1)/n]
= ln[2*3/2*4/3*…*(n+1)/n]=ln(n+1)
lim Sn(n→∞)≥lim ln(n+1)(n→∞)=+∞
所以Sn的极限不存在,调和级数发散。
但数列 Sn=1+1/2+1/3+…+1/n-ln(n) 极限存在(当n→∞时),因为
Sn = 1+1/2+1/3+…+1/n-ln(n)
> ln(1+1)+ln(1+1/2)+ln(1+1/3)+…+ln(1+1/n)-ln(n)
= ln(n+1)-ln(n)=ln(1+1/n)
lim Sn(n→∞)≥lim ln(1+1/n)(n→∞)=0,因此Sn有下界;
S(n)-S(n+1) = ln(n+1)-ln(n)-1/(n+1)
= ln(1+1/n)-1/(n+1) > ln(1+1/n)-1/n > 0
所以Sn单调递减。由单调有界数列必有极限,知Sn有极限,定义这个极限为γ,这个数就叫作欧拉常数,近似值约为0.57721566490153286060651209...,目前还不知道它是有理数还是无理数。
在微积分学中,欧拉常数γ有许多应用,如求某些数列的极限,某些收敛数项级数的和等。例如求lim[1/(n+1)+1/(n+2)+…+1/(n+n)](n→∞):
lim[1/(n+1)+1/(n+2)+…+1/(n+n)]
= lim[1+1/2+1/3+…+1/(n+n)-ln(n+n)] - lim[1+1/2+1/3+…+1/n-ln(n)]
+ lim[ln(n+n)-ln(n)] = γ-γ+ln2 = ln2
ACM计算调和级数。
#include <cstdio>
#include <cmath>
#define MAXN 100000
double a[MAXN];
int main() {
int n;
int i;
double ans;
a[0] = 0;
for (i=1; i<MAXN; ++i)
a[i] = a[i-1]+1.0/i;
while (scanf("%d", &n) != EOF) {
if (n < MAXN) {
ans = a[n];
} else {
ans = log(n*1.0)+0.57721566490153286060651209;
}
printf("%.4lf\n", ans);
}
return 0;
}