zoukankan      html  css  js  c++  java
  • bernoulli数

    LL B[N][2],C[N][N],f[N][2];
    int n,m;
    
    
    LL gcd(LL a,LL b){return b?gcd(b,a%b):a;}
    LL lcm(LL a,LL b){return a/gcd(a,b)*b;}
    
    void getC(int n)
    {
        int i,j;
        n++;
        for(i=0;i<=n;i++)C[i][0]=C[i][i]=1;
        for(i=2;i<=n;i++){
            for(j=1;j<n;j++){
                C[i][j]=C[i-1][j-1]+C[i-1][j];
            }
        }
    }
    
    void bernoulli(int n)
    {
        int i,m;
        LL s[2],b[2],l,g;
        B[0][0]=1;B[0][1]=1;
        for(m=1;m<=n;m++){
            s[0]=1,s[1]=1;
            for(i=1;i<m;i++){
                b[0]=C[m+1][i]*B[i][0];
                b[1]=B[i][1];
                l=lcm(s[1],b[1]);
                s[0]=l/s[1]*s[0]+l/b[1]*b[0];
                s[1]=l;
            }
            s[0]=-s[0];
            if(s[0]){
                g=gcd(s[0],s[1]*C[m+1][m]);
                B[m][0]=s[0]/g;
                B[m][1]=s[1]*C[m+1][m]/g;
            }
            else B[m][0]=0,B[m][1]=1;
        }
    }
    
    main()
        int i,j;
        LL g,maxlcm;
        getC(20);
        bernoulli(20);
        while(~scanf("%d",&m))
        {
            for(i=0;i<=m;i++){
                g=gcd(C[m+1][i],B[i][1]);
                f[i][0]=C[m+1][i]/g*B[i][0];
                f[i][1]=B[i][1]/g;
            }
            maxlcm=f[0][1];
            for(i=1;i<=m;i++){
                maxlcm=lcm(maxlcm,f[i][1]);
            }
            if(maxlcm<0)maxlcm=-maxlcm;
            for(i=0;i<=m;i++){
                f[i][0]*=maxlcm/f[i][1];
            }
            f[1][0]+=maxlcm*(m+1);
    
            printf("%I64d",(m+1)*maxlcm);
            for(i=0;i<=m;i++)
                printf(" %I64d",f[i][0]);
            printf(" 0
    ");
        }
    View Code
  • 相关阅读:
    【转】size_t和ssize_t
    WCF订票系统DEMO
    VS2008显示解决方案的方法
    一些好用的开源控件
    SQL 的Over 子句
    Sql2005高效分页语句
    使用winform的showdialog小心内存泄漏
    字符串连接类(Javascript)
    SharpZipLib 的使用
    浅谈持久化
  • 原文地址:https://www.cnblogs.com/planche/p/9479118.html
Copyright © 2011-2022 走看看