zoukankan      html  css  js  c++  java
  • HihoCoder1164 随机斐波那契(概率DP)

    描述

    大家对斐波那契数列想必都很熟悉:

    a0 = 1, a1 = 1, ai = ai-1 + ai-2,(i > 1)。

    现在考虑如下生成的斐波那契数列:

    a0 = 1, ai = aj + ak, i > 0, j, k从[0, i-1]的整数中随机选出(j和k独立)。

    现在给定n,要求求出E(an),即各种可能的a数列中an的期望值。

    输入

    一行一个整数n,表示第n项。(1<=n<=500)

    输出

    一行一个实数,表示答案。你的输出和答案的绝对或者相对误差小于10-6时被视为正确答案。

    样例解释

    共存在3种可能的数列

    1,2,2  1/4

    1,2,3  1/2

    1,2,4  1/4

    所以期望为3。

    样例输入

    2

    样例输出

    3.000000

    暴力是一切算法的源头。。。

    #include<cstdio>
    #include<cstdlib>
    #include<iostream>
    #include<algorithm>
    #include<cmath>
    using namespace std;
    double a[510],b[510];
    void get(int n)
    {
        a[0]=1.0;
        for(int i=1;i<=n;i++){
            for(int j=0;j<i;j++)
             for(int k=0;k<i;k++)
              b[i]+=(a[j]+a[k]);
            a[i]=b[i]/(i*i);
            b[i]=0;
        }
    }
    int main()
    {
        int n;
        scanf("%d",&n);
        get(n);
        printf("%.6lf
    ",a[n]);
        return 0;
    }
  • 相关阅读:
    使用JdbcTemplate访问数据库
    解决为什么每次打开Eclipse新的workspace需要更新nexus-maven-repository-index问题
    java内存设置
    Eclipse如何解决启动慢
    eclipse的包的加减号展开方式
    maven总结5
    maven总结4
    maven总结3
    maven总结2
    maven总结1
  • 原文地址:https://www.cnblogs.com/hua-dong/p/7919247.html
Copyright © 2011-2022 走看看