• poj 2096 概率dp


    一个项目有n个系统,s 种bug,每天,Ivan 可以在一个系统中找出一个bug,求发现 s 种bug并且 n 个系统都有bug的所需天数的期望。

    这里每天发现的bug有四种情况,已找到bug的系统的已知bug、未找到bug的系统的已知bug、已找到bug的系统的未知bug、未找到bug的系统的未知bug。

    而这几种情况的概率分别是 (i * j) / (n * s)、((n-i) * j) / (n * s) 、(i * (s - j)) / (n * s)、((n-i) * (s - j)) / (n * s);

    dp[i][j] 表示已经在i个系统中找到j种bug的情况下的期望。

    dp[i][j] = (i * j) / (n * s) * dp[i][j] + ((n-i) * j) / (n * s) * dp[i+1][j] + (i * (s - j)) / (n * s) * dp[i][j+1] + ((n-i) * (s - j)) / (n * s) * dp[i+1][j+1] + 1;

    /***********************************************
     ** problem ID    : poj_2096.cpp
     ** create time    : Sat Jul 25 13:21:58 2015
     ** auther name    : xuelanghu
     ** auther blog    : blog.csdn.net/xuelanghu407
     **********************************************/
    
    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    
    int n, s;
    double dp[1010][1010];
    
    void init() {
        for (int i=0; i<=n; i++) {
            for (int j=0; j<=s; j++) {
                dp[i][j] = -1.0;
            }
        }
    }
    
    double DP(int i, int j) {
        if (dp[i][j] != -1.0) return dp[i][j];
        if (i == n && j == s) return dp[i][j] = 0.0;
        
        double res = 1.0;
        if (i+1 <= n && j+1 <= s) 
            res += DP(i+1, j+1) * (n - i) * (s - j) * 1.0 / (n * s);
        if (i+1 <= n) 
            res += DP(i+1, j) * (n-i) * j * 1.0 / (n * s);
        if (j+1 <= s) 
            res += DP(i, j+1) * i * (s - j) * 1.0 / (n * s);
            
        return dp[i][j] = res / (1.0 - (i * j) * 1.0  / (n * s));
    }
    
    int main () {
        while (cin >> n >> s) {
            init();
            printf ("%.4lf
    ", DP(0, 0));
        }
        return 0;
    }
    View Code
  • 相关阅读:
    【转】【矩阵】坐标的矩阵变换
    cocos2d-x聊天气泡
    lua自用的函数收集
    lua错误收集
    cocos2d-x中CCEditbox导出到lua
    love2d杂记9--光照效果
    (转)love2d有用的辅助库--gamework
    XPath语法 在C#中使用XPath示例
    WCF的CommunicationObjectFaultedException异常问题
    WCF绑定(Binding)
  • 原文地址:https://www.cnblogs.com/xuelanghu/p/4679895.html
Copyright © 2020-2023  润新知