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

    Probability|Given

    有n个人准备去超市逛,其中第i个人买东西的概率是P i 。逛完以后你得知有r个人买了东
    西。根据这一信息,请计算每个人实际买了东西的概率。输入n(1≤n≤20)和r(0≤r≤n),
    输出每个人实际买了东西的概率。

     

    思路:

    事件A:n个人中有r个人买东西

    事件B:第i个人买东西

    在事件A的前提下事件B发生的概率=P(B)/P(A)

    P(A):

    假设有3个人

    那所有的可能情况为 000  001  010  011 100 101 110 111

    有2个人买东西:011  101  110

    那么P(A)= (1-p[1])*p[2]*p[3]  +  p[1]*(1-p[2])*p[3]  +  p[1]*p[2]*(1-p[3])

    P(B):

    假设第1个人

    011  101  110  只有  101  110 符合要求

    P(B)= p[1]*(1-p[2])*p[3]  +  p[1]*p[2]*(1-p[3])

    综上,第1个人买东西的概率= P(B)/P(A)

    错因:搜索的姿势不对。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #define MAXN 21
    using namespace std;
    int n,m,nm;
    bool vis[MAXN];
    double B,A[MAXN],Cu[MAXN],P[MAXN];
    void dfs(int now,int tot,double num){
        if(tot==m){
            for(int i=1;i<=n;i++)
                if(!vis[i])    num*=Cu[i];
            for(int i=1;i<=n;i++)
                if(vis[i])    P[i]+=num;
            B+=num;
            return ;
        }
        for(int i=now+1;i<=n;i++){
            vis[i]=1;
            dfs(i,tot+1,num*A[i]);
            vis[i]=0;
        }        
    } 
    int main(){
        while(scanf("%d%d",&n,&m)!=EOF){
            B=0;
            memset(A,0,sizeof(A));
            memset(P,0,sizeof(P));
            memset(Cu,0,sizeof(Cu));
            memset(vis,0,sizeof(vis));
            for(int i=1;i<=n;i++){
                scanf("%lf",&A[i]);
                Cu[i]=1-A[i];
            }
            dfs(0,0,1);
            cout<<"Case "<<++nm<<":"<<endl; 
            for(int i=1;i<=n;i++)
                printf("%.6lf
    ",P[i]/B);
        }
        
    }
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    Django框架之第三篇模板语法
    Django框架之第二篇
    Django框架第一篇基础
    【数学基础】【快速幂运算模板】
    【搜索】【广搜模板】
    【动态规划】【子序列模板】
    [置顶] 【ACM模板】——hello_chengdongni 随着姿势提升,不定期补充
    【搜索入门专题1】 hdu1242 J
    【搜索入门专题1】E
    【搜索入门专题1】hdu1253 【BFS】 F
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/7605911.html
Copyright © 2011-2022 走看看