H. 硬币的水问题II

H. 硬币水题II

1000ms
1000ms
65536KB
64-bit integer IO format: %lld      Java class name: Main
Font Size:  

小胖有一个正反面不正确称的硬币。假设抛一次这个硬币。它的正面朝上的概率为p,反面朝上的概率为1-p。如今。小胖想用这个硬币来产生等概率的决策(50%对50%)。当然,仅仅抛一次是不行的。

小胖的策略是这种:每一次决策。须要抛硬币两次,假设都是正面朝上或者都是反面朝上,那么就又一次再做一次决策;假设是一正一反,那么假设第一次是正面朝上,就说抛了正面,假设第一次是反面朝上,那么就视为抛了反面。

这样,就能得到一个公平的决策了。

如今问题是。给定一个p,小胖平均要抛多少次,才干得到一个决策呢(即不用再抛了)?

Input

第一行包括一个整数N(N<=100),表示測试数据的个数。

接下来包含N行,每行一个測试数据。包含一个3位的浮点数p(0<p<1)。

Output

对每个測试数据。输出一行,包含一个浮点数,表示小胖抛硬币的平均次数。

结果保留两位小数。

Sample Input

3
0.500
0.800
0.300

Sample Output

4.00
6.25
4.76
#include<stdio.h>
int main()
{
    double ex,p;
    int n;
    scanf("%d",&n);
    while(n--)
    {
        scanf("%lf",&p);
        ex=1.0/p+1.0/(1-p);
        printf("%.2lf\n",ex);
    }
}


版权声明:本文博客原创文章,博客,未经同意,不得转载。

posted @ 2015-08-21 17:54  mfrbuaa  阅读(163)  评论(0)    收藏  举报