zoukankan      html  css  js  c++  java
  • POJ2096 Collecting Bugs 数学期望 概率DP

    题意:

    某个系统中有n个子系统和m个bug类型,该系统每天会出现一个bug (属于某个子系统和某个bug类型),bug的类型是等概率的,bug也是等概率地出现在每个子系统的。问所有子系统都出现bug且所有的bug类型都出现的期望天数。

    Input file contains two integer numbers, n and s (0 < n, s <= 1 000).

    定义dp[i][j] 含义: 找到i个bug且属于j个系统的期望值

    那么状态转移如下:

    dp[i][j] = p1 * (dp[i+1][j+1] + 1) + p2 * (dp[i+1][j] + 1) + p3 * (dp[i][j+1] + 1) + p4 * (dp[i][j]+1);//公式中的+1代表本次的操作,即发现一个bug增加的一天

    感觉这个+1不是很好理解  既然是转移到下一天,期望+好像也合情合理

    于是可写出dp[i][j]表达式 递推即可

    double dp[1005][1005];
    
    int main() {
        double n, s;
        scanf("%lf%lf", &n, &s);
        for (int i = n; i >= 0; i--) {
            for (int j = s; j >= 0; j--) {
                if (i == n && j == s) continue;
                dp[i][j] = n*s + (n - i) * j * dp[i + 1][j] + i * (s - j) * dp[i][j + 1] + (n - i) * (s - j) * dp[i + 1][j + 1];
                dp[i][j] /= (n * s - i * j);
            }
        }
        printf("%.4f", dp[0][0]);
    }
  • 相关阅读:
    struts2 和 js 标签取值
    使用jQuery 取文本
    a 标签 name 属性 页面定位 (一)
    a 标签 name 属性 页面定位 (二)
    GitHub 出现这样的问题怎么办
    金融政策
    基金基础知识
    bitcoinj学习记录
    金融电影
    黑客
  • 原文地址:https://www.cnblogs.com/hznumqf/p/13195740.html
Copyright © 2011-2022 走看看