抓糖豆,小Q与小K都喜欢吃糖豆。 但是糖豆分两种,超甜糖豆和普通糖豆。 现在有w个超甜糖豆和b个普通糖豆。 小Q和小K开始吃糖豆,他们决定谁先吃到超甜糖豆谁就获胜。 小K每次吃的时候会捏碎一颗糖豆。 小Q先吃,小Q想知道自己获胜的概率。 如果两个人都吃不到超甜糖豆小K获胜。使用c/c++输出代码
时间: 2024-02-03 11:13:34 浏览: 27
这是一个经典的概率问题,可以使用组合数学的方法求解。
设小Q吃了k颗糖豆(k≥0),其中有x颗超甜糖豆,则小K吃了k-1颗糖豆,其中有y颗超甜糖豆(0≤y<x)。则小Q获胜的概率为:
P = Σ(x从0到w){Σ(y从0到x-1)[C(x+y-1,x-1)*C(w+b-x-y-1,w-x)] / C(w+b-1,w-1)}
其中C(n,m)表示从n个不同元素中取m个元素的组合数。具体地,C(n,m) = n! / (m! * (n-m)!)。
下面是C++的代码实现:
```cpp
#include <iostream>
using namespace std;
int main() {
int w, b;
cin >> w >> b;
double ans = 0.0;
for (int x = 1; x <= w; x++) {
double p = (double)x / (x + b);
double q = 1.0 - p;
double sum = 0.0;
for (int y = 0; y < x; y++) {
double tmp = 1.0;
tmp *= (w - x + y + 1);
tmp /= (w + b - x - y);
tmp *= (x - y);
tmp /= (y + 1);
sum += tmp;
}
ans += p * sum;
}
cout.precision(12);
cout << fixed << ans << endl;
return 0;
}
```
输入格式为两个整数w和b,表示超甜糖豆和普通糖豆的数量。输出小Q获胜的概率,保留12位小数。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)