zoukankan      html  css  js  c++  java
  • UVA 11181 Probability|Given

    UVA_11181

        设事件B为一共有r个人买了东西,设事件Ai为第i个人买了东西。

        那么这个题目实际上就是求P(Ai|B),而P(Ai|B)=P(AiB)/P(B),其中P(AiB)表示事件Ai与事件B同时发生的概率,同时总状态并不多,因此我们可以枚举买东西的状态预处理出P(AiB)和P(B),再代入计算即可。

    #include<stdio.h>
    #include<string.h>
    #define MAXD 25
    int N, R;
    double ap[MAXD], p[MAXD];
    void solve()
    {
    int i, j, k;
    double ans, rp = 0;
    for(i = 0; i < N; i ++)
    scanf("%lf", &p[i]);
    if(R == 0)
    {
    for(i = 0; i < N; i ++)
    printf("0.000000\n");
    return ;
    }
    memset(ap, 0, sizeof(ap));
    for(i = 0; i < (1 << N); i ++)
    {
    k = 0;
    for(j = 0; j < N; j ++)
    if((1 << j) & i)
    k ++;
    if(k == R)
    {
    ans = 1;
    for(j = 0; j < N; j ++)
    {
    if((1 << j) & i)
    ans *= p[j];
    else
    ans *= (1 - p[j]);
    }
    rp += ans;
    for(j = 0; j < N; j ++)
    if((1 << j) & i)
    ap[j] += ans;
    }
    }
    for(i = 0; i < N; i ++)
    printf("%.6lf\n", ap[i] / rp);
    }
    int main()
    {
    int t = 0;
    for(;;)
    {
    scanf("%d%d", &N, &R);
    if(!N && !R)
    break;
    printf("Case %d:\n", ++ t);
    solve();
    }
    return 0;
    }


  • 相关阅读:
    java 截取pdf
    webService 发送soap请求,并解析返回的soap报文
    常用网址
    扫描文件夹下代码行数
    CodeMIrror 简单使用
    常用 linux 命令(部分)
    windows下RabbitMQ 监控
    一定要写的日志
    创业思路
    10月9日后计划
  • 原文地址:https://www.cnblogs.com/staginner/p/2286032.html
Copyright © 2011-2022 走看看