精华内容
下载资源
问答
  • 欧拉常数

    千次阅读 2013-05-07 17:39:43
    欧拉常数(Euler-Mascheroni constant ) 欧拉-马歇罗尼常数(Euler-Mascheroni constant)是一个主要应用于数论的数学常数。它的定义是调和级数与自然对数的差值的极限。 学过高等数学的人都知道,调和...
    欧拉常数(Euler-Mascheroni constant )                                  

    欧拉-马歇罗尼常数(Euler-Mascheroni constant)是一个主要应用于数论的数学常数。它的定义是调和级数与自然对数的差值的极限。
    学过高等数学的人都知道,调和级数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的极限不存在,调和级数发散。
    但极限S=lim[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有下界
    Sn-S(n+1)=1+1/2+1/3+…+1/n-ln(n)-[1+1/2+1/3+…+1/(n+1)-ln(n+1)]
    =ln(n+1)-ln(n)-1/(n+1)=ln(1+1/n)-1/(n+1)
    将ln(1+1/n)展开,取其前两项,由于舍弃的项之和大于0,故
    ln(1+1/n)-1/(n+1)>1/n-1/(2n^2)-1/(n+1)=1/(n^2+n)-1/(2n^2)>0
    即ln(1+1/n)-1/(n+1)>0,所以Sn单调递减。由单调有界数列极限定理,可知Sn必有极限,因此
    S=lim[1+1/2+1/3+…+1/n-ln(n)](n→∞)存在。
    于是设这个数为γ,这个数就叫作欧拉常数,他的近似值约为0.57721566490153286060651209,目前还不知道它是有理数还是无理数
    微积分学中,欧拉常数γ有许多应用,如求某些数列极限,某些收敛数项级数的和等。例如求lim[1/(n+1)+1/(n+2)+…+1/(n+n)](n→∞),可以这样做:
    lim[1/(n+1)+1/(n+2)+…+1/(n+n)](n→∞)=lim[1+1/2+1/3+…+1/(n+n)-ln(n+n)](n→∞)-lim[1+1/2+1/3+…+1/n-ln(n)](n→∞)+lim[ln(n+n)-ln(n)](n→∞)=γ-γ+ln2=ln2
    ——————————————————————————————————————————————————————————————
    这是一个求S=1+1/2+1/3+1/4+1/5+1/6+...1/n的程序:
    #include <iostream>
    #include <cmath>
    using namespace std;
    
    int main()
    {
       long long n;
       double S;                             //设S=1+1/2+1/3+1/4+1/5+1/6+...1/n
       cin>>n;
       S=0.57721566490153286060651209+log(n);//C++里面用log(n),pascal里面用ln(n),e的对数
       cout<<S<<endl;
       return 0;
    }
    

     
    展开全文
  • 欧拉常数约为 0.57721566490153286060651209。 欧拉常数最先由瑞士数学家莱昂哈德·欧拉(Leonhard Euler)在1735年发表的文章 De Progressionibus harmonicus observationes 中定义。欧拉曾经使用C作为它的符号,并...
  • 主要介绍欧拉常数。 当我们需要计算调和级数,范围特别大的时候,可以使用它。 它的定义是,即一坨调和级数减去一个ln。 欧拉发现这是个常数,大概在0.57721 56649 01532 86060 左右。 所以调和级数就是欧拉常数...

    传送门

    主要介绍欧拉常数。

    当我们需要计算调和级数,范围特别大的时候,可以使用它。

    它的定义是\sum_{i=1}^n\frac{1}{i}-ln(n),即一坨调和级数减去一个ln。

    欧拉发现这是个常数,大概在0.57721 56649 01532 86060 左右。

    所以调和级数就是欧拉常数+ln(n)。但这个公式对于小的n不够精确。小的直接打表。大的才用。

    计算欧拉常数根据精度要求取个大一点的就行了。

    #include<bits/stdc++.h>
    using namespace std;
    #define in read()
    int in{
    	int cnt=0,f=1;char ch=0;
    	while(!isdigit(ch)){
    		ch=getchar();if(ch=='-')f=-1;
    	}
    	while(isdigit(ch)){
    		cnt=cnt*10+ch-48;
    		ch=getchar();
    	}return cnt*f;
    }
    int n;
    double ans,cnt;
    signed main(){
    	cin>>n;--n;
    	if(n==0){
    		cout<<"0.00000";return 0;
    	}
    	if(n<=1000000){
    		for(int i=1;i<=n;i++)ans=ans+1.0/i;ans++;
    	}else{
    		for(int i=1;i<=10000000;i++)cnt+=1.0/i;
    		ans=1.0+cnt-log(10000000)+log(n);
    	}printf("%.5lf",ans);
    	return 0;
    }

     

    展开全文
  • 欧拉常数 Euler's constant

    千次阅读 2014-08-13 21:25:09
    欧拉常数是调和级数和自然对数的差值的极限。

    欧拉常数是调和级数和自然对数的差值的极限。


    欧拉常数通常用γ标记,它的近似值约为0.57721566

    展开全文
  • 链接:... 1+1/2+1/3... = log(1+n) + r(欧拉常数),需要大精度时减去1.0/(2*n); r =0.57721566490153286060651209 #include<iostream> #include<algorithm> #include&...

    链接:https://cn.vjudge.net/contest/276155#problem/I

    1+1/2+1/3... = log(1+n) + r(欧拉常数),需要大精度时减去1.0/(2*n);

    r = 0.57721566490153286060651209

    #include<iostream>
    #include<algorithm>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    using namespace std;
    const double r = 0.57721566490153286060651209;
    
    int t,n;
    double a[10005];
    
    int main(){
    	a[1] = 1.0;
    		for(int i = 2;i<=10000;++i){
    			a[i] = a[i-1] + 1.0/i;
    			//cout<<a[i]<<endl;
    		}
    	scanf("%d",&t);
    	int id = 0;
    	while(t--){
    		scanf("%d",&n);
    		printf("Case %d: ",++id);
    		if(n <= 10000)
    	printf("%.10lf\n",a[n]);
    		else{
    			printf("%.10lf\n",log(1+n) + r - 1.0/(2*n));
    		}
    	}
    	return 0;
    }

     

    展开全文
  • 数据比较小时直接算,数据比较大时用公式1+1/2+...+1/n=inn+C+1/(2*n) ,C是欧拉常数0.5772156649 刚开始用的这个1+1/2+...+1/n=in(n+1)+C,结果一直wa。。。。 #include<map> #include<set> ...
  • 题意:求f(n)=1/1+1/2+1/3+1/4…1/n(1...调和级数到现在还没有完全正确的公式,但是有个近似的公式:f(n)=ln(n)+C+1/(2∗n)f(n)=ln(n)+C+1/(2*n)f(n)=ln(n)+C+1/(2∗n)n越大越精准,c是欧拉常数 那么我们在n小的时候暴
  • 思路:做之前不知都调和级数不知道欧拉常数没问题,肯定能先想到暴力打标,打完发现数组内存太大,那么问题就是怎么能让内存变小,当然是分块啊!!!50个分一块 ,内存减小50倍! #include <bits/stdc++.h>...
  • 求f(n)=1/1+1/2+1/3+…+1/n的值 方法一:公式法~~(不百度,想不出来)~~ f(n)=ln(n)+1/2n+C(欧拉常数)(实用于n较大时) C=0.57721566490153286060651209 n小于等于1e4时,打表;大于时,用公式。 #inclu...
  • 调和级数求和(打表/欧拉常数) - Harmonic Number LightOJ - 1234 题意: 计算调和级数前n项的和:计算调和级数前n项的和:计算调和级数前n项的和: Hn=1+12+13+...+1n=∑i=1n1iH_n=1+\frac{1}{2}+\frac{1}{3}+...+\frac...
  • 题目:2.2 - 16. (1) 观察数列an = 1 + 1/2 + 1/3 + ... + 1/n - ln n, n = 1, 2, ... 是否为单调递减有下界的数列?...∞],称C为欧拉常数,试求得欧拉常数的近似值,精确到小数点以后两位。...
  • 计算欧拉常数e

    千次阅读 2018-04-19 21:56:08
    计算e = 1+1/1!+1/2!+1/3!+…+1/n!+… , 当通项1/n! 小于一个很小的正数k(如10e-7)时停止计算。正数k由用户输入。 程序的运行结果如下所示: 输入:10e-7输出:2.71828分析:简单阶乘--不想分析。...
  • 调和级数+欧拉常数

    2019-03-19 17:59:56
    In mathematics, thenthharmonic number is the sum of the reciprocals of the firstnnatural numbers: In this problem, you are givenn, you have to findHn. Input Input starts with an integerT...
  • 答案:利用“欧拉公式”1+1/2+1/3+……+1/n=ln(n)+C,(C为欧拉常数)具体证明看下面的链接欧拉常数近似值约为0.57721566490153286060651209这道题用数列的方法是算不出来的Sn=1+1/2+1/3+…+1/n>ln(1+1)+ln(1+1/2)+...
  • //欧拉常数 const int maxn=1e4; double sum[maxn]; void init(){ sum[1]=1.0; for(int i=2;i;i++) sum[i]=sum[i-1]+1.0/i; } int main(){ int T,n; scanf("%d",&T); init(); for(int kcase=1;kcase;kcase...
  • 今天看到一道有趣的题目,用的思想跟之前讲过的N架飞机问题很类似,都是调和级数的应用调和级数 1+1/2+1/3+1/4+...+1/n= ln(n+1)+r欧拉常数 r是常量约等于0.577218蚂蚁橡皮筋问题:一只蚂蚁,以1的速度从橡皮筋的...
  • <p>I have this simple function: ... <p>And this is the code I wrote to implement it: <pre><code>public function SimpleEquation($top, $bottom){ $result = (-1/(1 + M_E^(2*M_E - 2*($top/$bottom)))) +...
  • 欧拉常数 double a[ 10000 ]; int main() { a[ 1 ]= 1 ; for ( int i= 2 ;i< 10000 ;i++){ // 预先把小于10000的f(n)求出来 a[i]=a[i- 1 ]+ 1.0 / i; } int n; cin>> n; for ( int kase= 1 ;...
  • 欧拉常数的提问

    2012-03-07 21:07:50
    下面是求欧拉常数的C++的代码: #include<iostream> #include<cmath> int main(int char* []) { double result=0; for(unsigned long int i=1;i<=500000;++i) result+=1./i-std::log((i+1...
  • 欧拉常数y=0.57721566490153286060651209 ans=log(n)+y+1.0/(2*n) #include #include #include #include #include #include using namespace std ; typedef long long ll; const...
  • (r就是欧拉常数)。 另外一种方法是每隔一段距离就存储得到的值,以这个值为基础进行运算。 代码如下: #include #include #include #define r 0.57721566490153286060651209 double a[10000]; void ...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 334
精华内容 133
关键字:

欧拉常数