UVa 1636 (概率) Headshot

时间:2021-03-11 21:30:18

既然是第一道概率题,就正儿八经地分析一下吧。

题意:

有一个左轮枪,里面随机装了或者没装子弹,用一个01序列表示。现在已知扣动第一次扳机没有子弹,问是继续扣动扳机还是随机转动一下再扣,那种选择使得第二次扣扳机没有子弹的概率大。

分析:

这是一个条件概率,已知第一次扣动扳机没有子弹。

设序列长度为n,00序列的个数为a,0的个数为b

那么第二次扣的时候如果也没有子弹,就对应所给序列的连续两个0,样本空间为b,所以概率为a/b

如果随机转动一次的话,第一次扣和第二次就完全是独立的了,所以概率为b/n

 #include <cstdio>
#include <cstring> const int maxn = + ;
char s[maxn]; int main()
{
//freopen("in.txt", "r", stdin); while(scanf("%s", s) == )
{
int l = strlen(s);
s[l] = s[];
int zero = , doublezero = ;
for(int i = ; i < l; ++i)
{
if(s[i] == '')
zero++;
if(s[i] == '' && s[i+] == '')
doublezero++;
}
int d = doublezero * l - zero * zero;
if(d > )
puts("SHOOT");
else if(d < )
puts("ROTATE");
else
puts("EQUAL");
} return ;
}

代码君