Uva_11427 Expect the Expected
题目链接
题意:
你玩纸牌, 如果当天晚上你赢的局数比例 大于 p, 就去睡觉, 第二天继续。 如果小于等于p, 就去睡觉, 并且以后都不玩了。
每晚最多玩n局, 每局赢的概率为p , 求玩的天数的期望。
思路:
设dp[i][j] 为玩了i局, 赢了j局的概率。
则期望E = sigma(i = 0, 1, 2, 3, 4, ........)x *dp[n][i]。
为无穷级数。
先来求dp[i][j]。
dp[i]][j] = dp[i-1][j] * (1 - p) = dp[i-1][j-1] * p。
化简得:E = 1 / sum(dp[n][i])
代码如下:
1 #include <cmath> 2 #include <cstdio> 3 #include <cstring> 4 #include <cstdlib> 5 #include <ctime> 6 #include <set> 7 #include <map> 8 #include <list> 9 #include <queue> 10 #include <string> 11 #include <vector> 12 #include <fstream> 13 #include <iterator> 14 #include <iostream> 15 #include <algorithm> 16 using namespace std; 17 #define LL long long 18 #define MAXN 110 19 #define MOD 1000000007 20 #define eps 1e-6 21 double p; 22 int a, b; 23 int n; 24 double dp[MAXN][MAXN]; 25 void init() 26 { 27 memset(dp, 0, sizeof(dp)); 28 dp[0][0] = 1; 29 dp[0][1] = 0; 30 31 for(int i = 1; i <= n; i ++) 32 { 33 dp[i][0] = dp[i-1][0] * (1.0 - p); 34 for(int j = 1; j * b <= a * i; j ++) 35 dp[i][j] = dp[i-1][j] * (1.0 - p) + dp[i-1][j-1] * p; 36 } 37 } 38 39 int main() 40 { 41 int T; 42 int kcase = 0; 43 scanf("%d", &T); 44 while(T --) 45 { 46 scanf("%d/%d %d", &a, &b, &n); 47 p = (double)a / (double)b; 48 init(); 49 double ans = 0.0; 50 for(int i = 0; i * b <= n * a; i ++) 51 ans += dp[n][i]; 52 ans = 1 / ans; 53 printf("Case #%d: %d\n", ++ kcase, (int)ans); 54 } 55 return 0; 56 }
View Code
转载于:https://www.cnblogs.com/By-ruoyu/p/4682431.html
Uva_11427 Expect the Expected相关推荐
- UVa11427 Expect the Expected
数学期望 概率递推 每一天的概率都是独立且相同的.可以先推出每天打i盘赢j盘的概率f[i][j] f[i][j]=f[i-1][j]*(1-p) + f[i-1][j-1]*p 输 赢 设此人打一天胜 ...
- Jest测试语法系列之Expect
Methods Expect主要用于实现验证操作,Jest的Expect提供了如下的验证方法: expect(value) expect.extend(matchers) expect.anythin ...
- 全网最全面的Expect的方法等解析!!! 建议收藏!
Expect 在编写测试时,通常需要检查值是否满足某些条件.expect使您可以访问许多"匹配器",以使您可以验证不同的内容. 有关Jest社区维护的其他Jest匹配器,请查看 方 ...
- 前端测试框架Jest系列教程 -- Expect(验证)
写在前面 在编写测试时,我们通常需要检查值是否满足某些条件,Jest中提供的expect允许你访问很多"Matchers",这些"匹配器"允许您验证不同的东西. ...
- gtest简介及简单使用
gtest是一个跨平台(Liunx.Mac OS X.Windows.Cygwin.Windows CE and Symbian)的C++测试框架,有google公司发布.gtest测试框架是在不同平 ...
- Jdk1.6 JUC源码解析(1)-atomic-AtomicXXX
转自:http://brokendreams.iteye.com/blog/2250109 功能简介: 原子量和普通变量相比,主要体现在读写的线程安全上.对原子量的是原子的(比如多线程下的共享变量i+ ...
- 并发编程(三)原子操作CAS
1.CAS(Compare And Swap)原子操作: 假定有两个操作A和B,如果从执行A的线程来看,当另一个线程执行B时,要么将B全部执行完,要么完全不执行B,那么A和B对彼此来说是原子的. 通过 ...
- Java Review - 并发编程_原子操作类原理剖析
文章目录 概述 原子变量操作类 主要方法 incrementAndGet .decrementAndGet .getAndIncrement.getAndDecrement boolean compa ...
- 原子操作类AtomicInteger详解
为什么需要AtomicInteger原子操作类? 对于Java中的运算操作,例如自增或自减,若没有进行额外的同步操作,在多线程环境下就是线程不安全的.num++解析为num=num+1,明显,这个操作 ...
最新文章
- GNN与Transformer融合促进药物发现 | 2022几何图机器学习展望
- vmboxcentos安装重启又要安装_Windows 10八月更新再遇尴尬:安装失败 或安装后随机重启...
- hdu 4288 Coder
- 不同映射方式下cache的失效率_详解发动机在不同工况下的喷油量控制方式
- android view getwidth 0,Android中View.getWidth()和View.getMeasuredWidth()的区别
- 朴素贝叶斯算法--过滤垃圾短信
- C语言-printf变参函数与它的实参转换/转换模板
- 药品缺陷检测中的机器视觉技术
- 总有一种正能量触动你的心灵,读刘丁宁的一封信
- “飞扬小字典” -- 辅助记忆的小工具
- Excel函数应用(3)--筛选随机数
- 《易经》里的28条法则与64个大智慧
- vue ant design a-table表格标题(title)添加icon样式
- vue父子传值,slot插槽的使用
- python爬虫:爬取百度小姐姐照片
- 【云服务架构】什么是云原生应用?有哪些特点?来看看阿里云大学公开课给你答案
- class 和 def
- 用计算机绘制采油曲线,绘制采油曲线.ppt
- 正则数据解析酷狗与天气案例
- 有了这6个东西之后,学Python还愁学不成?楼下大爷都入门了