UVA 10491 Cows and Cars 数学 概率
Posted FriskyPuppy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVA 10491 Cows and Cars 数学 概率相关的知识,希望对你有一定的参考价值。
题目链接: https://vjudge.net/problem/UVA-10491
题目描述: 有a头牛, b辆车, 在你的一次选择后主持人会为你打开C扇有牛的门并问你换门还是不换门, 输出总是换门情况下可以获得车的概率
解题思路: 我现在还没有写代码......我不知道我的思路对不对, 但是先说一下, 我们可以分情况来讨论, 然后分情况乘上获得换门情况下获得车的概率, 也就是全概率公式, 情况分成两种, 一开始指着车, 和一开始指着牛 , res = a/(a+b) * b/(a+b-c-1) + b/(a+b) * (b-1)/(a+b-c-1), 输出即可, 这是我的思路
代码:
#include <iostream> #include <cstdio> #include <string> #include <vector> #include <cstring> #include <iterator> #include <cmath> #include <algorithm> #include <stack> #include <deque> #include <map> #define lson l, m, rt<<1 #define rson m+1, r, rt<<1|1 #define mem0(a) memset(a,0,sizeof(a)) #define meminf(a) memset(a,-0x3f,sizeof(a)) #define fi(n) for(i=0;i<n;i++) #define fj(m) for(j=0;j<m;j++) #define sca(x) scanf("%d",&x) #define ssca(x) scanf("%s",x) #define scalld(x) scanf("%I64d",&x) #define print(x) printf("%d\n", x) #define printlld(x) printf("%I64d\n",x) #define de printf("=======\n") #define yes printf("YES\n") #define no printf("NO\n") typedef long long ll; using namespace std; int main() { int a, b, c; while( scanf( "%d%d%d", &a, &b, &c ) == 3 ) { //a/(a+b) * b/(a+b-c+1) + b/(a+b) * (b-1)/(a+b-c+1) double sum = double(a+b); double mother = double(sum-c-1); double res = double(a)/sum * (double)b/mother + double(b)/sum * double(b-1)/mother; printf( "%.5lf\n", res ); } return 0; }
思考: 思路对了, 这种签到题再不对可就废了........好好学数学啊........
以上是关于UVA 10491 Cows and Cars 数学 概率的主要内容,如果未能解决你的问题,请参考以下文章
UVa 10491 Cows and Cars (条件概率)