首页 > 代码库 > uva 12230 - Crossing Rivers(求数学期望)
uva 12230 - Crossing Rivers(求数学期望)
利用了数学期望的线性性质:有线个随机变量之和的数学期望的关于每个随机变量的期望之和;
由于过每条河的时间为L / V和3L / V的均匀分布,因此期望过河时间为2L / V.
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int n;double d; int main() { int kase=0; while(scanf("%d%lf",&n,&d)!=EOF) { kase++; if(n==0&&d==0) break; double p,l,v; double sum=0; double re=0; for(int i=1;i<=n;i++) { scanf("%lf%lf%lf",&p,&l,&v); sum+=2*l/v; re+=l; } printf("Case %d: %.3lf\n\n",kase,sum+(d-re)); } return 0; }
细节处理方面,下面的代码到这了程序出错。不要忽略整型除法和double型除法是有本质区别的。
要么强制转换类型,要么定义变量时就使用double型。
sum+=2*l/v;
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。