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

    题目大意:n个人去购物,要求只有r个人买东西。给你n个人每个人买东西的概率,然后要你求出这n个人中有r个人购物并且其中一个人是ni的概率pi。

    类似于5个人中 抽出三个人  其中甲是这三个人中的一个的  情况  为条件概率  即求 P(A|B) 在B发生的情况下  A发生的概率

    这题条件B为 r个人买东西 A为某个人买东西  枚举每个人  求出 其相应的P(Ai|B)即可

    #include <iostream>
    #include <cstdio>
    #include <sstream>
    #include <cstring>
    #include <map>
    #include <set>
    #include <vector>
    #include <stack>
    #include <queue>
    #include <algorithm>
    #include <cmath>
    #define rap(a, n) for(int i=a; i<=n; i++)
    #define MOD 2018
    #define LL long long
    #define ULL unsigned long long
    #define Pair pair<int, int>
    #define mem(a, b) memset(a, b, sizeof(a))
    #define _  ios_base::sync_with_stdio(0),cin.tie(0)
    //freopen("1.txt", "r", stdin);
    using namespace std;
    const int maxn = 10010, INF = 0x7fffffff;
    double a[maxn];
    bool vis[maxn];
    int n, r;
    
    double dfs(int k, int beg, int cnt)
    {
    
        if(k == cnt)
        {
            double ans = 1.0;
            rap(1, n)
            {
                if(!vis[i])
                    ans *= (1.0-a[i]);
            }
            return ans;
        }
        double res = 0;
        rap(beg, n)
        {
            if(vis[i]) continue;
            vis[i] = 1;
            res += dfs(k+1, i+1, cnt) * a[i];
            vis[i] = 0;
        }
        return res;
    }
    
    int main()
    {
        int kase = 0;
        while(~scanf("%d%d", &n, &r) && n+r)
        {
            rap(1, n) scanf("%lf", &a[i]);
            double Pb = dfs(1, 1, r+1);
            printf("Case %d:
    ", ++kase);
            rap(1, n)
            {
                vis[i] = 1;
                double Pa = dfs(1, 1, r) * a[i];;
                printf ("%.6lf
    ", Pa/Pb);
                vis[i] = 0;
            }
    //        rap(1, n)
    //            printf("%.6f
    ", b[i]/Pb);
        }
    
        return 0;
    }
    自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。
  • 相关阅读:
    docker删除所有服务service,停止并删除所有容器container
    harbor
    yml文件
    linux 上安装portainer.io
    凤凰之谜 1/4 潜行者
    凤凰之谜 4/4 猎人
    凤凰之谜 3/4 德鲁伊 迷宫
    Dijkstra最短路径算法
    LeetCode 到底怎么刷?GitHub 上多位大厂程序员亲测的高效刷题方式
    How do I run a Python script from C#?
  • 原文地址:https://www.cnblogs.com/WTSRUVF/p/9353280.html
Copyright © 2011-2022 走看看