2018年长沙理工大学第十三届程序设计竞赛 C-取手机
链接:https://www.nowcoder.com/acm/contest/96/C
来源:牛客网
题目描述
durong有a台iphonex和b台s8,并且放在一个保险箱里,durong现在一台一台从保险箱随机拿出这些手机,现在他想知道第k次拿出s8的概率是多少
输入描述:
第一行一个正整数T,表示数据组数。(1<=T<=10000)
接下来T行输入a,b,k
其中(1<=a,b,k<=1e9) k<=a+b;
输出描述:
第k次拿出s8的概率,保留三位小数
示例1
输入
1
1 1 1
输出
0.500
思路
咋眼一看,第k次。。还是不放回取出。。(emmm……好吧,其实学过概率论的都知道这是干扰项)
可以证明,第k次取物,有放回跟无放回的情况对第K次取物的概率没有影响。。(无放回且知道之前的取物结果的问题不在此列,请勿抬杠)
所以抽到b的概率是 b/(a+b)。
AC代码
#include <iostream>
#include <iomanip>
typedef long long ll;
using namespace std;
int main()
{
int T;
cin >> T;
while(T--){
ll a,b,k;
cin >> a >> b >> k;
double ans = b/(double)(a+b);
cout << fixed << setprecision(3) << ans << endl;
}
return 0;
}