lightoj1027(数学期望与概率)
题意:
你在一个迷宫里,面前有n扇们,每个门有一个数字k;
如果k为正数,则通过这扇门,走k分钟就能出去,
如果为负数,则通过这扇门走-k的分钟回到迷宫;
走每扇门概率一样.问走出迷宫所需时间的期望值;
思路:
首先如果全是负数肯定是inf;
然后我们假设我们走出去的期望时间是d;
那么拿第三个样例举例子;
d = 1/3 * 3+ 1/3( 6 + d) + 1/3 (9 + d);
意思就是每扇门被选择的概率是1/3;
选选第一扇门要花3分钟出去,选第二扇门要6 + d(花6分钟返回原地,在花期望d出去);
然后根据这个式子求出d;
并用分数表示;
【lightoj1027(数学期望与概率)】
#include
#include
#include
using namespace std;
struct frac{
int u;
int d;
}f;
frac add(frac a, frac b) {
if(a.d == 0)
return b;
frac tmp;
int up = a.u * b.d + a.d * b.u;
int down = a.d * b.d;
int c = __gcd(up, down);
tmp.u = up / c;
tmp.d = down / c;
return tmp;
}
int main() {
int t, n;
int cas = 1;
scanf("%d",&t);
while(t--) {
scanf("%d",&n);
int d = 0;
frac num;
num.u = 0;
num.d = 0;
int tmp;
for(int i = 0;
i < n;
i++) {
scanf("%d",&tmp);
if(tmp > 0) {
f.u = tmp;
f.d = n;
num = add(num, f);
}else {
f.u = -tmp;
f.d = n;
num = add(num, f);
d++;
}}
if(d == n) {
printf("Case %d: inf\n",cas++);
continue;
}
num.u *= n;
num.d *= (n - d);
int c = __gcd(num.u, num.d);
printf("Case %d: %d/%d\n",cas++, num.u / c, num.d / c);
}
}
推荐阅读
- 数学大作战
- 2019.11.14号总结
- 生的期望(三联同题)
- 五年级数学上册期中考试质量分析
- 思维导图让你换一种打开方式学数学
- 读《吴正宪给小学数学教师的建议》有感
- 湘潭大学“三下乡”(羊牯村采访)
- 【思维导图实战派】刻意练习计划“遇见……”|【思维导图实战派】刻意练习计划“遇见……” 1/300 人教版数学五下第三单元《正方体和长方体的认识》
- 俄语小数、分数、百分数、及简单数学公式的读法
- 对自己生活的期望