您的位置:首页 > 其它

顽猴 PASCAL 解题报告

2015-02-02 19:26 183 查看
顽猴
Time Limit:1000MS  Memory
Limit:524288KTotal Submit:2 Accepted:2
Description
从前有一只小考拉在家切题,切着切着他无聊了,于是他到森林里找小猴们玩。森林里总共有n +
m只小猴,这些猴们跟他都是好朋友。他来到森林时,有n只小猴已经玩到无聊了,有m只还没有。每一个单位的时间,他都会随机找两只小猴,然后他们仨玩游戏。完了一单位时间后这两只小猴都会变得感到无聊。这时小考拉又会重新找小猴玩。小猴们想知道,如果这个坏蛋不断找他们玩,那么,在期望下,多少单位的时间后他们会都变得很无聊。你能帮助他们么?Input
输一行两个整数n和m。Output
输出一行一个实数,为所有猴变得无聊的期望时间。保留三位小数。Sample
Input


Sample
Output


Hint
1 ≤ n, m ≤ 50Source
 一道概率的题。这种题挺少见的,上次碰到是在特长生比赛的时候,然后没有人做出来。。 首先,题目给的样例我只能看懂第一个。对于样例2,我一开始想:有可能永远取不到那个有聊的猴子,那时间不就是正无穷了吗?后来老师说要用到极限的思想去理解。。 然后看了正解:对于有m个猴子有聊的情况,令f[i]表示有i只有聊,n+m-i只无聊。令 p0 表示 随机取出
两只无聊         
猴子的概率
  
p1             
一只无聊,一只有聊
  
p2             
两只有聊
则:f[i]:=f[i-1]*p1+f[i-2]*p2+f[i]*p0+1所以:f[i]:=(f[i-1]*p1+f[i-2]*p2+1)/(1-p0)最后输出f[m] 应该这样想:[b]对于有i个猴子有聊的情况:[/b]这种情况有三种来源:1,i-1个猴子有聊,被抽出一只无聊,一只有聊。概率:p1。2,i-2个猴子有聊,被抽出两只有聊。         概率:p2。3,i 
个猴子有聊,被抽出两只无聊。         概率:p0。
这样,就能递推出结果了。 var n,m,i,j,tot,pyy,pyw,pww:longint; f:array[-1..100]of real;begin read(n,m); tot:=0; for j:=2 to n+m do  tot:=tot+j-1; for i:=1
to m do  begin   pyy:=0;   for j:=2 to i do   
pyy:=pyy+j-1;   pww:=0;   for j:=2 to (m+n-i) do   
pww:=pww+j-1;   pyw:=tot-pww-pyy;  
f[i]:=(f[i-1]*pyw/tot+f[i-2]*pyy/tot+1)/(1-pww/tot);  end; writeln(f[m]:0:3);end. 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: