zoukankan      html  css  js  c++  java
  • 一条线段引发的思考

    这周拿到一道有趣的题,决定写篇blog记录一下。



    问题描述如下:

    在一条长度为1的线段上任取两个点,求这两个点表示的线段的期望长度。


    这道题有很多种解法,非常有意思。

    首先,对于期望,它是这么个东西:

    (E(X)=sum_{i=0}^n p_ix_i),其中(E(X))表示事件(X)的期望,(p_i)表示情况(x_i)出现的概率,(n)为情况总数。

    用人话讲就是事件(X)所有情况的平均值,简称均值。


    解法一:

    正统解法,概率。

    如果学过高数,可以很容易转换成数学模型:

    (x in [0,1],yin[0,1]),求(mid x-ymid)的均值。

    可以看到(x,y)属于连续性随机变量且服从均匀分布。显然有当(mid x-y mid)为某一定值(t)时,该情况成立时(x,y)构成的点集在坐标轴上形成两条直线(x-y=t,-y+x=t)。考虑所有情况,我们只需对所有情况进行积分即可,即求所有合法直线在(xin[0,1],yin[0,1])构成的面积。

    解法二:

    排列组合。

    想象在一段区间上取点,我们把该区间分为(n-1)段,即共(n)个点组成的方案选择问题。那么,对于一段长度为(tin[0,n])的区间,它能够取的情况数是(2*(n-t))。总共的能取的区间总数为(2*C_n^2+n-1),即(n^2)。所以期望就是

    [frac{2*sum_{i=0}^n (n-t)*t}{n^2} ]

    将其转化为实数域上的问题,并将(n=1)代入,化简后得

    [2int_0^1 (x-x^2)dx ]

    当然你不积分,直接等差数列求和也行。

    类似于此种解法,我们还可以从一个点所能取到的方案数入手,而不是一段区间(t),最后的结论也是一样的。

    解法三:

    鬼畜做法,古典概型

    设该区间被三个端点(x,y,z)分为两段,实际上我们所要解决的问题就是:任取两个点(x,y),并使(z)落在(xsim y)之间。

    只有两种情况成立,即(x<z<y,y<z<x),于是

    [frac{2}{3!} ]

    做完了。

  • 相关阅读:
    分布式共识协议RAFT基本原理
    slave_net_timeout, MASTER_HEARTBEAT_PERIOD, MASTER_CONNECT_RETRY,以及 MASTER_RETRY_COUNT设置和查看
    单例模式
    截取字符串Java
    Hibernate+struts+JqueryAjax+jSON实现无刷新三级联动
    数组集合区别
    Android Activity生命周期(图文)!
    Activity的生命周期
    Android四大组件
    各种时间获取 .net
  • 原文地址:https://www.cnblogs.com/DarkValkyrie/p/11666806.html
Copyright © 2011-2022 走看看