Description

小贝喜欢玩卡牌游戏。某个游戏体系中共有N种卡牌,其中M种是稀有的。小贝每次和电脑对决获胜之后都会有一个抽卡机会,这时系统会随机从N种卡中选择一张给小贝。普通卡可能多次出现,而稀有卡牌不会被重复抽到。小贝希望收集到K种稀有卡牌,她想知道期望需要多少次获胜才能实现这个目标。

输入描述:

数据有多组,第一行一个整数T表示数据组数。
每组数据一行,三个整数N,M,K .

输出描述:

对于每组数据,输出形如"Case #x: y",其中 x 为这组数据的编号(从1开始),y 为这组数据的答案。答案的绝对误差或相对误差在以内都认为是正确的。

备注

1 ≤ T ≤ 100
1 ≤ N ≤ 105
1 ≤ M ≤ N
1 ≤ K ≤ M

Sample Input

2
5 2 1
40 9 5

Sample Ouput

Case #1: 2.5
Case #2: 28.1146825397

Source::传送门

题解

题意:N种牌,M种稀有,每抽一次,会随机从N种牌中抽取一张,但M种稀有牌不会重复抽到。现在想得到K种稀有卡牌,问抽牌的次数期望是多少。

第一次做期望题目,有点迷。关键解题就是得推公式了!

推导过程:

1.当k = 1 时:第一次抽到概率

第二次抽到概率为

....

第n次的抽到的概率为*

期望 E= 1* + 2 *  *  - n * (错位相减求和)

时, 由单调性等可判断出 E= 

2.当k = 2时,因为M种稀有牌不会重复得到,所以可以分解为两个子问题,即可理解为先从N种牌,M种稀有种得到一个,再从N-1种牌,M-1种稀有种得到1种。所以E = .

3.依次类推 E = 

AC Code

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int MAXN = (int)1e5+10;
const int INF = 0x3f3f3f3f;int main()
{int T, n, m ,k, id = 0;cin>> T;while(T--){id++;cin>> n >> m >> k;double ans = 0;for(int i=1; i<=k; i++){ans += 1.0 * n / m;n--; m--;}printf("Case #%d: %lf\n",id,ans);}return 0;
}

H - 卡牌游戏(简单期望)相关推荐

  1. 牛客国庆集训派对Day2 H 卡牌游戏 [ 期望dp ]

    题目描述 小贝喜欢玩卡牌游戏.某个游戏体系中共有N种卡牌,其中M种是稀有的.小贝每次和电脑对决获胜之后都会有一个抽卡机会,这时系统会随机从N种卡中选择一张给小贝.普通卡可能多次出现,而稀有卡牌不会被重 ...

  2. 牛客国庆集训派对Day2 H 卡牌游戏(花式蒙期望)

    https://www.nowcoder.com/acm/contest/202/H 给一个n m k 答案就是 n/m+(n-1)/(m-1)+(n-2)/(m-2)+......+(n-k+1)/ ...

  3. java卡牌游戏详解

    代码如下: package zxc;//文件夹名称 import java.awt.*; import java.awt.event.ActionEvent; import java.awt.even ...

  4. 基于QT开发的开源局域网联机UNO卡牌游戏报告(附github仓库地址)

    源代码: https://github.com/yunwei37/UNO-game-oop 目录 1. 需求分析 1.1. UNO卡牌游戏的基本功能 1.2. UNO卡牌游戏的规则 2. 总体设计 3 ...

  5. 卡牌游戏源代码(原创)(控制台)

    游戏预览: 完成度90%,约3000行,过年这几天全用在这上面了 由于尚未学到QT等,因此只能在黑窗口下面制作了 未完成的部分: ①战斗代码未优化(800行,精简后应该能降到200行左右) ②关卡掉落 ...

  6. Day4 T2 卡牌游戏

    题目   小X为了展示自己高超的游戏技巧,在某一天兴致勃勃地找小Y玩起了一种卡牌游戏.每张卡牌有类型(攻击或防御)和力量值两个信息.小Y有n张卡牌,小X有m张卡牌.已知小X的卡牌全是攻击型的. 游戏的 ...

  7. SPS | 卡牌游戏Splinterlands,你也可以达到最强王者

    那些最好的买卖,刚开始的时候,从数字上看,几乎都会告诉你不要买.--沃伦·巴菲特 现在的链游,概念预售为多,真正能玩的少.不少项目,游戏还没做出来,就开始炒预期,或者收一笔不少的入场费. 我今天想跟大 ...

  8. [省选联考 2020 B 卷] 卡牌游戏 题解c++

    看到这题,真的忒简单啊! 咳咳,开个玩笑.关于这题: 题目描述 轩轩某天想到了一个卡牌游戏,游戏规则如下: 初始时轩轩的手中有自左向右排成一排的 n 张卡牌,每张卡牌上有一个整数分值. 接下来,轩轩每 ...

  9. 算法题 - 卡牌游戏问题 - Python

    问题描述: 卡牌游戏问题   小a和小b玩一个游戏,有 n张卡牌,每张上面有两个正整数 x, y.取一张牌时,个人积分增加 x,团队积分增加 y.求小a,小b各取若干张牌,使得他们的 个人积分相等,且 ...

最新文章

  1. 计算机书籍-机器学习入门之道
  2. LRU原理及其实现(C++)
  3. Sorting It All Out (易错题+拓扑排序+有向图(判环+判有序)优先级)
  4. extern “C“那些事
  5. Linux命令解释之tail
  6. bzoj 1606 [Usaco2008 Dec]Hay For Sale 购买干草(01背包)
  7. 我的世界java版forge放在哪_我的世界forge怎么装mod(mod安装方法介绍)
  8. TS入门——01.数据类型
  9. Matlab闪退打不开解决方法
  10. Cents7通过rpm安装mysql
  11. easypoi导入excel实践方法:
  12. Python HackerRank 刷题 Maximum Subarray Sum
  13. 关于git中,两个branch自动同步的问题和解决
  14. Life feelings--6--有一天感到没有动力了怎么办?--怎样找到持久的热情?
  15. 什么是环境变量?道理在这四个故事中
  16. 市值超万亿港元!那个CEO写下70万行代码的公司上市了
  17. Java map去空值
  18. springmvc上床多个文件简单记录
  19. C语言经典案例——第二章 结构化程序设计
  20. Javaweb day05

热门文章

  1. java opencv磨皮算法_深度学习AI美颜系列 - AI美颜磨皮算法[转]
  2. 使用AlarmManager实现Android应用每天定时执行任务
  3. 升级Upgrade与更新Update的区别
  4. centos mount ntfs文件系统
  5. MATLAB学习六:mean算数均值
  6. 在线安装 docker
  7. gbk与utf8自动识别
  8. 通过VN1630/VN7640的I/O功能来确认电源设置电压的时间精确度
  9. 谷歌浏览器快速安装Axure扩展插件
  10. 如何使用华为云快速搭建个人博客