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!} ]

    做完了。

  • 相关阅读:
    realsense SDK debug
    网络
    JVM基础系列第11讲:JVM参数之堆栈空间配置
    图片一句话木马简单制作方法
    RocketMQ(四):生产者消息数据写入实现细节
    RocketMQ(三):broker启动逻辑
    发现一个新的技术网站 https://dotnet9.com/
    【最新】解决Github网页上图片显示失败的问题
    c++入门
    Newtonsoft.Json json.net 可以丢弃了,微软发布了 System.Text.Json 适用于.net 4.6.1 +,后悔了,建议.net5+项目使用
  • 原文地址:https://www.cnblogs.com/DarkValkyrie/p/11666806.html
Copyright © 2011-2022 走看看