A Dangerous Maze LightOJ - 1027 (期望 , 概率 , 高数)

A - A Dangerous Maze

 LightOJ - 1027 

题意 : 有 n 个门,如果走正确的路花费 right[ i ] 分钟就可以走出去
                             如果走错误的路浪费 wrong i ] 分钟回到起点 (错误的给出负数)

            每次不记得自己走过哪个

            现在问 : 走出去的期望 

 

分析: 考虑走出期望,分别是第一次走出去,第二次走出去,第三次走出去......

     那么定义 Ei 为第 i 次走出去的期望,pi 到第 i 次的概率, ti 为走到第 i 次花费的时间

     ans = \sum Ei

    Ei = pi * ti

   (p1 为成功走出去的概率 ,p2 为走失败的概率 ,t1 为走成功平均耗费时间 , t2 为走失败平均耗费时间 )

     

 耗时概率
第 1 次走出去t1p1
第 2 次走出去t1 + t2p1 * p2
第 3 次走出去t1 + 2 * t2p1 * p2 ^ 2
第 n 次走出去t1 + (n - 1) * t2p1 * p2 ^ (n - 1)

把答案拆成 t1 , t2 两部分算

第一部分 : 

ans1 = ( t1 * p1 ) \sum_{0}^{n} (p2)^{i}

ans1 = (t1 * p1) \lim_{x \rightarrow n} ( \frac{1 - (p2)^{n}}{1 - p2} )

p2 \leq 1

 ans1 = t1 * p1 * ( \frac{1}{1 - p2})

第二部分:

ans2 = ( t2 * p2 ) \sum _{1}^{n} i * (p2)^{i}

等比 + 等差,我敬爱的高中数学老师说过乘公比相减

ans2 = p2 * t2 * p1 \sum i * (p2)^{i}

(1 - p2) sn = \sum_{0}^{n-1} (p2)^{i} - n * (p2)^{n}

\lim_{n \to \inf } n * (p2)^{n} == \lim_{n \to inf } ( \frac{n}{(p2)^{-n})}) 

利用洛必达,上下求导,可化成 0 约去

ans2 = \frac{p2 * t2 * p1}{(1 - p2)^{2}}

最后1 - p2 == p1 带进去

ans = \frac{\sum right[i] + \sum wrong[i] }{n}

n 代表 rigth 的大小

 

贴代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 2e5 + 5;

#include<vector> 
vector<int> z,f;
int main() {
	int T,tcase = 0;
	scanf("%d",&T);
	while(T--) {
		z.clear();
		f.clear();
		int tot,ch;
		int suma = 0;
		int sumb = 0;
		scanf("%d",&tot);
		for(int i=1;i<=tot;i++) {
			scanf("%d",&ch);
			if(ch > 0) {
				z.push_back(ch);
				suma += ch;
			} else {
				f.push_back(ch);
				sumb -= ch;
			}
		}
		int fz = suma + sumb;
		int fm = z.size();
		printf("Case %d: ",++tcase);
		if(!fm) {
			printf("inf\n");
		} else {
			int d = __gcd(fz,fm);
			fz /= d;
			fm /= d;
			printf("%d/%d\n",fz,fm);
		}
	}
}



 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值