博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【非原创】LightOJ - 1284 Lights inside 3D Grid【概率期望】
阅读量:4709 次
发布时间:2019-06-10

本文共 1139 字,大约阅读时间需要 3 分钟。

学习博客:

 

题意:

在一个三维的空间,每个点都有一盏灯,开始全是关的,
现在每次随机选两个点,把两个点之间的全部点,开关都按一遍;问k次过后开着的灯的期望数量;

 

题解:

肯定不能从随机抽取两个数这里入手的,要求开着的灯的数量就从对每一盏灯,操作结束后灯开着的概率,然后将这些概率求和就是对于整个矩阵到最后开着的灯的数量了,这就把矩阵的问题落实到了对于求每个坐标的概率的问题。

对每个点单独计算贡献,即k次过后每个点开关被按了奇数次的期望

一个点如果被包到所选空间里,那么说明选的两个点,x坐标在这个点两侧,y坐标在这个点两侧,z坐标在这个点两侧;

对于一维的,可以用1-\frac{(x-1)*(x-1)+(n-x)*(n-x)}{n*n}求出两个点在x这一点两侧的概率。然后三维的只要当成三个一维的乘起来就行了。

E=

求法:

这里写图片描述

 

 代码(亦非原创):

1 #include
2 3 using namespace std; 4 5 int t,x,y,z,m; 6 7 int main() 8 9 {10 11 scanf("%d",&t);12 13 int cas=0;14 15 while(t--)16 17 {18 19 scanf("%d%d%d%d",&x,&y,&z,&m);20 21 double ans=0.0;22 23 for(int i=1;i<=x;i++)24 25 for(int j=1;j<=y;j++)26 27 for(int k=1;k<=z;k++)28 29 {30 31 double p=0.0;32 33 p= 1.0-1.0*((x-i)*(x-i)+(i-1)*(i-1))/(x*x);34 35 p*=1.0-1.0*((y-j)*(y-j)+(j-1)*(j-1))/(y*y);36 37 p*=1.0-1.0*((z-k)*(z-k)+(k-1)*(k-1))/(z*z);38 39 40 41 ans+=0.5-0.5*pow(1.0-2*p,1.0*m);42 43 }44 45 printf("Case %d: %.11lf\n",++cas,ans);46 47 }48 49 return 0;50 51 }
View Code

 

转载于:https://www.cnblogs.com/zmin/p/9760836.html

你可能感兴趣的文章
亿能测试资讯_2013-8-11
查看>>
北京地铁月度消费总金额计算(Python版)
查看>>
nginx+tomcat配置https
查看>>
[hadoop]备份
查看>>
C#中的委托和事件(续)
查看>>
python--MySql
查看>>
机器学习 - pycharm, pyspark, spark集成篇
查看>>
mysql explain 中key_len的计算
查看>>
实验一
查看>>
Linux内核--网络栈实现分析(九)--传输层之UDP协议(下)
查看>>
Lua -- 简洁、轻量、可扩展的脚本语言
查看>>
Python 2.7_Second_try_爬取阳光电影网_获取电影下载地址并写入文件 20161207
查看>>
[Fiddler] 开启Fiddler抓包的时候产品报“证书错误”
查看>>
打包苦逼活
查看>>
Oracle Certified Java Programmer 经典题目分析(二)
查看>>
第二十五章补充内容 17位字段
查看>>
灰色预测
查看>>
css随笔
查看>>
基于自己封装的select下拉选择的省市区三级联动效果,兼容IE
查看>>
初识Python
查看>>