• 数学期望


    练了几天数学期望的基础题,记录一下学习心得。

    前置知识:

    我们一般用E(X)表示事件X的数学期望。那么我们有(E(x)=sum(a_i*p_i)),其中(p_i)是i事件发生的概率,(a_i)是事件i对应的权值。

    举个例子,扔一次骰子得到的点数(E(x)=frac{1}{6}*1+frac{1}{6}*2+frac{1}{6}*3+frac{1}{6}*4+frac{1}{6}*5+frac{1}{6}*6=3.5)

    但是在很多情况下,我们并不能直接枚举所有这样的i事件来求得期望,具体可以看接下来前言中的例题。

    前言

    首先要从对极限情况的死磕里跳出来,比如NOIP2013的这道初赛题:

    如果死磕某种一直在某个荷叶上不往回跳的情况,那可能难以想到正确的解法,虽然这种情况确实有可能发生。

    先设(f_i)(i)号荷叶跳到1号荷叶的期望步数,那我们就有(f_k=(sum^k_{i=1}frac{f_i}{k})+1),从题目意义上来说,就是 (k) 号节点会等概率跳到前面的荷叶上,并且会花费一步的代价,这样就可以算出答案是(frac{37}{12})


    最重要的是设计期望的状态。很多较简单的转移就自然出来了。

    比如这样一个简单的例题:假设硬币扔出两面的概率相同,连续扔出n个正面期望需要扔多少次硬币?

    这道题目显然也不能够直接枚举出现某种情况的概率,所以我们考虑设计状态,用递推来解决这个问题。

    我们设(E_n)为扔出连续n个正面硬币的期望次数,那么就有(E_n=frac{1}{2}(E_{n-1}+1)+frac{1}{2}(E_{n-1}+1+E_{n})),从实际意义来说,就是有一半的几率可以由[连续n-1枚正面再扔一次正面]转移,一半的几率由[连续n-1枚正面再扔一次反面,再连续扔n枚正面]转移,化一下式子就可以得到(E_n=2E_{n-1}+2)


    相信你已经学会了期望的基本状态设计和转移,接下来就是例题了。

    在前置知识中我们接触了扔一枚6面的骰子的期望点数,那么就来看看扔n枚m面骰子的期望最大点数吧(Little Pony and Expected Maximum)。n,m≤1e5。

    假设扔到m面的概率均为(frac{1}{m}),扔n次就会有(m^n)种情况,每种情况出现概率均等,需要求每一轮扔到的最大值乘上(frac{1}{m^n}),但显然是不能枚举所有情况的。

    正难则反,那么我们考虑每轮最大值的情况。

    先假设每轮的最大值都是(m),然后减去实际最大值小于(m)的情况。举个例子,考虑(n)次都只扔出([1,m-1])的概率,显然是((frac{m-1}{m})^n),对应需要减去的权值是1。同理,(n)次都只扔出([1,m-i],ile m-1)对答案的贡献就是(-(frac{m-i}{m})^n),i从1到m-1枚举,但是要考虑i时的情况都被i-1时的包括,所以权值省去即可,原因可以自行举例理解。

    [collapse status="false" title="code"]

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    	int m,n;
    	scanf("%d%d",&m,&n);
    	double res=m;
    	for(int i=1;i<m;i++){
    		res-=pow((m-i*1.0)/m,n);
    	}
    	printf("%.8lf",res);
    	return 0;
    }
    

    [/collapse]


    Archer,一道不错的练手题。

    有两个人比赛射箭,A有(frac{a}{b})的概率射中,B有(frac{c}{d})的概率射中,第一个射中的人获胜,从A开始轮流射箭,问A获胜的概率。

    我们设(A=frac{a}{b},B=frac{c}{d},A'=1-A,B'=1-B)

    那么A获胜的情况无非就是"A,A'B'A,A'B'A'B'A...",设(K=A'·B'),那就是"A,KA,K^2A...",显然就是求(sum_{i≥0}K^iA=A*sum_{i≥0}K^i),后面那个显然就是一个无穷等比数列求和。

    [egin{align} s&=1+x+x^2+x^3+...\ sx&=x+x^2+x^3+x^4+...\ (1-x)s&=1\ s&=frac{1}{1-x}\ end{align} ]

    于是输出的就是(frac{A}{1-K})


    一道有趣的题:Falling Anvils,

    给定(a,b),(p∈[0,a],q∈[-b,b]),在(p,q)随机取值的情况下,求方程(x^2+sqrt p·x+q=0)有实数根的概率。

    显然就是要求(pge4q)的概率,我们让(q∈[-4b,4b]),让(pge q)即可。

    ((p,q))放到平面直角坐标系中,显然满足要求的点的坐标在直线(y=x)下方,于是分下图两种情况考虑答案。

    显然,答案就分(a<4b)时的(frac{(8b+a)a}{2*8ab})(a>4b)时的(frac{4ab+frac{(2a-4b)b}{2}}{8ab}),相等时随便归到一类即可。


    个人博客地址: www.moyujiang.com 或 moyujiang.top
  • 相关阅读:
    iOS11自定义tabBar重影问题
    iOS打包时遇到的has one iOS Distribution certificate but its private key is not installed的问题
    MAC本地生成SSH KEY的方法
    Mac版Sourcetree的安装使用
    Xcode报错:could not attach to pid:"1764"
    解决Xcode10 Library not loaded: /usr/lib/libstdc++.6造成的crash及报错
    socket调试工具(Mac版)
    iOS-基于TCP连接<Scoket-服务端>
    iOS自定义TabBar使用popToRootViewControllerAnimated返回后tabbar重叠
    [UIApplication sharedApplication].keyWindow.rootViewController
  • 原文地址:https://www.cnblogs.com/moyujiang/p/14567278.html
Copyright © 2020-2023  润新知