精华内容
下载资源
问答
  • 欧拉常数约为 0.57721566490153286060651209。 欧拉常数最先由瑞士数学家莱昂哈德·欧拉(Leonhard Euler)在1735年发表的文章 De Progressionibus harmonicus observationes 中定义。欧拉曾经使用C作为它的符号,并...
  • 欧拉常数

    2021-06-30 23:37:33
    目录 1,欧拉常数 2,欧拉常数其他形式 3,与Gamma函数的关系 1,欧拉常数 证明右式有极限: 2,欧拉常数其他形式 证明: 3,与Gamma函数的关系

    目录

    1,欧拉常数

    2,欧拉常数其他形式

    3,与Gamma函数的关系


    1,欧拉常数

    r=\lim _{n \rightarrow \infty}\left(1+\frac{1}{2}+\frac{1}{3}+\cdots+\frac{1}{n}-\ln n\right)

    证明右式有极限:

    \because 1+\frac{1}{2}+\frac{1}{3}-+\frac{1}{n}<\int_{1}^{n} \frac{1}{x} d x+1=\ln n+1 \\ 1+\frac{1}{2}+\cdots+\frac{1}{n}>\int_{1}^{n+1} \frac{1}{x} d x=\ln (n+1) \\ \therefore 0<\ln \left(1+\frac{1}{n}\right) <1+\frac{1}{2}+\frac{1}{3}+\cdots+\frac{1}{n}-\ln n<1

    设 a_n=1+\frac{1}{2}+\frac{1}{3}+\cdots+\frac{1}{n}-\ln n

    则 0<\ln \left(1+ \frac{1}{n}\right)<a_{n}<1

    a_{n+1}-a_{n}=\frac{1}{n+1}-\ln (n+1)+\ln n=\frac{1}{n+1}+\ln \left(1-\frac{1}{n+1}\right)<0

    所以a_n有极限

    2,欧拉常数其他形式

    r=\int_{1}^{+\infty}\left(\frac{1}{[x]}-\frac{1}{x}\right) d x

    证明:

    \begin{aligned} &a_{n}=\int_{1}^{n}\left(\frac{1}{[x]}-\frac{1}{x}\right) d x+\frac{1}{n} \\ &\therefore r=\lim _{n \rightarrow \infty} a_{n}=\lim _{n \rightarrow \infty} \int_{1}^{n}\left(\frac{1}{[x]}-\frac{1}{x}\right) d x=\int_{1}^{+\infty}\left(\frac{1}{[x]}-\frac{1}{x}\right) d x \end{aligned}

    3,与Gamma函数的关系

    (1)-r=\Gamma '(1)

    (2)r=\lim _{x \rightarrow +{\infty}}\left(x-\Gamma\left(\frac{1}{x}\right)\right)

    展开全文
  • 题意:求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小的时候暴

    题意:求 f ( n ) = 1 / 1 + 1 / 2 + 1 / 3 + 1 / 4 … 1 / n ( 1 ≤ n ≤ 1 0 8 ) 精 确 到 1 0 − 8 f(n)=1/1+1/2+1/3+1/4…1/n (1 ≤ n ≤ 10^8)精确到10^{-8} f(n)=1/1+1/2+1/3+1/41/n(1n108)108


    解法1:

    调和级数到现在还没有完全正确的公式,但是有个近似的公式: f ( n ) = l n ( n ) + C + 1 / ( 2 ∗ n ) f(n)=ln(n)+C+1/(2*n) f(n)=ln(n)+C+1/(2n)n越大越精准,c是欧拉常数


    那么我们在n小的时候暴力求,当n很大的时候直接带公式


    #include <iostream>
    #include <cstdio>
    #include <cmath>
    using namespace std;
    const double r=0.57721566490153286060651209;     //欧拉常数
    double a[10000];
    
    int main()
    {
        a[1]=1;
        for (int i=2;i<10000;i++)
        {
            a[i]=a[i-1]+1.0/i;
        }
        int n;
        cin>>n;
        for (int kase=1;kase<=n;kase++)
        {
            int n;
            cin>>n;
            if (n<10000)
            {
                printf("Case %d: %.10lf\n",kase,a[n]);
            }
            else
            {
                double a=log(n)+r+1.0/(2*n);
                //double a=log(n+1)+r;
                printf("Case %d: %.10lf\n",kase,a);
            }
        }
        return 0;
    }
    

    解法2:


    如果1e8全都记录一定会MLE,我们可以每40个数记录一个数据:分别记录 1 / 40 , 1 / 80 , 1 / 120...1 / 1 0 8 1/40,1/80,1/120...1/10^8 1/401/801/120...1/108


    #include <iostream>
    #include <algorithm>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    
    using namespace std;
    
    const int maxn = 2500001;
    double a[maxn] = {0.0, 1.0};
    
    int main()
    {
        int t, n, ca = 1;
        double s = 1.0;
        for(int i = 2; i < 100000001; i++)
        {
            s += (1.0 / i);
            if(i % 40 == 0) a[i/40] = s;
        }
        scanf("%d", &t);
        while(t--)
        {
            scanf("%d", &n);
            int x = n / 40;
            s = a[x];
            for(int i = 40 * x + 1; i <= n; i++) s += (1.0 / i);
            printf("Case %d: %.10lf\n", ca++, s);
        }
        return 0;
    }
    

    展开全文
  • 调和级数+欧拉常数

    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...

    In mathematics, the nth harmonic number is the sum of the reciprocals of the first n natural numbers:

    In this problem, you are given n, you have to find Hn.

    Input

    Input starts with an integer T (≤ 10000), denoting the number of test cases.

    Each case starts with a line containing an integer n (1 ≤ n ≤ 108).

    Output

    For each case, print the case number and the nth harmonic number. Errors less than 10-8 will be ignored.

    Sample Input

    12

    1

    2

    3

    4

    5

    6

    7

    8

    9

    90000000

    99999999

    100000000

    Sample Output

    Case 1: 1

    Case 2: 1.5

    Case 3: 1.8333333333

    Case 4: 2.0833333333

    Case 5: 2.2833333333

    Case 6: 2.450

    Case 7: 2.5928571429

    Case 8: 2.7178571429

    Case 9: 2.8289682540

    Case 10: 18.8925358988

    Case 11: 18.9978964039

    Case 12: 18.9978964139

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    double sum[1000005];
    int main()
    {
        double s=0;
        sum[0]=0;
        for(int i=1;i<=1e8;i++)
        {
            s+=1.0/i;
            if(i%100==0)
            {
                sum[i/100]=s;
            }
        }
        int n,cas;
        scanf("%d",&cas);
        for(int tt=1;tt<=cas;tt++)
        {
            scanf("%d",&n);
            double ans=sum[n/100];
            for(int i=(n/100)*100+1;i<=n;i++)
            {
                ans+=1.0/i;
            }
            printf("Case %d: %.10lf\n",tt,ans);
        }
        return 0;
    }

     

    展开全文
  • 计算欧拉常数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分析:简单阶乘--不想分析。...

    计算e = 1+1/1!+1/2!+1/3!+…+1/n!+… , 当通项1/n! 小于一个很小的正数k(如10e-7)时停止计算。正数k由用户输入。

    程序的运行结果如下所示:
    输入:
    10e-7
    输出:

    2.71828

    分析:简单阶乘--不想分析。

    
    #include "stdio.h"
    int main(){
        int i;
        double t,e,k;
        scanf("%lf",&k);
        for(e=t=i=1;t>=k;e+=t/=i++);
        printf("%g\n",e);
        return 0;
    }
     
    
    
    
    

    展开全文
  • 题目:2.2 - 16. (1) 观察数列an = 1 + 1/2 + 1/3 + ... + 1/n - ln n, n = 1, 2, ... 是否为单调递减有下界的数列?...∞],称C为欧拉常数,试求得欧拉常数的近似值,精确到小数点以后两位。...
  • 欧拉常数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...
  • 欧拉常数 Euler's constant

    千次阅读 2014-08-13 21:25:09
    欧拉常数是调和级数和自然对数的差值的极限。
  • 欧拉常数值:C≈0.57721566490153286060651209 求和公式:S(n)=ln(n)+C+1/(2*n) 公式只对n值很大的数有效 ( C++ cmath库中log(n)就是ln(n) ) #include<bits/stdc++.h> #include<iostream> #...
  • //欧拉常数 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...
  • 主要介绍欧拉常数。 当我们需要计算调和级数,范围特别大的时候,可以使用它。 它的定义是,即一坨调和级数减去一个ln。 欧拉发现这是个常数,大概在0.57721 56649 01532 86060 左右。 所以调和级数就是欧拉常数...
  • 数据比较小时直接算,数据比较大时用公式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))至今没有一个完全正确的公式,但欧拉给出过一个近似公式:(n很大时) f(n)≈ln(n)+C+1/2*n 欧拉常数值:C≈0.57721566490153286060651209 c++ math库中,log即为ln。 注 :n很小时直接求...
  •  调和级数(即f(n))至今没有一个完全正确的公式,但欧拉给出过一个近似公式:(n很大时)  f(n)≈ln(n)+C+1/2*n  欧拉常数值:C≈0.57721566490153286060651209 也可以用打表水过去。10e8全打表必定MLE,而...
  •  调和级数(即f(n))至今没有一个完全正确的公式,但欧拉给出过一个近似公式:(n很大时)     f(n) ≈ ln(n)+C +1/2*n    欧拉常数值:C≈ 0.57721566490153286060651209  c++ math库中,log即为ln。 但是n很小是...
  • 其中C是欧拉常数其值等于C ≈ 0.57721566490153286060651209; 对于较小的数据公式的误差会比较大,所以对于前10000个数据采用打表的方法来求解   AC代码 1 #include 2 #include 3 #include ...
  • 由单调有界数列必有极限,知Sn有极限,定义这个极限为γ,这个数就叫作欧拉常数,近似值约为0.57721566490153286060651209...,目前还不知道它是有理数还是无理数。   在微积分学中,欧拉常数γ有许多应用,如...
  • (r就是欧拉常数)。 另外一种方法是每隔一段距离就存储得到的值,以这个值为基础进行运算。 代码如下: #include #include #include #define r 0.57721566490153286060651209 double a[10000]; void ...
  • 这个题我一开始是以为用的欧拉常数,但是如果我把暴力区间定在a*1e6(a为整数),后面开始用欧拉常数算的话,a太小就达不到欧拉常数要求的极限值导致计算的值很不准确,a太大就导致前面暴力求和的部分太多TLE,如果用...
  • 1、这个精度就不要想直接能循环出来了,然后感觉这个形式很眼熟啊,不就是得到欧拉常数的那个级数,于是就搜了公式和欧拉常数愉快的带进去了 公式: f ( n ) ≈ l n ( n ) + C + 1 2 n f(n)≈ln(n)+C+\frac {1}{2n...
  • f[n]=1+1/2+1/3+……+1/n,就是调和级数的前i项和,而调和级数的近似公式是:ln(n)+r(其中r是欧拉常数,r=0.57721566490153286060651209)。当i比较小时,应该用递推公式计算,公式的精度不够;当n足够大时,直接用...
  • 调和级数求和(打表/欧拉常数) - Harmonic Number LightOJ - 1234 题意: 计算调和级数前n项的和:计算调和级数前n项的和:计算调和级数前n项的和: Hn=1+12+13+...+1n=∑i=1n1iH_n=1+\frac{1}{2}+\frac{1}{3}+...+\frac...
  • 吐槽:这题不知道欧拉常数就做不了啊(虽然欧拉常数基本可以当成一个常识了)……不知道的人就算推出倒数和的形式也搞不出来啊…… \(Code:\) #include #include #include #include #include using ...
  • 链接:... 1+1/2+1/3... = log(1+n) + r(欧拉常数),需要大精度时减去1.0/(2*n); r =0.57721566490153286060651209 #include<iostream> #include<algorithm> #include&...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,021
精华内容 2,008
关键字:

欧拉常数