既然是第一道概率题,就正儿八经地分析一下吧。
题意:
有一个左轮枪,里面随机装了或者没装子弹,用一个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 ;
}
代码君