卡牌游戏——————概率

链接:https://www.nowcoder.com/acm/contest/202/H
来源:牛客网

题目描述
小贝喜欢玩卡牌游戏。某个游戏体系中共有N种卡牌,其中M种是稀有的。小贝每次和电脑对决获胜之后都会有一个抽卡机会,这时系统会随机从N种卡中选择一张给小贝。普通卡可能多次出现,而稀有卡牌不会被重复抽到。小贝希望收集到K种稀有卡牌,她想知道期望需要多少次获胜才能实现这个目标。
输入描述:
数据有多组,第一行一个整数T表示数据组数。
每组数据一行,三个整数 N , M , K N,M,K .
备注:
1 T 100 1 N 1 0 5 1 M N 1 K M 1 ≤ T ≤ 100 \\ 1 ≤ N ≤ 10^5 \\ 1 ≤ M ≤ N \\ 1 ≤ K ≤ M
输出描述:
对于每组数据,输出形如"Case #x: y",其中 x 为这组数据的编号(从1开始),y 为这组数据的答案。答案的绝对误差或相对误差在10-6以内都认为是正确的。
示例1
输入
2
5 2 1
40 9 5
输出
Case #1: 2.5
Case #2: 28.1146825397


Dicer求出的公式

a n s = i = 0 k 1 N i M i \LARGE ans=\sum_{i=0}^{k-1}{\frac{N-i}{M-i}}

#include<bits/stdc++.h>
using namespace std;

int main()
{
        int n,m,k;
        int num=1;
        int t;
        scanf("%d",&t);
        while(t--)
        {
                scanf("%d %d %d",&n,&m,&k);
                double N=n;
                double M=m;
                double ans=0;
                for(int i=0;i<k;i++)
                        ans += (N-i)/(M-i);
                printf("Case #%d: %.10f\n",num++,ans);
        }
        return 0;
}

猜你喜欢

转载自blog.csdn.net/Hpuer_Random/article/details/82927351