pongo(英雄会)题解之理想随机数发生器
来源:互联网 发布:json.parse出错 编辑:程序博客网 时间:2024/05/18 10:42
不得感慨下本科没好好学习概率论,这道题用概率论很简单。
首先还是题目:
题目详情:
一个理想随机数发生器R,给定参数正整数x,它可以均匀随机产生一个闭区间[0,x]之间的实数(注意是实数,每个实数出现的概率相同)R(x)。现在给定3个正整数a,b,c,我们使用a,b产生两个随机实数R(a), R(b),问R(a) + R(b) <= c的概率有多大?
输入: 正整数a,b,c。正整数均不超过10000
输出: R(a) + R(b) <= c的概率。注意输出是一个有理数(分数),请化为最简分数。(分子分母的最大公约数是1)。
例如 输入a = 1, b = 1, c = 4,输出"1/1"
这道题转换为概率论题目就是:x与y分别在[0,a]和[0,b]上服从均匀分布,并且x与y相互独立,求x+y<=z ,当z=c时的概率。
x与y分别在[0,a]和[0,b]上的概率密度为f(x)=1/a,f(y)=1/b;x与y相互独立,那么联合概率密度f(x,y)=1/(a*b) x属于[0,a]、y属于[0,b],
....
....
用图示如下(假如a>=b):
就是求阴影部分的面积与矩形面积的比例,分c<=b、b<c<=a、a<c<a+b和c>=a+b四种情况求,记得最后需要约去公约数,即结果中的分子与分母的最大公约数为1,代码如下:
#include <stdio.h>#include <iostream>#include <string>#include<sstream>using namespace std;class Test {public:static int maxG(int a,int b){while(b){int mid=b;b=a%b;a=mid;}return a;} static string calculate (int a,int b,int c){ if(c>=a+b)return "1/1";if(a<b){//for a>=bint mid =a;a=b;b=mid;}int res=0;int sqr=2*a*b;if(c<=b){res=c*c;}else if(c>b&&c<=a){//res=c*c-(c-b)*(c-b);res=b*(2*c-b);}else {//a<c<a+b//res=2*a*b-(a+b-c)*(a+b-c);res=2*c*(a+b)-a*a-b*b-c*c;}int maxGYS=1;while((maxGYS=maxG(sqr,res))>1){res/=maxGYS;sqr/=maxGYS;}std::stringstream ss;ss<<res<<"/"<<sqr;std::string ret=ss.str();return ret; }};//start 提示:自动阅卷起始唯一标识,请勿删除或增加。int main(){ cout<<Test::calculate(1,3,2)<<endl; } //end //提示:自动阅卷结束唯一标识,请勿删除或增加。
- pongo(英雄会)题解之理想随机数发生器
- pongo(英雄会)题解之理想随机数发生器
- 理想随机数发生器【解】--英雄会
- pongo(英雄会)题解之均分01
- csdn英雄会(pongo)题解之报数游戏
- csdn英雄会(pongo)题解之报数游戏2
- csdn英雄会(pongo)题解之回文数
- 英雄会(csdn pongo)题解之平衡二叉树
- 英雄会(csdn pongo)题解之朋友的礼物
- 英雄会(csdn pongo)题解之报数游戏3
- 英雄会(csdn pongo)题解之罐子和硬币
- 英雄会(csdn pongo)题解之二叉树
- 英雄会(csdn pongo)题解之坐标和数字
- 英雄会(csdn pongo)题解之求导数
- pongo(csdn英雄会)题解之最小操作数---leetcode之word ladder2
- 英雄会(csdn pongo)题解之坐标和数字(Java版)
- pongo(英雄会)题解之人人code,整数取反
- pongo(英雄会)题解之最少操作次数的简易版
- 证券从业资格考试
- (10)MATLAB 模式识别
- 不安装oracle客户端,通过plsql远程链接数据库
- archlinux比gentoo的优点
- hdu 3491 Thieves(最小割拆点)
- pongo(英雄会)题解之理想随机数发生器
- Codeforces Round #207 (Div. 2) D. Xenia and Hamming
- Struts逐步学习(3)-struts-config.xml文件解析
- 时间子系统14_全局时间维护
- maven djunit 配置
- Android学习路径图
- 托管代码与非托管代码的区别
- storyboard设置IBOutlet和IBAction
- 调试在64位Debian上编译好的Linux 0.11(一)