`
kmplayer
  • 浏览: 509175 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

国际大学生程序设计竞赛例题_5.13石子游戏

阅读更多
1,输入:w,b(白,黑数目)
抽到白拿出,抽到黑放进去,最后抽到白获胜.
要求:第一个抽获胜的概率.
2,解决:递归公式
还有i个白获胜的概率win[i]=p(白)*(1-win[i-1])+p(黑)*(1-win[i])
初始win[0]=0
3,实现代码
#include <iostream>
using namespace std;

int cnt; //测试数目
int w,b;
double ans;

int main()
{
    freopen("5.14.in","r",stdin);
    cout.precision(6);
    cout.setf(ios::fixed);
    int num;
    cin>>cnt;
    while(cnt--)
    {
        ans=0;
        num=1;
        cin>>w>>b;
        while(num<=w)
        {
            ans=(1-(double)num*ans/(double)(num+b))/(1+(double)b/(double)(b+num));
            num++;
        }
        cout<<ans<<endl;
    }
    return 0;
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics