PKU 3716 Panda's Birthday Present (概率问题)
2014-07-14 17:13
405 查看
题意:有4个骰子,每个骰子每面包含red或blue两种颜色,每次投掷4个骰子,red向上的数量为分数,
现在给出第一次和第二次的分数,求第三次得分的期望。
思路参考http://hi.baidu.com/bfcdygoporbjuxr/item/569897ddc1fc561d21e2503f
现在给出第一次和第二次的分数,求第三次得分的期望。
思路参考http://hi.baidu.com/bfcdygoporbjuxr/item/569897ddc1fc561d21e2503f
#include<stdio.h> #include<string.h> #include<string> #include<map> #include<stack> #include<math.h> #include<queue> #include<vector> #include<stdlib.h> #include<iostream> #include<algorithm> using namespace std; #define N 2010 #define eps 1e-5 double C[7]={1,6,15,20,15,6,1}; double pn[7][7][7][7];//pn[i][j][k][l]表示4个骰子各有i,j,k,l个red面的概率 double pr[5][7][7][7][7];//pr[red][i][j][k][l]表示4个骰子每个骰子各有i,j,k,l个red面,且共有red个朝上的概率 int cr[5];//每个骰子有多少个red面 int t,n,m; int i,j,k,l; void init() { for(i=0;i<7;i++) for(j=0;j<7;j++) for(k=0;k<7;k++) for(l=0;l<7;l++) pn[i][j][k][l]=(C[i]*C[j]*C[k]*C[l])/(64*64*64*64); } void dfs1(int num,int red,double p) { if(num==4) { pr[red][cr[0]][cr[1]][cr[2]][cr[3]]+=p; return; } dfs1(num+1,red+1,p*cr[num]/6.0); dfs1(num+1,red,p*(6-cr[num])/6.0); } void dfs(int num) { if(num==4) { dfs1(0,0,1); return ; } for(int i=0;i<7;i++) { cr[num]=i; dfs(num+1); } } int main() { init(); dfs(0); scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); double P=0.0,ans=0.0; for(i=0;i<7;i++) for(j=0;j<7;j++) for(k=0;k<7;k++) for(l=0;l<7;l++) P+=pn[i][j][k][l]*pr [i][j][k][l]*pr[m][i][j][k][l]; for(i=0;i<7;i++) for(j=0;j<7;j++) for(k=0;k<7;k++) for(l=0;l<7;l++) for(int r=0;r<5;r++) ans+=r*pn[i][j][k][l]*pr[r][i][j][k][l]*pr [i][j][k][l]*pr[m][i][j][k][l]; ans/=P; printf("%.3lf\n",ans); } return 0; }
相关文章推荐
- HDU 2995 Another Panda's Birthday Present(条件概率|概率生成函数 )
- 用优先级随机概率解决'今天吃神马问题
- POJ 3716 Panda's Birthday Present 可能会
- 2-sat 问题学习小记 Poj 3207 Ikki's Story IV - Panda's Trick (可行性判定)
- Pku 3207 Ikki's Story IV - Panda's Trick
- POJ 3716 Panda's Birthday Present 条件概率
- poj 3207 Ikki's Story IV - Panda's Trick( 2-sat判定性问题,SCC缩点)
- POJ 3682 King Arthur's Birthday Celebration (概率DP)
- windows 2003下'NT AUTHORITY/NETWORK SERVICE 权限问题
- Windows2003中不允许的父路径问题Active Server Pages 错误 'ASP 0131'
- vss安装的问题:提示'UM.dat may be corrupt'
- asp + Access 常见的数据库访问失败问题 Microsoft JET Database Engine 错误 '80004005' 解决办法
- ' or '1'='1'等漏洞问题
- 解决program or unit 'variants' recursively uses itself报错问题
- error C2065: 'CoSetProxyBlanket' : undeclared identifier 问题解决方法
- error C2011: 'fd_set' : 'struct' type redefinition问题
- oracle插入特殊字符'&'问题
- Turbo C 编程中“Unable to open include file 'stdio.h'”问题的解决
- 未能找到存储过程 'dbo.aspnet_CheckSchemaVersion'问题的解决
- myeclipse 遇到'ISO-8859-1'编码问题